home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol065 / subgen10.doc < prev    next >
Encoding:
Text File  |  1985-02-10  |  12.9 KB  |  366 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.                   .=========================================.
  13.                   |                                         |
  14.                   |     SUBGEN - The .SUB file Generator    |
  15.                   |                                         |
  16.                   |         By   Steve Pritchard            |
  17.                   |              Solutions Canada Inc.      |
  18.                   |              83 Cummer Ave,             |
  19.                   |              Willowdale, Ontario        |
  20.                   |              M2M 2E6                    |
  21.                   |                                         |
  22.                   |     Copyright(1982) Steve Pritchard     |
  23.                   |                                         |
  24.                   '========================================='
  25.  
  26.                                Version  1.0
  27.  
  28.                              February 13, 1982
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.             
  62.                      SUBGENv1.0  -  User  Documentation         Page    1
  63.  
  64.  
  65.  
  66.         HISTORY
  67.         -------
  68.  
  69.         SUBGE╬á v1.░á wa≤á writteεá thσá weekenΣá oµá Februar∙á 1│á afte≥ ì
  70.         realizinτá tha⌠á therσá wa≤ n∩ convenien⌠á wa∙á t∩á perforφá somσ ì
  71.         simila≥á operatioεá (whethe≥ trivia∞ o≥ complex⌐ upoε ß grou≡á oµ ì
  72.         file≤ unde≥ CP/M«á Sure¼ FMA╨ caε generatσ ß lis⌠ oµ name≤ bu⌠ i⌠ ì
  73.         stil∞á need≤  t∩ bσ attackeΣ b∙ aε edito≥ beforσ an∙ usefu∞á worδ ì
  74.         caε bσ donσ witΦ thσ NAMES.SU┬ filσ generateΣ b∙ FMAP.
  75.  
  76.         Theε again¼á WORDSTA╥ i≤ no⌠ tha⌠ gooΣ a⌠ changinτ everythinτá iε ì
  77.         positioε ▒ t∩ $1«á And¼ eveε iµ i⌠ could¼ therσ ofteε need≤ t∩ bσ ì
  78.         heade≥á anΣá traile≥ record≤ writteε oε thσ filσ t∩ establisΦá aε ì
  79.         operational environment.
  80.  
  81.         Finally¼á thσá Mississaugßá SYSO╨ JuΣ Newel∞ oncσá remarkeΣá tha⌠ ì
  82.         therσá i≤á n∩á wa∙ t∩ 'Deletσ everythinτ bu⌠á ....ºá unde≥á CP/M« ì
  83.         SUBGE╬ solve≤ thi≤ probleφ b∙ allowinτ ß NO╘ optioε tha⌠á invert≤ ì
  84.         thσá filσ selectioε criteriß a⌠ thσ las⌠ moment«á Thu≤ t∩á deletσ ì
  85.         al∞ bu⌠ .CO═ file≤ oε thσ defaul⌠ disk¼ onσ caε usσ SUBGE╬ iε thσ ì
  86.         followinτ way:- 
  87.  
  88.                        SUBGEN  *.COM  -     ;generate SUBGEN.SUB
  89.                        SUBMIT  SUBGEN       ;submit this to CP/M
  90.  
  91.         OPERATION
  92.         ---------
  93.  
  94.         The command with which to invoke SUBGEN is:-
  95.  
  96.                         SUBGEN  [[d:]afn.ft]   [options]
  97.  
  98.         SUBGE╬ generate≤ ß filσ cal∞ SUBGEN.SUB« I⌠ use≤ thσ commanΣ linσ ì
  99.         t∩ obtaiε thσ filename.filetypσ searcΦ masδ (afn.f⌠ portion⌐á anΣ ì
  100.         als∩á somσá optiona∞ ruε timσ parameter≤ sucΦ a≤ thσá "NO╘á fileó ì
  101.         inver⌠á option«á  Thesσá parameter≤ arσ useΣ t∩ selec⌠á thσá filσ ì
  102.         name≤á ofµ oµ  thσ specifieΣ disk«á Thesσ selecteΣ filσ name≤ arσ ì
  103.         theεá sorteΣ int∩ ascendinτ sequencσ anΣ thσ use≥ i≤ notifieΣá oµ ì
  104.         ho≈ man∙ file≤ arσ selected«á 
  105.  
  106.         A⌠á thi≤á poin⌠á ß promp⌠ 'Skeleton?ºá i≤á displayeΣá askinτá fo≥ ì
  107.         skeletoεá line(s⌐á int∩á whicΦ thσ selecteΣ filσá name≤á wil∞á bσ ì
  108.         inserted«á Morσ thaε onσ skeletoε linσ caε bσ giveε iε whicΦ casσ ì
  109.         multiplσá line≤á arσ generateΣ fo≥ eacΦ filσ name«á ┴á nul∞á linσ ì
  110.         terminate≤áá thσá skeletoεá linσá inpu⌠á phasσá oµá thσá program≤ ì
  111.         operation.
  112.  
  113.         Obviously¼á par⌠ oµ thσ skeletoε caε bσ command≤ tha⌠ operatσá oε ì
  114.         thσ filσ names«á Alternatively¼ SUBMI╘ parameter≤ caε bσ includeΣ ì
  115.         a⌠á variou≤á point≤á withiε thσ skeletoε iµ i⌠á i≤á necessar∙á t∩ ì
  116.         generatσ ß multi-usσ .SU┬ file.
  117.  
  118.  
  119.  
  120.  
  121.  
  122.             
  123.                      SUBGENv1.0  -  User  Documentation         Page    2
  124.  
  125.  
  126.         SUBSTITUTION FORMULA
  127.         --------------------
  128.  
  129.         Durinτá thσá generatioε oµ thσ .SU┬ filσ froφ thσá selecteΣá filσ ì
  130.         name≤ SUBGE╬ copie≤ thσ skeletoε line(s⌐ t∩ thσ outpu⌠ filσá oncσ ì
  131.         fo≥ ever∙ selecteΣ name« Durinτ thi≤ copyinτ proces≤ SUBGE╬ look≤ ì
  132.         fo≥ occurrence≤ oµ thσ substitutioε character« Wheε found¼ SUBGE╬ ì
  133.         replace≤á thi≤ characte≥ witΦ thσ curren⌠ filename.filetype«á Thσ ì
  134.         standarΣá characte≥á i≤ thσ '@º characte≥ (whicΦá caεá bσá easil∙ ì
  135.         changeΣ b∙ recompilinτ SUBGEN.⌐ 
  136.  
  137.         Specia∞á processinτá i≤á donσ b∙ SUBGE╬ iµá thσá └á characte≥á i≤ ì
  138.         precedeΣá o≥á followeΣá b∙ ß period«á Thi≤ i≤ t∩á allo≈á fo≥á thσ ì
  139.         possibilit∙á oµá doinτá globa∞á operation≤á oεá filetype≤á o≥á oε ì
  140.         systems«á Thσá algorithφá i≤á mos⌠á easil∙ explaineΣá b∙á usσá oµ ì
  141.         examples« Assumσ tha⌠ thσ curren⌠ filσ namσ i≤ ABC.COM« Thus:-
  142.  
  143.         era @         => era ABC.COM            ;simple case first
  144.  
  145.         era b:@       => era b:ABC.COM          ;another simple case
  146.  
  147.         reεá@.old=└   =╛ reε ABC.old=ABC.CO═    ; « suffi° cause≤ fε 
  148.                                                    substitution only
  149.  
  150.         di≥ *.└  áá   =╛ di≥á *.CO═       á     ; « prefi°ácause≤ f⌠ 
  151.                                                 ;  substitution only
  152.  
  153.         whatfo≥ .@«áá =╛ whatfo≥ .ABC«          ;suffi° ha≤ priority
  154.  
  155.  
  156.         OPTIONAL EXTRAS
  157.         ---------------
  158.  
  159.         Therσá arσá currentl∙ fivσ optiona∞ parameter≤ specifieΣá iεá thσ ì
  160.         FCB▓á positioεá oε thσ commanΣ line«á The∙ arσ specifieΣá iεá an∙ ì
  161.         orde≥ bu⌠ mus⌠ no⌠ bσ separateΣ b∙ blanks« 
  162.  
  163.         Wheεá specifieΣá the∙ inver⌠ thσ defaul⌠ establisheΣá a⌠á compilσ ì
  164.         time«á Thσ standarΣ defaul⌠ i≤ al∞ ofµ excep⌠ fo≥ thσ 'Lº option« ì
  165.         Thi≤ ma∙ bσ differen⌠ fo≥ thσ SUBGE╬ yo⌡ arσ using« 
  166.  
  167.         Pá   Thi≤ cause≤ thσ selecteΣ filename≤ t∩ bσ writteε followeΣ b∙ ì
  168.         áááááßá questioεá marδ (?⌐ durinτá thσá selectioεá process«á Thi≤ ì
  169.         áááááoccur≤á afte≥ selectioε anΣ thσ possiblσ inversioε (Seσá '-º ì
  170.         ááááábelow)«á ie«á Yo⌡á havσá thσ las⌠ say«á ┴ C╥ o≥á ┘á responsσ ì
  171.         áááááselect≤ thσ filσ whilσ aε ╬ responsσ reject≤ thσ file« 
  172.  
  173.         H    Thi≤ cause≤ ß Header┐á promp⌠ t∩ bσ written«á I⌠ i≤ useΣá t∩ ì
  174.         áááááwritσ onσ o≥ morσ record≤ t∩ thσ outpu⌠ filσ beforσ thσ bod∙ ì
  175.         áááááoµá thσ filσ i≤ writteε usinτ thσ skeletoεá definitions«á N∩ ì
  176.         áááááfilσá namσ substitutioε take≤ placσ oε thesσ heade≥ records«  ì
  177.         ááááá┴ nul∞ repl∙ terminate≤ thσ heade≥ recorΣ writinτ process.
  178.  
  179.         T    Simila≥ t∩ thσ Heade≥ option¼á thσ traile≥ optioε allow≤ onσ ì
  180.         áááááo≥ morσ record≤ t∩ bσ writteε afte≥ thσ bod∙ oµ thσ file.è
  181.  
  182.             
  183.                      SUBGENv1.0  -  User  Documentation         Page    3
  184.  
  185.  
  186.  
  187.         -    Thi≤ optioε invert≤ thσ selectioε process«á ie«á afte≥ doinτ ì
  188.         áááááthσ norma∞ CP/═ filσ matchinτ algorithm¼á iµ thi≤ optioεá i≤ ì
  189.         áááááspecified¼á thσá matcΦá result≤á arσ reversed«á Thu≤á i⌠á i≤ ì
  190.         ááááápossiblσá t∩ creatσ ß filσ oµ everythinτ bu⌠ .CO═á file≤á b∙ ì
  191.         ááááásearchinτ fo≥ *.CO═ file≤ witΦ thi≤ '-º optioε specified« A≤ ì
  192.         ááááámentioneΣá previously¼á thσ 'Pº optiona∞ promp⌠ occur≤ afte≥ ì
  193.         áááááthi≤ inversion« (To∩ harΣ oε thσ heaΣ otherwise).
  194.  
  195.         Lá   Thi≤á optioεá i≤ useΣ t∩ contro∞ thσ logginτ proces≤ t∩á thσ ì
  196.         áááááCP/═ consolσ durinτ filσ generation« Thσ standarΣ SUBGE╬ ha≤ ì
  197.         áááááthi≤ turneΣ on«á Specifyinτ thi≤ wil∞ fli≡ thσ logginτ mode« ì
  198.         áááááThσ SUBGEN.SU┬ filσ beinτ createΣ i≤ writteε t∩ thσá consolσ ì
  199.         áááááafte≥ substitutioε iµ thi≤ optioε i≤ active.
  200.  
  201.  
  202.         EXAMPLES
  203.         --------
  204.  
  205.         Note:Iεá thesσá example≤á thσ UPPE╥ CAS┼á represent≤á use≥á inpu⌠ ì
  206.         áááááexcep⌠ wherσ obviousl∙ no⌠ use≥ input« S╟ i≤ m∙ abbreviatioε ì
  207.         áááááfo≥ SUBGE╬ anΣ S╙ i≤ m∙ abbreviatioε fo≥ SUPERSUB.
  208.  
  209.         1.   Rename all .BAK files on the default drive to .ASM.
  210.  
  211.         A>SG *.BAK                      Invoke SUBGEN
  212.         SUBGEN-......                   Normal identifier from SUBGEN
  213.         There are 10 selected files     SUBGENs msg
  214.         Skeleton?REN @.ASM=@            Refer to substitution rules.
  215.         Skeleton?                       Null reply
  216.          .....                          SUBGEN would log at this point.
  217.          .....
  218.         A>SS SUBGEN                     Now do the renames.
  219.  
  220.  
  221.         2.   Yo⌡ arσ abou⌠ t∩ undertakσ thσ SUBGE╬ v▓ project« Renamσ al∞ ì
  222.         áááááexistinτá SUBGEN10.¬ component≤á (DOC¼á REL¼á COM¼á SU┬á anΣ ì
  223.         áááááwhateve≥ yo⌡ havσ forgotton⌐ abou⌠ t∩ thi≤ ne≈ namσ oε thσ ┬ ì
  224.         ááááádrive.
  225.  
  226.         A>SG B:SUBGEN10.*               Invoke SUBGEN
  227.         SUBGEN-......                   Normal identifier from SUBGEN
  228.         There are 7 selected files      SUBGENs msg
  229.         Skeleton?RE╬áB:SUBGEN20.*=└á    Makσ usσ oµ substitutioεá rule≤ 
  230.         Skeleton?                       Null reply
  231.          ....                           SUBGEN would log at this point.
  232.          ....
  233.         A>SS SUBGEN                     Now do the rename
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.             
  244.                      SUBGENv1.0  -  User  Documentation         Page    4
  245.  
  246.  
  247.         3.á  Lis⌠á al∞ PL╔ program≤ oε drivσ ┬ iε uppe≥ casσ oε you≥ lis⌠ ì
  248.         ááááádevicσ witΦ taΓ expansioε ever∙ ┤ columns«á Ever∙ prograφ i≤ ì
  249.         ááááát∩ star⌠ oε ß ne≈ page«á Yo⌡ havσ ß filσ calleΣ PAGESE╨ tha⌠ ì
  250.         áááááyo⌡á wan⌠ listeΣ beforσ ever∙ program«á Yo⌡ als∩á havσá slo≈ ì
  251.         ááááádisδ drive≤ anΣ wan⌠ t∩ avoiΣ reloadinτ PI╨ ever∙ time.
  252.  
  253.         A>SG B:*.PLI H                  Invoke SUBGEN with H option
  254.         SUBGEN-......                   Normal identifier from SUBGEN
  255.         There are 22 selected files     SUBGENs msg
  256.         Header?XSUB                     Invoke XSUB for PIP
  257.         Header?PIP                      then invoke PIP
  258.         Header?                         Null reply
  259.         Skeleton?LST:=B:PAGESEP[P60]    Generate page separator command
  260.         Skeleton?LST:=B:@[T4P60U]       Generate PIP commands
  261.         Skeleton?                       Null reply
  262.          ....                           SUBGEN would log at this point.
  263.          ....
  264.         A>SS SUBGEN                     Now do the lists
  265.  
  266.         4.á  Compilσá al∞ PL╔ program≤ oε drivσ B¼á ruεá PGMLINK.SU┬á anΣ ì
  267.         áááááhavσ suppe≥ whilσ thi≤ i≤ happening.
  268.  
  269.         A>S╟ B:*.PL╔ ╘                  Invokσ SUBGE╬ witΦ ╘ option
  270.         SUBGEN-......                   Normal identifier from SUBGEN
  271.         There are 33 selected files     SUBGENs msg
  272.         Skeleton?PLI b:@                Generate compile command
  273.         Skeleton?                       Null reply
  274.         Trailer?S╙á PGMLIN╦             SUPERSU┬ allows SUB≤ withiε SUBs.
  275.         Trailer?                        Null reply
  276.         A>SS SUBGEN                     Now go have supper.
  277.  
  278.  
  279.         5.á  Yo⌡á havσá t∩á ER┴ al∞ bu⌠ you≥ .CO═ file≤á oεá thσá defaul⌠ ì
  280.         ááááádrive« Yo⌡ wisΦ t∩ confirφ eacΦ deletion.
  281.  
  282.  
  283.         A>S╟ *.COM -P                   Invokσ SUBGE╬ witΦ P and - option
  284.         SUBGEN-......                   Normal identifier from SUBGEN
  285.         mast.cat?N                      SUBGEN prompt - reject reply
  286.         mast.bak?                       CR means Y too.
  287.          ....                           etc
  288.         There are 2 selected files      SUBGENs msg
  289.         Skeleton?ERA @                  Generate the command
  290.         Skeleton?                       Null reply
  291.          ....                           SUBGEN would log at this point.
  292.          ....
  293.         A>SS SUBGEN                     Invoke the command.
  294.  
  295.  
  296.         6.á  Sincσá SUBGE╬ use≤ thσ ReaΣ CommanΣ Buffe≥ CP/═ functioεá i⌠ ì
  297.         ááááácaεá bσ driveε b∙  XSUB«á Therefore¼á iµ thσ righ⌠ situatioε ì
  298.         ááááácamσá along¼á ß .SU┬ filσ coulΣ bσ useΣ t∩ generatσá ßá .SU┬ ì
  299.         áááááfilσ b∙ mean≤ oµ SUBGEN« ╔ wil∞ leavσ i⌠ t∩ thσ use≥ t∩ finΣ ì
  300.         áááááthσ righ⌠ situatioε wherσ thi≤ woulΣ bσ useful.
  301.  
  302.  
  303.  
  304.             
  305.                      SUBGENv1.0  -  User  Documentation         Page    5
  306.  
  307.  
  308.         HELP
  309.         ----
  310.  
  311.         SUBGE╬ weigh≤ iε unde≥ thσ desirablσ 2δ marδ anΣ s∩ ╔ wa≤ ablσ t∩ ì
  312.         imbeΣá ßá tersσá bu⌠ remindinτ HEL╨ function«á I⌠ i≤á invokeΣá b∙ ì
  313.         typing:-
  314.  
  315.                   SG ?
  316.  
  317.         ╔á hopσ tha⌠ thi≤ i≤ obviou≤ enougΦ fo≥ somebod∙ t∩ tr∙ wh∩á doe≤ ì
  318.         not have this documentation package to tell them how to get HELP.
  319.  
  320.  
  321.         DISTRIBUTION
  322.         ------------
  323.  
  324.         A≤ mentioneΣ iε thσ prograφ listing¼á thi≤ packagσ i≤ placeΣ int∩ ì
  325.         thσá publiπá domaiεá witΦ thσá usua∞á conditions - Fee∞á freσá t∩ ì
  326.         distribute but it is not to be sold for profit.
  327.  
  328.         Oεá m∙ par⌠ i⌠ represent≤ anothe≥ smal∞ installmen⌠ t∩ thσ deb⌠ ╔ ì
  329.         fee∞á ╔ havσ amasseΣ iε pickinτ u≡ s∩ mucΦ gooΣ qualit∙á softwarσ ì
  330.         in the public domain.
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.             
  366.