| ofs | hex dump | ascii |
|---|
| 0000 | 7b 24 74 69 74 6c 65 3a 20 27 43 6f 6d 6d 61 6e 64 20 4c 69 6e 65 20 46 69 6c 65 6e 61 6d 65 20 | {$title:.'Command.Line.Filename. |
| 0020 | 50 61 72 73 65 72 27 20 24 6c 69 6e 65 73 69 7a 65 3a 37 39 7d 0d 0a 4d 4f 44 55 4c 45 20 70 61 | Parser'.$linesize:79}..MODULE.pa |
| 0040 | 72 73 65 3b 20 20 20 7b 24 64 65 62 75 67 2d 20 24 73 74 61 63 6b 63 6b 2b 7d 0d 0a 7b 20 63 6f | rse;...{$debug-.$stackck+}..{.co |
| 0060 | 6d 6d 61 6e 64 20 6c 69 6e 65 20 66 69 6c 65 6e 61 6d 65 20 70 61 72 73 69 6e 67 3b 20 20 42 6f | mmand.line.filename.parsing;..Bo |
| 0080 | 62 20 57 61 6c 6c 61 63 65 20 4d 69 63 72 6f 73 6f 66 74 20 37 2f 38 31 20 7d 0d 0a 43 4f 4e 53 | b.Wallace.Microsoft.7/81.}..CONS |
| 00a0 | 54 20 6d 61 78 66 69 6c 65 20 3d 20 33 32 3b 20 20 20 7b 4e 4f 54 45 3a 20 6d 75 73 74 20 62 65 | T.maxfile.=.32;...{NOTE:.must.be |
| 00c0 | 20 73 65 74 20 73 61 6d 65 20 61 73 20 63 61 6c 6c 65 72 7d 20 20 0d 0a 0d 0a 0d 0a 20 20 20 20 | .set.same.as.caller}............ |
| 00e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 66 70 72 66 20 3d 20 27 50 52 46 27 3b 20 0d 0a 20 | ..............dfprf.=.'PRF';.... |
| 0100 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 73 70 72 66 20 3d 20 27 50 72 6f 66 69 6c | .................msprf.=.'Profil |
| 0120 | 65 20 66 69 6c 65 6e 61 6d 65 20 5b 27 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.filename.[';.................. |
| 0140 | 20 20 64 66 68 73 74 20 3d 20 27 48 53 54 27 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..dfhst.=.'HST';................ |
| 0160 | 20 20 20 20 6d 73 68 73 74 20 3d 20 27 48 69 73 74 6f 67 72 61 6d 20 66 69 6c 65 6e 61 6d 65 20 | ....mshst.=.'Histogram.filename. |
| 0180 | 5b 27 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 66 6d 61 70 20 3d 20 27 | [';....................dfmap.=.' |
| 01a0 | 4d 41 50 27 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 73 6d 61 70 20 3d | MAP';....................msmap.= |
| 01c0 | 20 27 4d 61 70 20 66 69 6c 65 20 20 5b 27 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .'Map.file..[';................. |
| 01e0 | 20 20 20 6e 75 6c 6e 20 3d 20 27 4e 55 4c 20 20 20 20 20 27 3b 0d 0a 0d 0a 54 59 50 45 0d 0a 20 | ...nuln.=.'NUL.....';....TYPE... |
| 0200 | 20 66 69 6c 65 6e 61 6d 20 3d 20 6c 73 74 72 69 6e 67 20 28 6d 61 78 66 69 6c 65 29 3b 20 20 20 | .filenam.=.lstring.(maxfile);... |
| 0220 | 20 20 20 20 7b 66 69 6c 65 6e 61 6d 65 20 70 61 72 61 6d 65 74 65 72 20 74 79 70 65 7d 0d 0a 20 | ....{filename.parameter.type}... |
| 0240 | 20 73 65 74 73 77 20 3d 20 41 52 52 41 59 20 5b 77 72 64 28 30 29 2e 2e 33 5d 20 4f 46 20 62 79 | .setsw.=.ARRAY.[wrd(0)..3].OF.by |
| 0260 | 74 65 3b 20 7b 73 77 69 74 63 68 65 73 20 70 61 72 61 6d 65 74 65 72 20 74 79 70 65 7d 0d 0a 20 | te;.{switches.parameter.type}... |
| 0280 | 20 73 65 74 73 20 3d 20 73 65 74 20 6f 66 20 30 2e 2e 33 31 3b 20 20 20 20 20 20 20 20 20 20 20 | .sets.=.set.of.0..31;........... |
| 02a0 | 20 20 20 20 7b 63 61 6c 6c 65 72 27 73 20 70 61 72 61 6d 65 74 65 72 20 74 79 70 65 7d 0d 0a 20 | ....{caller's.parameter.type}... |
| 02c0 | 20 73 65 74 63 20 3d 20 73 65 74 20 6f 66 20 63 68 72 28 30 29 2e 2e 63 68 72 28 31 32 37 29 3b | .setc.=.set.of.chr(0)..chr(127); |
| 02e0 | 20 20 20 20 7b 73 65 74 20 6f 66 20 63 68 61 72 61 63 74 65 72 73 7d 0d 0a 20 20 63 70 6d 65 78 | ....{set.of.characters}....cpmex |
| 0300 | 20 3d 20 73 74 72 69 6e 67 20 28 33 29 3b 20 20 63 70 6d 6e 6d 20 3d 20 73 74 72 69 6e 67 20 28 | .=.string.(3);..cpmnm.=.string.( |
| 0320 | 38 29 3b 0d 0a 20 20 63 70 6d 66 6e 20 3d 20 52 45 43 4f 52 44 0d 0a 20 20 20 20 20 20 20 20 20 | 8);....cpmfn.=.RECORD........... |
| 0340 | 20 20 20 63 66 64 20 5b 30 5d 3a 20 73 74 72 69 6e 67 20 28 32 29 3b 0d 0a 20 20 20 20 20 20 20 | ...cfd.[0]:.string.(2);......... |
| 0360 | 20 20 20 20 20 63 66 6e 20 5b 32 5d 3a 20 63 70 6d 6e 6d 3b 20 20 63 66 70 20 5b 31 30 5d 3a 20 | .....cfn.[2]:.cpmnm;..cfp.[10]:. |
| 0380 | 63 68 61 72 3b 20 20 63 66 65 20 5b 31 31 5d 3a 20 63 70 6d 65 78 3b 0d 0a 20 20 20 20 20 20 20 | char;..cfe.[11]:.cpmex;......... |
| 03a0 | 20 20 20 45 4e 44 3b 0d 0a 20 20 73 65 74 62 69 74 74 20 3d 20 41 52 52 41 59 20 5b 77 72 64 28 | ...END;....setbitt.=.ARRAY.[wrd( |
| 03c0 | 30 29 2e 2e 37 5d 20 4f 46 20 62 79 74 65 3b 0d 0a 43 4f 4e 53 54 20 73 65 74 62 69 74 20 3d 20 | 0)..7].OF.byte;..CONST.setbit.=. |
| 03e0 | 73 65 74 62 69 74 74 20 28 31 32 38 2c 20 36 34 2c 20 33 32 2c 20 31 36 2c 20 38 2c 20 34 2c 20 | setbitt.(128,.64,.32,.16,.8,.4,. |
| 0400 | 32 2c 20 31 29 3b 0d 0a 0d 0a 56 41 52 20 69 64 73 65 74 3a 73 65 74 63 3b 20 56 41 4c 55 45 20 | 2,.1);....VAR.idset:setc;.VALUE. |
| 0420 | 69 64 73 65 74 3a 3d 73 65 74 63 20 5b 27 41 27 2e 2e 27 5a 27 2c 27 61 27 2e 2e 27 7a 27 2c 27 | idset:=setc.['A'..'Z','a'..'z',' |
| 0440 | 30 27 2e 2e 27 39 27 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 24 27 2c 20 27 26 27 2c 20 | 0'..'9',..............'$',.'&',. |
| 0460 | 27 23 27 2c 20 27 40 27 2c 20 27 21 27 2c 20 27 25 27 2c 20 27 2d 27 2c 20 27 5f 27 2c 20 27 60 | '#',.'@',.'!',.'%',.'-',.'_',.'` |
| 0480 | 27 2c 20 27 27 27 27 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 28 27 2c 20 27 29 27 2c 20 | ',.'''',..............'(',.')',. |
| 04a0 | 27 3c 27 2c 20 27 3e 27 2c 20 27 7b 27 2c 20 27 7d 27 2c 20 27 5c 27 2c 20 27 5e 27 2c 20 27 7e | '<',.'>',.'{',.'}',.'\',.'^',.'~ |
| 04c0 | 27 2c 20 27 7c 27 5d 3b 0d 0a 56 41 52 20 64 72 73 65 74 3a 73 65 74 63 3b 20 56 41 4c 55 45 20 | ',.'|'];..VAR.drset:setc;.VALUE. |
| 04e0 | 64 72 73 65 74 3a 3d 73 65 74 63 20 5b 27 41 27 2e 2e 27 4f 27 2c 27 61 27 2e 2e 27 6f 27 5d 3b | drset:=setc.['A'..'O','a'..'o']; |
| 0500 | 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 66 69 6c 6c 63 20 28 64 73 74 3a 20 61 64 72 6d 65 6d | ....PROCEDURE.fillc.(dst:.adrmem |
| 0520 | 3b 20 6c 65 6e 3a 20 77 6f 72 64 3b 20 20 63 68 63 3a 20 63 68 61 72 29 3b 20 20 65 78 74 65 72 | ;.len:.word;..chc:.char);..exter |
| 0540 | 6e 3b 0d 0a 50 52 4f 43 45 44 55 52 45 20 6d 6f 76 65 6c 20 28 70 72 66 3a 20 61 64 72 6d 65 6d | n;..PROCEDURE.movel.(prf:.adrmem |
| 0560 | 3b 20 64 73 74 3a 20 61 64 72 6d 65 6d 3b 20 6c 65 6e 3a 20 77 6f 72 64 29 3b 20 65 78 74 65 72 | ;.dst:.adrmem;.len:.word);.exter |
| 0580 | 6e 3b 0d 0a 50 52 4f 43 45 44 55 52 45 20 70 74 79 75 71 71 20 28 6c 65 6e 3a 20 77 6f 72 64 3b | n;..PROCEDURE.ptyuqq.(len:.word; |
| 05a0 | 20 70 72 66 3a 20 61 64 73 6d 65 6d 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 74 65 72 | .prf:.adsmem);.............exter |
| 05c0 | 6e 3b 0d 0a 50 52 4f 43 45 44 55 52 45 20 70 6c 79 75 71 71 3b 20 20 20 20 20 20 20 20 20 20 20 | n;..PROCEDURE.plyuqq;........... |
| 05e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 74 65 72 | ...........................exter |
| 0600 | 6e 3b 0d 0a 46 55 4e 43 54 49 4f 4e 20 67 74 79 75 71 71 20 28 6c 65 6e 3a 20 77 6f 72 64 3b 20 | n;..FUNCTION.gtyuqq.(len:.word;. |
| 0620 | 64 73 74 3a 20 61 64 73 6d 65 6d 29 3a 20 77 6f 72 64 3b 20 20 20 20 20 20 20 20 65 78 74 65 72 | dst:.adsmem):.word;........exter |
| 0640 | 6e 3b 0d 0a 0d 0a 50 52 4f 43 45 44 55 52 45 20 66 69 6c 62 6d 20 0d 0a 28 56 41 52 20 70 72 66 | n;....PROCEDURE.filbm...(VAR.prf |
| 0660 | 66 69 6c 2c 68 73 74 66 69 6c 2c 6d 61 70 66 69 6c 3a 20 66 69 6c 65 6e 61 6d 3b 20 20 56 41 52 | fil,hstfil,mapfil:.filenam;..VAR |
| 0680 | 20 6f 6c 64 73 77 3a 20 73 65 74 73 77 29 3b 0d 0a 28 2a 20 73 65 74 73 20 74 68 65 20 66 69 6c | .oldsw:.setsw);..(*.sets.the.fil |
| 06a0 | 65 6e 61 6d 65 73 20 66 6f 72 20 73 6f 75 72 63 65 2c 20 68 73 74 65 63 74 2c 20 6c 69 73 74 69 | enames.for.source,.hstect,.listi |
| 06c0 | 6e 67 2c 20 61 6e 64 20 73 65 63 6f 6e 64 0d 0a 20 6c 69 73 74 69 6e 67 20 28 68 73 74 65 63 74 | ng,.and.second...listing.(hstect |
| 06e0 | 20 6c 69 73 74 20 6f 72 20 63 72 6f 73 73 20 72 65 66 29 3b 20 20 61 6c 73 6f 20 73 65 74 73 20 | .list.or.cross.ref);..also.sets. |
| 0700 | 61 6e 79 20 73 77 69 74 63 68 65 73 2c 0d 0a 20 61 6c 6c 6f 77 69 6e 67 20 74 68 6f 73 65 20 69 | any.switches,...allowing.those.i |
| 0720 | 6e 20 74 68 65 20 6f 6c 64 73 77 20 73 65 74 20 61 6e 64 20 72 65 74 75 72 6e 69 6e 67 20 74 68 | n.the.oldsw.set.and.returning.th |
| 0740 | 65 6d 20 69 6e 20 6f 6c 64 73 77 20 2a 29 0d 0a 56 41 52 20 70 72 66 2c 20 68 73 74 2c 20 6d 61 | em.in.oldsw.*)..VAR.prf,.hst,.ma |
| 0760 | 70 3a 20 63 70 6d 66 6e 3b 20 7b 74 61 72 67 65 74 20 66 69 6c 65 6e 61 6d 65 73 20 69 6e 20 43 | p:.cpmfn;.{target.filenames.in.C |
| 0780 | 50 4d 20 66 6f 72 6d 61 74 7d 0d 0a 20 20 6e 65 77 73 77 3a 20 73 65 74 73 77 3b 20 20 20 20 20 | PM.format}....newsw:.setsw;..... |
| 07a0 | 20 20 20 20 20 20 20 20 20 20 20 7b 6e 65 77 20 73 77 69 74 63 68 65 73 2c 20 72 65 74 75 72 6e | ...........{new.switches,.return |
| 07c0 | 20 69 6e 20 6f 6c 64 73 77 7d 0d 0a 20 20 71 71 3a 20 6c 73 74 72 69 6e 67 20 28 31 32 38 29 3b | .in.oldsw}....qq:.lstring.(128); |
| 07e0 | 20 69 71 3a 20 77 6f 72 64 3b 20 7b 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 2c 20 63 75 72 72 65 6e | .iq:.word;.{command.line,.curren |
| 0800 | 74 20 69 6e 64 65 78 7d 0d 0a 20 20 70 71 71 3a 20 61 64 73 20 6f 66 20 6c 73 74 72 69 6e 67 20 | t.index}....pqq:.ads.of.lstring. |
| 0820 | 28 31 32 38 29 3b 20 20 20 20 7b 61 64 64 72 65 73 73 20 43 50 4d 2d 74 79 70 65 20 63 6f 6d 6d | (128);....{address.CPM-type.comm |
| 0840 | 61 6e 64 20 6c 69 6e 65 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 65 73 78 71 71 20 | and.line}................cesxqq. |
| 0860 | 5b 65 78 74 65 72 6e 5d 3a 20 77 6f 72 64 3b 20 20 20 7b 73 65 67 6d 65 6e 74 20 76 61 6c 7d 0d | [extern]:.word;...{segment.val}. |
| 0880 | 0a 20 20 63 3a 20 63 68 61 72 3b 20 20 6c 3a 20 77 6f 72 64 3b 20 20 69 73 63 6f 6d 6d 61 3a 20 | ...c:.char;..l:.word;..iscomma:. |
| 08a0 | 62 6f 6f 6c 65 61 6e 3b 20 20 69 3a 20 77 6f 72 64 3b 20 7b 6f 74 68 65 72 20 73 74 75 66 66 7d | boolean;..i:.word;.{other.stuff} |
| 08c0 | 0d 0a 0d 0a 20 20 46 55 4e 43 54 49 4f 4e 20 70 61 72 63 68 72 20 28 63 68 3a 20 63 68 61 72 29 | ......FUNCTION.parchr.(ch:.char) |
| 08e0 | 3a 20 62 6f 6f 6c 65 61 6e 3b 20 20 7b 74 72 75 65 20 69 66 66 20 43 48 20 66 6f 75 6e 64 7d 0d | :.boolean;..{true.iff.CH.found}. |
| 0900 | 0a 20 20 42 45 47 49 4e 20 0d 0a 20 20 20 20 70 61 72 63 68 72 20 3a 3d 20 28 69 71 20 3c 3d 20 | ...BEGIN.......parchr.:=.(iq.<=. |
| 0920 | 71 71 2e 6c 65 6e 29 20 41 4e 44 20 28 71 71 20 5b 69 71 5d 20 3d 20 63 68 29 3b 0d 0a 20 20 20 | qq.len).AND.(qq.[iq].=.ch);..... |
| 0940 | 20 49 46 20 72 65 73 75 6c 74 20 28 70 61 72 63 68 72 29 20 54 48 45 4e 20 69 71 20 3a 3d 20 69 | .IF.result.(parchr).THEN.iq.:=.i |
| 0960 | 71 2b 31 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 20 20 0d 0a 20 20 46 55 4e 43 54 49 4f 4e 20 75 70 70 | q+1;....END;........FUNCTION.upp |
| 0980 | 65 72 63 3a 20 63 68 61 72 3b 20 20 7b 72 65 74 75 72 6e 20 63 75 72 72 65 6e 74 20 63 68 61 72 | erc:.char;..{return.current.char |
| 09a0 | 2c 20 69 6e 20 75 70 70 65 72 20 63 61 73 65 7d 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 75 | ,.in.upper.case}....BEGIN......u |
| 09c0 | 70 70 65 72 63 20 3a 3d 20 71 71 5b 69 71 5d 3b 0d 0a 20 20 20 20 49 46 20 72 65 73 75 6c 74 20 | pperc.:=.qq[iq];......IF.result. |
| 09e0 | 28 75 70 70 65 72 63 29 20 3e 3d 20 27 61 27 0d 0a 20 20 20 20 20 20 54 48 45 4e 20 75 70 70 65 | (upperc).>=.'a'........THEN.uppe |
| 0a00 | 72 63 20 3a 3d 20 63 68 72 20 28 6f 72 64 20 28 72 65 73 75 6c 74 20 28 75 70 70 65 72 63 29 29 | rc.:=.chr.(ord.(result.(upperc)) |
| 0a20 | 20 2d 20 33 32 29 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 20 20 50 52 4f 43 45 44 55 52 45 20 62 | .-.32);....END;......PROCEDURE.b |
| 0a40 | 6c 61 6e 6b 73 3b 20 20 7b 73 6b 69 70 20 62 6c 61 6e 6b 73 20 61 6e 64 20 73 65 74 20 61 6e 79 | lanks;..{skip.blanks.and.set.any |
| 0a60 | 20 73 77 69 74 63 68 65 73 7d 0d 0a 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 57 48 49 4c 45 20 70 | .switches}....BEGIN......WHILE.p |
| 0a80 | 61 72 63 68 72 20 28 27 20 27 29 20 44 4f 20 7b 6e 6f 74 68 69 6e 67 7d 3b 0d 0a 20 20 20 20 49 | archr.('.').DO.{nothing};......I |
| 0aa0 | 46 20 70 61 72 63 68 72 20 28 27 2f 27 29 20 54 48 45 4e 0d 0a 20 20 20 20 42 45 47 49 4e 0d 0a | F.parchr.('/').THEN......BEGIN.. |
| 0ac0 | 20 20 20 20 20 20 49 46 20 28 69 71 20 3c 3d 20 71 71 2e 6c 65 6e 29 0d 0a 20 20 20 20 20 20 41 | ......IF.(iq.<=.qq.len)........A |
| 0ae0 | 4e 44 20 54 48 45 4e 20 28 6f 72 64 20 28 75 70 70 65 72 63 29 20 2d 20 36 34 29 20 49 4e 20 72 | ND.THEN.(ord.(upperc).-.64).IN.r |
| 0b00 | 65 74 79 70 65 20 28 73 65 74 73 2c 20 6f 6c 64 73 77 29 20 0d 0a 20 20 20 20 20 20 54 48 45 4e | etype.(sets,.oldsw).........THEN |
| 0b20 | 0d 0a 20 20 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 20 20 69 20 3a 3d 20 | ..........BEGIN............i.:=. |
| 0b40 | 77 72 64 20 28 75 70 70 65 72 63 29 20 2d 20 36 34 3b 20 20 69 71 20 3a 3d 20 69 71 20 2b 20 31 | wrd.(upperc).-.64;..iq.:=.iq.+.1 |
| 0b60 | 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 6e 65 77 73 77 5b 69 20 44 49 56 20 38 5d 20 3a 3d 20 6e | ;............newsw[i.DIV.8].:=.n |
| 0b80 | 65 77 73 77 5b 69 20 44 49 56 20 38 5d 20 4f 52 20 73 65 74 62 69 74 5b 69 20 4d 4f 44 20 38 5d | ewsw[i.DIV.8].OR.setbit[i.MOD.8] |
| 0ba0 | 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 62 6c 61 6e 6b 73 3b 20 20 20 7b 72 65 63 75 72 73 65 20 | ;............blanks;...{recurse. |
| 0bc0 | 66 6f 72 20 6d 6f 72 65 7d 0d 0a 20 20 20 20 20 20 20 20 45 4e 44 0d 0a 20 20 20 20 20 20 45 4c | for.more}..........END........EL |
| 0be0 | 53 45 20 69 71 20 3a 3d 20 69 71 20 2d 20 31 3b 20 20 20 7b 70 75 74 20 22 2f 22 20 62 61 63 6b | SE.iq.:=.iq.-.1;...{put."/".back |
| 0c00 | 20 6f 6e 20 6c 69 6e 65 20 74 6f 20 67 65 74 20 65 72 72 6f 72 7d 0d 0a 20 20 20 20 45 4e 44 3b | .on.line.to.get.error}......END; |
| 0c20 | 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 20 20 46 55 4e 43 54 49 4f 4e 20 70 61 72 73 65 74 20 28 56 | ....END;......FUNCTION.parset.(V |
| 0c40 | 41 52 20 64 73 74 3a 20 73 74 72 69 6e 67 3b 20 20 43 4f 4e 53 54 20 63 68 73 3a 20 73 65 74 63 | AR.dst:.string;..CONST.chs:.setc |
| 0c60 | 29 3a 20 62 6f 6f 6c 65 61 6e 3b 0d 0a 20 20 28 2a 20 4d 6f 76 65 20 63 68 61 72 61 63 74 65 72 | ):.boolean;....(*.Move.character |
| 0c80 | 73 20 66 72 6f 6d 20 71 71 20 74 6f 20 44 53 54 20 61 73 20 6c 6f 6e 67 20 61 73 20 74 68 65 79 | s.from.qq.to.DST.as.long.as.they |
| 0ca0 | 20 61 72 65 20 69 6e 20 43 48 53 0d 0a 20 20 20 20 20 44 65 6c 65 74 65 73 20 66 72 6f 6d 20 71 | .are.in.CHS.......Deletes.from.q |
| 0cc0 | 71 2c 20 62 6c 61 6e 6b 73 20 44 53 54 2c 20 72 65 74 75 72 6e 73 20 74 72 75 65 20 69 66 20 61 | q,.blanks.DST,.returns.true.if.a |
| 0ce0 | 6e 79 20 6d 6f 76 65 64 20 2a 29 0d 0a 20 20 56 41 52 20 69 3a 20 77 6f 72 64 3b 20 20 20 0d 0a | ny.moved.*)....VAR.i:.word;..... |
| 0d00 | 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 66 69 6c 6c 63 20 28 61 64 72 20 64 73 74 2c 20 77 72 64 | ..BEGIN......fillc.(adr.dst,.wrd |
| 0d20 | 20 28 75 70 70 65 72 20 28 64 73 74 29 29 2c 20 27 20 27 29 3b 20 20 70 61 72 73 65 74 20 3a 3d | .(upper.(dst)),.'.');..parset.:= |
| 0d40 | 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 46 4f 52 20 69 20 3a 3d 20 31 20 54 4f 20 77 72 64 20 28 | .false;......FOR.i.:=.1.TO.wrd.( |
| 0d60 | 75 70 70 65 72 20 28 64 73 74 29 29 20 44 4f 0d 0a 20 20 20 20 20 20 49 46 20 28 69 71 20 3e 20 | upper.(dst)).DO........IF.(iq.>. |
| 0d80 | 71 71 2e 6c 65 6e 29 20 4f 52 20 45 4c 53 45 20 4e 4f 54 20 28 71 71 20 5b 69 71 5d 20 49 4e 20 | qq.len).OR.ELSE.NOT.(qq.[iq].IN. |
| 0da0 | 63 68 73 29 20 0d 0a 20 20 20 20 20 20 54 48 45 4e 20 42 52 45 41 4b 0d 0a 20 20 20 20 20 20 45 | chs).........THEN.BREAK........E |
| 0dc0 | 4c 53 45 20 0d 0a 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 20 64 73 74 20 5b | LSE.........BEGIN..........dst.[ |
| 0de0 | 69 5d 20 3a 3d 20 75 70 70 65 72 63 3b 20 20 70 61 72 73 65 74 20 3a 3d 20 74 72 75 65 3b 20 20 | i].:=.upperc;..parset.:=.true;.. |
| 0e00 | 69 71 20 3a 3d 20 69 71 20 2b 20 31 3b 0d 0a 20 20 20 20 20 20 45 4e 44 3b 0d 0a 20 20 45 4e 44 | iq.:=.iq.+.1;........END;....END |
| 0e20 | 3b 0d 0a 20 20 0d 0a 20 20 46 55 4e 43 54 49 4f 4e 20 66 69 6c 65 6e 6d 20 28 43 4f 4e 53 54 20 | ;........FUNCTION.filenm.(CONST. |
| 0e40 | 70 72 6f 6d 70 74 3a 20 73 74 72 69 6e 67 3b 20 56 41 52 20 6e 61 6d 3a 20 66 69 6c 65 6e 61 6d | prompt:.string;.VAR.nam:.filenam |
| 0e60 | 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 56 41 52 20 66 63 62 3a 20 63 | ;.....................VAR.fcb:.c |
| 0e80 | 70 6d 66 6e 3b 20 64 65 66 65 78 74 3a 20 63 70 6d 65 78 29 3a 20 62 6f 6f 6c 65 61 6e 3b 0d 0a | pmfn;.defext:.cpmex):.boolean;.. |
| 0ea0 | 20 20 28 2a 20 47 65 74 20 61 20 66 69 6c 65 6e 61 6d 65 20 69 6e 74 6f 20 74 68 65 20 46 43 42 | ..(*.Get.a.filename.into.the.FCB |
| 0ec0 | 2c 20 73 65 74 74 69 6e 67 20 64 65 66 61 75 6c 74 73 20 61 73 20 0d 0a 20 20 20 20 20 61 70 70 | ,.setting.defaults.as........app |
| 0ee0 | 72 6f 70 72 69 61 74 65 3b 20 20 72 65 74 75 72 6e 20 74 72 75 65 20 69 66 66 20 61 20 66 69 6c | ropriate;..return.true.iff.a.fil |
| 0f00 | 65 6e 61 6d 65 20 66 6f 75 6e 64 20 2a 29 0d 0a 20 20 56 41 52 20 69 3a 20 77 6f 72 64 3b 20 20 | ename.found.*)....VAR.i:.word;.. |
| 0f20 | 70 3a 20 61 64 72 6d 65 6d 3b 20 20 64 65 66 69 6c 65 3a 20 63 70 6d 6e 6d 3b 0d 0a 20 20 42 45 | p:.adrmem;..defile:.cpmnm;....BE |
| 0f40 | 47 49 4e 0d 0a 20 20 20 20 62 6c 61 6e 6b 73 3b 0d 0a 20 20 20 20 49 46 20 69 73 63 6f 6d 6d 61 | GIN......blanks;......IF.iscomma |
| 0f60 | 20 54 48 45 4e 20 64 65 66 69 6c 65 20 3a 3d 20 70 72 66 2e 63 66 6e 20 45 4c 53 45 20 64 65 66 | .THEN.defile.:=.prf.cfn.ELSE.def |
| 0f80 | 69 6c 65 20 3a 3d 20 6e 75 6c 6e 3b 0d 0a 20 20 20 20 49 46 20 69 71 20 3e 20 71 71 2e 6c 65 6e | ile.:=.nuln;......IF.iq.>.qq.len |
| 0fa0 | 20 54 48 45 4e 0d 0a 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 70 74 79 75 71 71 20 28 | .THEN......BEGIN........ptyuqq.( |
| 0fc0 | 77 72 64 20 28 75 70 70 65 72 20 28 70 72 6f 6d 70 74 29 29 2c 20 61 64 73 20 70 72 6f 6d 70 74 | wrd.(upper.(prompt)),.ads.prompt |
| 0fe0 | 29 3b 0d 0a 20 20 20 20 20 20 46 4f 52 20 69 20 3a 3d 20 31 20 54 4f 20 38 20 44 4f 20 0d 0a 20 | );........FOR.i.:=.1.TO.8.DO.... |
| 1000 | 20 20 20 20 20 20 20 49 46 20 64 65 66 69 6c 65 20 5b 69 5d 20 3c 3e 20 27 20 27 20 54 48 45 4e | .......IF.defile.[i].<>.'.'.THEN |
| 1020 | 20 70 74 79 75 71 71 20 28 31 2c 20 61 64 73 20 64 65 66 69 6c 65 20 5b 69 5d 29 3b 0d 0a 20 20 | .ptyuqq.(1,.ads.defile.[i]);.... |
| 1040 | 20 20 20 20 70 74 79 75 71 71 20 28 31 2c 20 61 64 73 20 27 2e 27 29 3b 20 20 70 74 79 75 71 71 | ....ptyuqq.(1,.ads.'.');..ptyuqq |
| 1060 | 20 28 33 2c 20 61 64 73 20 64 65 66 65 78 74 29 3b 0d 0a 20 20 20 20 20 20 70 74 79 75 71 71 20 | .(3,.ads.defext);........ptyuqq. |
| 1080 | 28 33 2c 20 61 64 73 20 27 5d 3a 20 27 29 3b 0d 0a 20 20 20 20 20 20 71 71 2e 6c 65 6e 20 3a 3d | (3,.ads.']:.');........qq.len.:= |
| 10a0 | 20 67 74 79 75 71 71 20 28 75 70 70 65 72 20 28 71 71 29 2c 20 61 64 73 20 71 71 20 5b 31 5d 29 | .gtyuqq.(upper.(qq),.ads.qq.[1]) |
| 10c0 | 3b 20 20 69 71 20 3a 3d 20 31 3b 0d 0a 20 20 20 20 45 4e 44 3b 0d 0a 20 20 20 20 66 63 62 2e 63 | ;..iq.:=.1;......END;......fcb.c |
| 10e0 | 66 70 20 3a 3d 20 27 2e 27 3b 20 20 0d 0a 20 20 20 20 49 46 20 28 69 71 20 3c 20 71 71 2e 6c 65 | fp.:=.'.';........IF.(iq.<.qq.le |
| 1100 | 6e 29 20 41 4e 44 20 28 71 71 20 5b 69 71 2b 31 5d 20 3d 20 27 3a 27 29 20 0d 0a 20 20 20 20 20 | n).AND.(qq.[iq+1].=.':')........ |
| 1120 | 20 41 4e 44 20 54 48 45 4e 20 70 61 72 73 65 74 20 28 63 2c 20 64 72 73 65 74 29 0d 0a 20 20 20 | .AND.THEN.parset.(c,.drset)..... |
| 1140 | 20 20 20 54 48 45 4e 20 0d 0a 20 20 20 20 20 20 20 20 42 45 47 49 4e 0d 0a 20 20 20 20 20 20 20 | ...THEN...........BEGIN......... |
| 1160 | 20 20 20 66 63 62 2e 63 66 64 5b 31 5d 20 3a 3d 20 63 3b 20 20 66 63 62 2e 63 66 64 5b 32 5d 20 | ...fcb.cfd[1].:=.c;..fcb.cfd[2]. |
| 1180 | 3a 3d 20 27 3a 27 3b 20 20 69 71 20 3a 3d 20 69 71 2b 31 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 | :=.':';..iq.:=.iq+1;............ |
| 11a0 | 64 65 66 69 6c 65 20 3a 3d 20 70 72 66 2e 63 66 6e 3b 20 20 20 7b 64 65 66 61 75 6c 74 20 74 6f | defile.:=.prf.cfn;...{default.to |
| 11c0 | 20 73 6f 75 72 63 65 20 6e 61 6d 65 20 6e 6f 77 7d 0d 0a 20 20 20 20 20 20 20 20 45 4e 44 0d 0a | .source.name.now}..........END.. |
| 11e0 | 20 20 20 20 20 20 45 4c 53 45 20 66 63 62 2e 63 66 64 20 3a 3d 20 27 20 20 27 3b 0d 0a 20 20 20 | ......ELSE.fcb.cfd.:=.'..';..... |
| 1200 | 20 66 69 6c 65 6e 6d 20 3a 3d 20 70 61 72 73 65 74 20 28 66 63 62 2e 63 66 6e 2c 20 69 64 73 65 | .filenm.:=.parset.(fcb.cfn,.idse |
| 1220 | 74 29 3b 0d 0a 20 20 20 20 49 46 20 70 61 72 63 68 72 20 28 27 3a 27 29 20 0d 0a 20 20 20 20 54 | t);......IF.parchr.(':').......T |
| 1240 | 48 45 4e 20 42 45 47 49 4e 20 20 66 63 62 2e 63 66 65 20 3a 3d 20 27 3a 20 20 27 3b 20 20 66 63 | HEN.BEGIN..fcb.cfe.:=.':..';..fc |
| 1260 | 62 2e 63 66 70 20 3a 3d 20 27 20 27 3b 20 20 45 4e 44 0d 0a 20 20 20 20 45 4c 53 45 0d 0a 20 20 | b.cfp.:=.'.';..END......ELSE.... |
| 1280 | 20 20 49 46 20 70 61 72 63 68 72 20 28 27 2e 27 29 0d 0a 20 20 20 20 20 20 54 48 45 4e 20 5b 65 | ..IF.parchr.('.')........THEN.[e |
| 12a0 | 76 61 6c 20 28 70 61 72 73 65 74 20 28 66 63 62 2e 63 66 65 2c 20 69 64 73 65 74 29 29 3b 20 20 | val.(parset.(fcb.cfe,.idset));.. |
| 12c0 | 64 65 66 69 6c 65 20 3a 3d 20 70 72 66 2e 63 66 6e 5d 0d 0a 20 20 20 20 20 20 45 4c 53 45 20 66 | defile.:=.prf.cfn]........ELSE.f |
| 12e0 | 63 62 2e 63 66 65 20 3a 3d 20 64 65 66 65 78 74 3b 0d 0a 20 20 20 20 49 46 20 4e 4f 54 20 72 65 | cb.cfe.:=.defext;......IF.NOT.re |
| 1300 | 73 75 6c 74 20 28 66 69 6c 65 6e 6d 29 20 54 48 45 4e 20 66 63 62 2e 63 66 6e 20 3a 3d 20 64 65 | sult.(filenm).THEN.fcb.cfn.:=.de |
| 1320 | 66 69 6c 65 3b 0d 0a 20 20 20 20 62 6c 61 6e 6b 73 3b 0d 0a 20 20 20 20 6e 61 6d 2e 6c 65 6e 20 | file;......blanks;......nam.len. |
| 1340 | 3a 3d 20 30 3b 20 20 70 20 3a 3d 20 61 64 72 20 66 63 62 3b 0d 0a 20 20 20 20 46 4f 52 20 69 20 | :=.0;..p.:=.adr.fcb;......FOR.i. |
| 1360 | 3a 3d 20 30 20 54 4f 20 31 33 20 44 4f 20 49 46 20 70 5e 5b 69 5d 20 3c 3e 20 77 72 64 20 28 27 | :=.0.TO.13.DO.IF.p^[i].<>.wrd.(' |
| 1380 | 20 27 29 0d 0a 20 20 20 20 54 48 45 4e 20 5b 6e 61 6d 2e 6c 65 6e 20 3a 3d 20 6e 61 6d 2e 6c 65 | .')......THEN.[nam.len.:=.nam.le |
| 13a0 | 6e 2b 31 3b 20 6e 61 6d 5b 6e 61 6d 2e 6c 65 6e 5d 20 3a 3d 20 63 68 72 20 28 70 5e 5b 69 5d 29 | n+1;.nam[nam.len].:=.chr.(p^[i]) |
| 13c0 | 5d 3b 0d 0a 20 20 45 4e 44 3b 0d 0a 0d 0a 20 20 46 55 4e 43 54 49 4f 4e 20 63 6f 6e 73 6f 20 28 | ];....END;......FUNCTION.conso.( |
| 13e0 | 43 4f 4e 53 54 20 66 6e 3a 20 63 70 6d 6e 6d 29 3a 20 62 6f 6f 6c 65 61 6e 3b 0d 0a 20 20 42 45 | CONST.fn:.cpmnm):.boolean;....BE |
| 1400 | 47 49 4e 0d 0a 20 20 20 20 63 6f 6e 73 6f 20 3a 3d 20 28 66 6e 20 3d 20 27 43 4f 4e 20 20 20 20 | GIN......conso.:=.(fn.=.'CON.... |
| 1420 | 20 27 29 20 4f 52 20 28 66 6e 20 3d 20 27 55 53 45 52 20 20 20 20 27 29 3b 0d 0a 20 20 45 4e 44 | .').OR.(fn.=.'USER....');....END |
| 1440 | 3b 0d 0a 0d 0a 0d 0a 42 45 47 49 4e 0d 0a 20 20 6e 65 77 73 77 20 3a 3d 20 73 65 74 73 77 20 28 | ;......BEGIN....newsw.:=.setsw.( |
| 1460 | 64 6f 20 34 20 6f 66 20 30 29 3b 0d 0a 20 20 70 71 71 2e 72 20 3a 3d 20 31 32 38 3b 20 20 20 70 | do.4.of.0);....pqq.r.:=.128;...p |
| 1480 | 71 71 2e 73 20 3a 3d 20 63 65 73 78 71 71 3b 20 0d 0a 20 20 46 4f 52 20 69 20 3a 3d 20 30 20 54 | qq.s.:=.cesxqq;.....FOR.i.:=.0.T |
| 14a0 | 4f 20 70 71 71 5e 2e 6c 65 6e 2b 31 20 44 4f 20 71 71 5b 69 5d 20 3a 3d 20 70 71 71 5e 5b 69 5d | O.pqq^.len+1.DO.qq[i].:=.pqq^[i] |
| 14c0 | 3b 20 20 69 71 20 3a 3d 20 31 3b 0d 0a 20 20 52 45 50 45 41 54 0d 0a 20 20 20 20 69 73 63 6f 6d | ;..iq.:=.1;....REPEAT......iscom |
| 14e0 | 6d 61 20 3a 3d 20 74 72 75 65 3b 20 20 70 72 66 2e 63 66 6e 20 3a 3d 20 27 20 20 20 20 20 20 20 | ma.:=.true;..prf.cfn.:=.'....... |
| 1500 | 20 27 3b 0d 0a 20 20 20 20 49 46 20 66 69 6c 65 6e 6d 20 28 6d 73 70 72 66 2c 20 70 72 66 66 69 | .';......IF.filenm.(msprf,.prffi |
| 1520 | 6c 2c 20 70 72 66 2c 20 64 66 70 72 66 29 0d 0a 20 20 20 20 54 48 45 4e 0d 0a 20 20 20 20 42 45 | l,.prf,.dfprf)......THEN......BE |
| 1540 | 47 49 4e 0d 0a 20 20 20 20 20 20 65 76 61 6c 20 28 70 61 72 63 68 72 20 28 27 2c 27 29 29 3b 0d | GIN........eval.(parchr.(','));. |
| 1560 | 0a 20 20 20 20 20 20 65 76 61 6c 20 28 66 69 6c 65 6e 6d 20 28 6d 73 68 73 74 2c 20 68 73 74 66 | .......eval.(filenm.(mshst,.hstf |
| 1580 | 69 6c 2c 20 68 73 74 2c 20 64 66 68 73 74 29 29 3b 0d 0a 20 20 20 20 20 20 69 73 63 6f 6d 6d 61 | il,.hst,.dfhst));........iscomma |
| 15a0 | 20 3a 3d 20 70 61 72 63 68 72 20 28 27 2c 27 29 3b 0d 0a 20 20 20 20 20 20 65 76 61 6c 20 28 66 | .:=.parchr.(',');........eval.(f |
| 15c0 | 69 6c 65 6e 6d 20 28 6d 73 6d 61 70 2c 20 6d 61 70 66 69 6c 2c 20 6d 61 70 2c 20 27 6d 61 70 27 | ilenm.(msmap,.mapfil,.map,.'map' |
| 15e0 | 29 29 3b 0d 0a 20 20 20 20 20 20 62 6c 61 6e 6b 73 3b 20 20 65 76 61 6c 20 28 70 61 72 63 68 72 | ));........blanks;..eval.(parchr |
| 1600 | 20 28 27 3b 27 29 29 3b 20 20 62 6c 61 6e 6b 73 3b 0d 0a 20 20 20 20 20 20 49 46 20 68 73 74 2e | .(';'));..blanks;........IF.hst. |
| 1620 | 63 66 6e 20 3c 3e 20 6e 75 6c 6e 20 54 48 45 4e 20 6e 65 77 73 77 5b 33 5d 20 3a 3d 20 6e 65 77 | cfn.<>.nuln.THEN.newsw[3].:=.new |
| 1640 | 73 77 5b 33 5d 20 4f 52 20 38 3b 0d 0a 20 20 20 20 20 20 49 46 20 6d 61 70 2e 63 66 6e 20 3c 3e | sw[3].OR.8;........IF.map.cfn.<> |
| 1660 | 20 6e 75 6c 6e 20 54 48 45 4e 20 6e 65 77 73 77 5b 33 5d 20 3a 3d 20 6e 65 77 73 77 5b 33 5d 20 | .nuln.THEN.newsw[3].:=.newsw[3]. |
| 1680 | 4f 52 20 30 34 3b 0d 0a 20 20 20 20 20 20 49 46 20 63 6f 6e 73 6f 20 28 6d 61 70 2e 63 66 6e 29 | OR.04;........IF.conso.(map.cfn) |
| 16a0 | 20 54 48 45 4e 20 6e 65 77 73 77 5b 33 5d 20 3a 3d 20 6e 65 77 73 77 5b 33 5d 20 4f 52 20 30 31 | .THEN.newsw[3].:=.newsw[3].OR.01 |
| 16c0 | 3b 0d 0a 20 20 20 20 20 20 49 46 20 69 71 20 3e 20 71 71 2e 6c 65 6e 20 54 48 45 4e 20 5b 6f 6c | ;........IF.iq.>.qq.len.THEN.[ol |
| 16e0 | 64 73 77 20 3a 3d 20 6e 65 77 73 77 3b 20 20 72 65 74 75 72 6e 5d 3b 0d 0a 20 20 20 20 45 4e 44 | dsw.:=.newsw;..return];......END |
| 1700 | 3b 0d 0a 20 20 20 20 70 74 79 75 71 71 20 28 31 35 2c 20 61 64 73 20 27 4c 69 6e 65 20 69 6e 76 | ;......ptyuqq.(15,.ads.'Line.inv |
| 1720 | 61 6c 69 64 3a 20 27 27 27 29 3b 20 20 69 20 3a 3d 20 71 71 2e 6c 65 6e 20 2d 20 69 71 20 2b 20 | alid:.''');..i.:=.qq.len.-.iq.+. |
| 1740 | 31 3b 0d 0a 20 20 20 20 49 46 20 69 20 3e 20 30 20 54 48 45 4e 20 70 74 79 75 71 71 20 28 69 2c | 1;......IF.i.>.0.THEN.ptyuqq.(i, |
| 1760 | 20 61 64 73 20 71 71 20 5b 69 71 5d 29 3b 0d 0a 20 20 20 20 70 74 79 75 71 71 20 28 31 35 2c 20 | .ads.qq.[iq]);......ptyuqq.(15,. |
| 1780 | 61 64 73 20 27 27 27 2c 20 73 74 61 72 74 20 61 67 61 69 6e 2e 27 29 3b 20 20 70 6c 79 75 71 71 | ads.''',.start.again.');..plyuqq |
| 17a0 | 3b 20 20 69 71 20 3a 3d 20 32 35 36 3b 0d 0a 20 20 55 4e 54 49 4c 20 46 41 4c 53 45 3b 0d 0a 45 | ;..iq.:=.256;....UNTIL.FALSE;..E |
| 17c0 | 4e 44 3b 0d 0a 45 4e 44 2e 0d 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ND;..END........................ |
| 17e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |