IMD 1.17: 24/11/2010 19:50:40 20 pil1  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ÅÙÔÁ×@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@åÖÓñ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@æÈÄÙñ@ÄÁãÁ@@@@@@@@@@@@@@@ðøð@ðñððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ðñððñ@ÄÄÙñ@ÄÁãÁðù@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁñð@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁññ@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁñò@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁñó@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁñô@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁñõ@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁñö@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁñ÷@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁñø@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁñù@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁòð@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁòñ@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁòò@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁòó@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁòô@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁòõ@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁòö@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ àöà&à–àlàÅ—km÷ øÿÇHBfÌÎ ûÖ …  À À & Ãå€ Äåú€Ä%òÿC Ãåý€Ãe€€ Á èöU7F ?IO ERROR WHILE BOOTING? 7$ ?NOT ENOUGH CORE TO BOOT? À âÿÆ  Âe— àÊ ù·— €Ö‡ß ß• vÿß• öÿ7| SYSTEM.PASCAL? wÚ7b SYSTEM.INTERP? @AàÁw¶Â ‰À®Á ‰ÀÂ`!ÁÒ ÒmŽG~Àd!Â~â†� ‰â ·^·\÷F‚è……ìøÿÍÅå C& ÀJ& äÿ† 0  ÷ENÀ Á€Â ‚~À TEM.PASCALj$#Ÿ Â_€‚~ßU@pÿÄÄe ÂÄþÃÌ5Ìw þÕE€ àÅ‹÷Ìw àýÅŠøw Öý å׋ïC!ÞÌÔ Å@Å D~Ì‹þ€Ì �×  wTþwøýÁD’Ô¤ ü€ÁåÀe€ÁeW ï‡7 ?YOU DON'T HAVE A €€ ”� ß‹tÿý€_�vÿ÷ @ @ €þ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PIL13Tèóf4Ÿ¼xp¼P CASET.TEXTj}\œPV RANS.TEXTàkZžVZ MILD.TEXTàkZžZ^ RANIOD.TEXTàk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Zž^b RAND.TEXTàkZžbl MILTA.TEXTàkZžlr RANIOS.TEXTàyúž‚† LABD.TEXTàkZžŒ’ MILTA.CODEàk@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Zž’® CASES.TEXTàyZž®Ä CASES.CODEà#ZžÄÉ CASES.PMDà#dZžÉÌ CASET.DIRà# ZžÌâ MILS.TEXT@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@àyúžàkZž§½ MILS.TEXTàkZž½Á LABD.TEXTàkZžÁÇ RANIOS.TEXTàkZžÇÍ MILTA.CODEàkZž s)he will be told the average score for the class. / Do you want to have your answers scored? :typebye /Thank you. /It's titate is created by a change of abode with the absence of any present intention not to reside permanently or indefinitely in thme to sign off. To do so, type 'bye' and turn off the teletype and coupler and hang up the phone. :i1 / / / / e new abode." :agr /Do you agree? :eval /Please evaluate your answer in light of what follows. :q27a / /Q-27a. Jill says that J AN EXERCISE IN CASE ANALYSIS / Copyright 1974 by Roger Park / Rev'd. 10-15-77ack's statement of the holding (Q-1, above) is inaccurate because Baker v. Keck holds that change of domicile occurs only if  KCJ / / If you have started this exercise before and want to resume where you stopped last time, please type the number (1-32) of the question on which you want to begin. Otherwise, just push 'return' to continue. :i2 / I will ask you a series of questions. Sometimes one question will be followed by another without comment. At other times, I will give my own opinion about what the answer should be. Caveat: Many lawyers would disagree with some of my opinions. Therefore, do not take them as gospel. / Unless otherwise instructed, please answer all my questions "yes" or "no." You may substitute "y" for "yes" and "n" f:name /Please type in your name or identifying number. :student /Are you taking this exercise as part of a law school course reor "no." :ho / Do you have the handout for this exercise? :ho1 / The exercise really cannot be done without the handoutquirement? :doneq / You have finished the exercise. Now, please answer the following questions about your experience with . Please get a copy of the handout if you don't already have one. :q1 / /Q-1. You are participating in a skull session about Bathe computer. The computer will report your responses anonymously. :wantsco / / If you wish, the computer will score your aker nswers and tell you your score at the end of the exercise. Your score will not be reported to your teacher by name, although ( v. Keck at your law firm. Jack, one of the associates, says that the holding of Baker v. Keck is that "Citizenship in a new s cause Baker v. Keck elsewhere clearly indicates that /(1) citizenship and domicile are synonymous, and /(2) a new domicile may  number within the proper range. :ab / You have now given three answers which I am not programmed to accept. Therefore I wibe acquired without any / participation in community activities. /Consider Jack's second proposition. Is there language in ll tell you my answer. I think that Section 19 is the section most helpful to Jack. :q27nb / / Not the best answer. I think Baker v. Keck which supports it? :pwr / Probably wrong. :cor /Correct. :pcor / Probably correct. :q27d / /Q-27d. Type in ththere's other language in the opinion which is better. :q2719 / / The language in s. 19 states that if physical presence ae section number (1-25) containing the language which most clearly supports Jack's second proposition. :n3 / I have not beend intent to establish a home concur "even for a moment," a change of domicile has taken place. Thus, a person could change don programmed to accept your answer as micile the moment he moved into a house in a new state, long before he had a chance to engage in community affairs. :q2 / /Q-2. one of the correct ones. Do you want to explain why you chose this section? :typ /Do you need typing instructions? :type /  Tom argues that, even if Jack's statement (quoted in Q-1) is an accurate statement of legal doctrine, it is not the holding othere has been - - /(1) a change of abode coupled with absence of intent not to / reside permanently or indefinitely, AND /(2 After the "?" appears, begin typing. Push the 'return' key at the end of each line, and wait for the "?" to appear before you) participation in community activities. :q27b / /Q-27b. Consider the language in Section 10 of the opinion. Is this language h resume typing. When you have finished, push the 'return' key, wait for the "?" to appear, and then push the 'return' key againelpful to Jill's position? :q27b1 / Section 10 states that "Citizenship . . . carries with it the idea of identification with. / Because of the difficulty of typing at the terminal, it is probably best to compose your answer on paper first. If you the state and a  do make a minor error, ignore it and continue typing. If you make an error so serious that it obscures your meaning, push the participation in its functions." Although this language is vague, one could interpret the "participation" phrase to mean that 'escape' button labeled 'ESC.' The line you were typing on will be deleted, so type your comment again from the beginning of  there must be some participation in community activities in order to create "citizenship" instead of mere "residence." :q27c that line. / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * :ok /Please begin typing. / :n3a / O.K. Now, pl/ /Q-27c. Jack defends his statement of the holding by arguing that the ambiguous language of section 10 should be ignored beease try again on Q-27d by choosing another  / Tom's rule is not dictum. The trial judge found that the plaintiff in Baker v. Keck had a motive to establish diversityevidence of UNITED STATES citizenship, . Hence, the rule stated was applicable to the facts before the court. :q4 / /Q-4. Tom argues that since his rule is not dictum not of citizenship in a certain state. Is Tom right? :q6a / / Tom is wrong. It would make no sense to read the passage the, it must be holding, and that therefore he was correct in stating what the holding of the case was. :q4a / / In my opinio way Tom has read it. To do so would be to read it as a rule saying "provided that a person is a United States citizen, then hn, Tom is wrong. Most cases have several "holdings," that is, they rely on several rules of law as links in the chain of reasoe can conclusively prove his United States citizenship by voting." :q7 / /Q-7. Tom's reading of the first sentence of s. 11 is ning leading to the result. However, when a lawyer speaks of "THE" holding of a case, he should be referring to the holding wh objectionable because it makes the sentence (please answer with a number): / 1. Circular / 2. Conclusory / 3. Evasich ive / 4. Analogous / 5. A negative pregnant :q7a / / Correct. The rule would be circular if one of the prerequisite is most relevant to the purpose for which he is reading the case. The court's holding about the significance of motive in s. s of proving United States citizenship was being a United States citizen. Therefore, the phrase must refer to proof of citize9 is not relevant to the purpose for which you are considering the case. Driver's move to Coffman was not motivated by a desirnship in the state in which the person has voted. :wt / Wrong. Try again. :q8 / /Q-8. In view of the above, do you want to e to establish diversity and therefore the language about motive is not the gist of the case -- "THE" holding -- so far as youchange your answer f Baker v. Keck. Tom says that the holding of Baker v. Keck is that a person can successfully acquire a new domicile even if or firm is concerned. :q5 / /Q-5. Jill says that Baker v. Keck holds in s. 11 that voting is conclusive evidence of citizenship ne of the motives which in the state in which the person has voted. She says that since this rule disposes of Driver's case, it is THE holding of Bake prompted him to change his abode was the desire to create diversity jurisdiction.(See s. 9) :q3 / /Q-3. Jack argues that Tom ir v. Keck so far as your firm is concerned. :q6 / /Q-6. Tom argues that the statement that "the exercise of suffrage by a citis wrong, since the rule referred to by Tom is dictum, not holding. Do you agree that Tom's rule is dictum? :wr /Wrong. :q3a / zen of the United States is conclusive evidence of his citizenship" in s.11 means that the exercise of suffrage is conclusive  nited States is conclusive evidence of citizenship in the state in which he voted? :q9a / / Baker v. Keck does not expressltatement by the court about the legal effect of voting would be dictum, i.e., a statement of a rule of law not applicable to ty endorse the rule. The court merely notes that "it is commonly held" that exercise of suffrage has this effect. It does not ehe facts before the court. (Of course, the xpressly state that it agrees with this common view. :q10 / /Q-10. Suppose, however, that the Baker v. Keck opinion had expres circumstance that the voting rule is not one of the holdings of Baker v. Keck does not mean that it is not of importance to ysly said "we hereby endorse and accept the rule that exercise of suffrage by a citizen of the United States is conclusive evidour firm in the case of P v. Driver. It is potentially dispositive of the diversity issue, and you would want to research theence of his citizenship." Would Jill then be correct in saying that this rule would be THE holding of Baker v. Keck (i.e., the voting rule carefully, beginning with the cases cited in Baker v. Keck.) :q14 / /Q-14. It is 1978. You are trying to persuad most important one for our purposes)? :q11 / /Q-11. Would she be correct in saying that this rule is one of the holdings of Be a judge to endorse the rule that voting in a state conclusively establishes citizenship there. Which of the following argumeaker v. Keck, even if not the most important nts should be advanced in support of the rule? / / 1. The rule will discourage forum-shopping. / 2. The rule will res one for our purposes? :q12 / /Q-12. Jack counters Jill by arguing that the voting rule is dictum instead of holding. :q12w / /trict diversity jurisdiction to cases / where there is danger of state-court bias. / 3. The rule will be easy to ad In my opinion, Jack is right and you are wrong. :q13 / /Q-13. Which of the following facts could be adduced in support of minister. / 4. Baker v. Keck provides precedential support for the / rule. / 5. The rule will reduce the numbean argument that Jack is correct in saying that the voting rule is dictum? / (1) Baker v. Keck involved a change of abode br of lawsuits. y a / plaintiff, not a defendant. / (2) The plaintiff in Baker v. Keck did not vote in / Oklahoma. / (3)/(Answer with as many numbers as are appropriate. Separate numbers with commas or spaces.) :q14a / I prefer (3) and (4). A  The plaintiff in Baker v. Keck had a floating intent. / (4) One of the plaintiff's motives in Baker v. Keck was / tper se rule that voting establishes citizenship would be easy to administer and might save time and money. In cases in which t to Q-5 from "no" to "yes"? :q9 / /Q-9. Does Baker v. Keck endorse the rule that exercise of the suffrage by a citizen of the Uo establish diversity jurisdiction. :q13a / / I prefer answer (2). Since the plaintiff in Baker v. Keck did not vote, any s u were CORRECT in pushing key 2. :q15(2)w / In my opinion, you should have pushed key 2. :q15(2) Giving conclusive effect tnt to change your answer to Q-1? (Note: I am asking everyone this question regardless of his or her answer to Q-1). :uay / o voting would allow a forum-shopping plaintiff to establish citizenship outside of his home state, and to gain access to fedeYou have answered "yes." :uan / You have answered "no." :tmt This means that you :nl no longer :sdn still do not :sd stillhe person had voted at his new abode, it would not be necessary to make difficult factual determinations about intent. Also, Bral courts even though he is not really aker v. Keck provides some precedential support for the rule, albeit it does so in equivocal dictum. / (5) is also a possib a foreignor to the courts of his state. :q15(3)c / You were CORRECT in pushing key 3. :q15(3)w / Perhaps you should alsility, though the effect of the rule in reducing the number of lawsuits is very speculative. :q15 / /Q-15. Which of the folloo have pushed key 3. :q15(3) One can argue that the voting rule would exclude diversity jurisdiction even when there is dangerwing arguments should your opponent adduce in opposition to the voting rule? / / (1) The rule will encourage forum-shoppin of state-court bias because a person who voted in a state while temporarily residing there would NOT be of diverse citizenshig. / (2) The rule will convey diversity jurisdiction even where / there is little danger of state-court bias. / p with an opponent born and raised in the state, and thus would not be able to obtain the protection of federal court. :q15(4) (3) The rule will exclude diversity jurisdiction even c / You were CORRECT in pushing key 4. :q15(4)w / In my opinion, you should also have pushed key 4. :q15(4) In recent y/ when there is substantial danger of state-court bias. / (4) Residency requirements for voting have been relaxed ears, it has become easier to qualify as a voter after moving to a new state. Baker v. Keck and the cases cited therein may th/ in recent years. /(Answer with as many numbers as are appropriate. Separate numbers with commas or spaces.) :q15(1)cerefore be distinguishable on grounds that when they were decided (1936 and earlier) newcomers were required to establish a st / You were CORRECT in pushing key 1. :q15(1)w / You were WRONG in failing to push key 1. :q15(1) Giving conclusive effronger connection with a state before being allowed ect to voting would create a danger of forum-shopping because litigants would be able to establish diversity jurisdiction simp to vote there. :acorr / Please answer with a number or numbers in the correct range (1- :notrel / I do not see the relevaly by voting in a new state, regardless of intent to remain there or degree of connection with the community. :q15(2)c / Yonce of (4). Please type in the reason why you chose (4). :q16 / /Q-16. In light of the discussion in questions 1-15, do you wa indefinitely is necessary for change of domicile. If registering to vote and participating in community activities conclusively established citizenship regardless of intent, then the remainder of the quoted sentence and a large portion of the opinion would be superfluous. :q18 / /Q-18. Even though you do not think that it is THE most important holding, do you nevertheless think that Tom has accurately described one of the holdings of Baker v. Keck? :nt15 / I'm not sure whether you're correct or n "is inconsistent with any conclusion other than that of citizenship." See s. 21. :q17y / / Your position is reasonable, buot. / / A substantial argument can be made that Tom has not accurately described the legal doctrine applied by the court. T do :nd now do :se agree with Jack's assertion that the holding of Baker v. Keck is that "Citizenship in a new state is creatt I disagree. First, the facts stated in the computer booklet contain no indication that Driver participated in a community pred by a change of abode with the absence of any present intention not to reside permanently or indefinitely in the new abode."oject, so the version of the holding advocated by Tom might not be controlling in Driver's case even if Tom's description of t Please consider this answer in light of what follows. :q17 / /Q-17. Tom argues that "THE" holding (i.e., the most important hhe doctrine established by Baker v. Keck was accurate. Secondly, there is doubt that Tom's description is accurate. / A suolding for your purposes) of Baker v. Keck is that registering bstantial argument can be made that Tom has not accurately described the legal doctrine applied by the court. The Court's opin to vote and participating in a community project without pay ion states in s. 21 that "such action is inconsistent with any conclusion other than that of citizenship, AND, in view of his sworn testimony that it was his intention to reside in Oklahoma and to continue to do so, it follows that the elements constituting the status of citizenship existed (emphasis added)."  Although the meaning of this passage is obscure, it is probably best to read the passage as meaning that intention to reside  g to vote and participating in community activities conclusively established citizenship regardless of intent, then the remain permanently or indefinitely. :q22 / /Q-22. Harvey says: "In Baker v. Keck the plaintiff intended to return as soon as the lawsder of the quoted sentence and a large portion of the opinion would be superfluous. :q19 / /Q-19. Jill argues that since Bakeruit was over. The court held that this intent did not prevent him from acquiring a new domicile in Oklahoma. Similarly, the de v. Keck established that "Change of domicile arises when there is a change of abode with the absence of any present intentionfendant here intended to leave Coffman after law school was over. His intent was essentially the same as that of the plaintiff not to reside permanently or indefinitely in the new abode," s. 12, the court must hold that Driver established a domicile in in Baker v. Keck, and thus he must be held to have acquired a domicile in Coffman." :q23 / /Q-23. Is Harvey describing the fac Coffman. She argues that he ts correctly? Did the plaintiff in Baker v. Keck in fact intend to return to Illinois as soon as the lawsuit was over? :q24 /  intended to move in the future, not the present, and therefore he lacked the "present intent" required by the quoted passage. /Q-24. I'll respond to your answer later. First, let's backtrack a bit. In Baker v. Keck the court was ruling on a motion to d:q19a / / Jill is clearly wrong. "Present intent" in the passage does not mean intent to move at the present time. It refeismiss for lack of subject matter jurisdiction. In this procedural posture, could the trial court make findings of fact, or wars to an intent to move in the future which is presently entertained. :q20 / /Q-20. Tom argues that Baker v. Keck adopts the Res it restricted to deciding issues he Court's opinion states in s. 21 that "such action is inconsistent with any conclusion other than that of citizenship, AND, statement provision that "To acquire a domicile of choice, a person must establish a dwelling-place with the intention of makiin view of ng it his home." He says that Driver intended to make Coffman his home for three years, and therefore clearly established a do his sworn testimony that it was his intention to reside in Oklahoma and to continue to do so, it follows that the elements comicile there. :q21 / /Q-21. Is the rule quoted in Q-20 inconsistent with the rule quoted in Q-19? :q21a / / The two rules anstituting the status of citizenship existed (emphasis added)." Although the meaning of this passage is obscure, it is probablyre not necessarily inconsistent. The word "home" could be viewed as a legal word of art referring to a dwelling-place which is best to read the passage as meaning that intention to reside indefinitely is necessary for change of domicile. If registerin occupied with intent to remain  Q-25. Did the trial court find as a fact that plaintiff intended to return to Illinois as soon as the case was settled? :wrq2 Q-26, or is it 5 Therefore, your answer to Q-23 was, in my opinion, probably wrong. The trial judge did not find that plaintiff intended to  distinguishable? / 1. Identical. / 2. Distinguishable. :q27a1 / / If the court credits Driver's testimony that he return to Illinois. :corq25 Therefore, your answer to Q-23 was, in my opinion, probably correct. The trial judge did not find had a definite intent to leave Coffman upon graduation, then his intent would seem to be distinguishable. He would have a fixethat plaintiff intended to return to Illinois. :cs22 See s. 22. :q26 / /Q-26. The trial judge's opinion indicates that plaintid intent instead of a "floating" intent. Therefore, Harvey's assertion (Q-22) seems wrong. Driver is claiming a different kindff would be held to have acquired an Oklahoma domicile even if -- / 1. He had a fixed present intent to return to Illinois  of intent from that postulated by the court in Baker v. Keck. :q28 / /Q-28. You now have one final chance to change your answe/ on a date certain. r to Q-1. Do you now agree with Jack's statement of the holding? :q28a / /Q-28a. You have answered "no," indicating that you do/ 2. He had a fixed present intent to return to Illinois / after the occurrence of a contingent event. / 3. He wa not agree with Jack's statement of the holding. Why not? / / 1. I believe that Jill's statement(See Q-27a) / is bs considering return to Illinois upon the / occurrence of a contingency, but he had not / yet made up his mind. / etter. / 2. I disagree with Jack for some other reason. :q28a1 / Thankyou. I will tell you my views in a moment. First (Choose one answer by typing in the number and / pushing the "return" key.) :q26a / / I prefer (3). The court state, another question: s that there was evidence that the plaintiff had said that he "might" return, implying that he had not made up his mind yet. S:q28a2 / Please type in your reason for disagreeing with Jack's position. :q28a2a / Thankyou. I will now deliver your cee s. 22. The court also refers to a "floating" intent. Id. Although "floating" could arguably refer to a floating date of retomments to the author. Now, please answer another question. :q29 / /Q-29. Suppose that you were the judge in this action. You b of law? / 1. The trial court could make findings of fact. / 2. The trial court could only decide issues of law. :q24aurn, it probably refers to indecision on the part of plaintiff. :q27 / /Q-27. Assume that the trial court in your case decides / / The trial court could make findings of fact, and it did so in several places in the opinion. See, e.g., s. 9. :q25 / / that Driver's testimony is true. Is the kind of intent possessed by Driver identical to the intent described in part (3) of  s merely a way of cautioning the reader that there might be differences in situations not then under discussion. (For exampleicile there under the test described in Baker v. Keck. However, he could still be deemed a citizen of Coffman if voting is coelieve Driver's testimony that he always had a definite intention to leave Coffman upon graduation. You also believe his testi, a resident mony about the voting and the community activity. How would you rule? / (1) In favor of citizenship in Coffman / (2) In alien is not a citizen of the state in which he is domiciled for diversity purposes). The Court never expressly stated that m favor of citizenship in Fraser / (3) In favor of citizenship in Northrop :q29a3 / Wrong. Driver cannot be a citizen of Nere domicile was insufficient to establish citizenship. It did not need to resolve that issue in the case before it, because orthrop because he is not yet physically present there. "The fact of physical presence at a dwelling place and the intention the plaintiff was domiciled in the state and had also participated in community affairs. However, one could argue, on the basto make it a home must concur. . . ." S. 19. Please try again. :n24 / Thank you. Do you want to hear my views about the ais of the court's references to participation in community affairs, that "citizenship" requires some activity in the communitynswers  as well as intention to remain indefinitely. / Jack's statement of the holding is arguably correct. However, because of th to Q-1(Jack's statement of the holding) and Q-29(how the judge should rule)? :n26 / 1. ANSWER TO Q-1 (HOLDING OF BAKER V. Ke ambiguity described in the foregoing paragraph, it might be prudent to qualify his statement. For example: / / A changECK). Baker v. Keck clearly stated that "Change of domicile arises when there is a change of abode with the absence of any pe of citizenship from one state to another occurs / when a person acquires a domicile in the new state, at / least iresent intention not to reside permanently or indefinitely in the new abode." Therefore, if a person is always a citizen of tf he has also participated in community affairs he state of domicile, then Jack's statement of the holding is clearly correct. However, Baker v. Keck never expressly stated t/ there. A new domicile is acquired when there is a / change of abode with the absence of any present intention / hat "citizenship" and "domicile" were identical. It stated that citizenship and domicile were "SUBSTANTIALLY synonymous" (s.1 not to remain permanently or indefinitely in the new abode. / / 2. ANSWER TO Q-29. Strong arguments can be made in favo0), suggesting that there might be a difference between the two. Its qualification of the word "synonymous" could be viewed ar of either Coffman or Fraser. Since Driver has a definite intent to leave Coffman upon graduation, he has not acquired a dom  has definitely decided not to return to that state, perhaps his ties with the place of temporary abode are stronger than thosepermanent home in a third state, he should be deemed to be a citizen of the second state, despite the fact that his residence  with the state of former abode. / I would not favor making this exception. In my view, the predictability offered by a flatthere is temporary. Id. at 735. :q30 / /Q-30. Jill argues that the following version of the holding of Baker v. Keck is also  rule that the old domicile persists satisfactory: / "A change of citizenship from one state to another occurs when a person acquires a domicile in the new stat outweighs the possibility that the policies of diversity jurisdiction would be better served by making exceptions in cases whee, at least if he has also participated in community affairs there. Change of domicile arises when there is a change of abodnclusive evidence of citizenship. / The adoption of a per se rule that voting results in change of citizenship is neither mare there is reason to believe that the ties with the temporary abode may be stronger than those with the former abode. / :q29andated or forbidden by Baker v. Keck, and therefore it presents a question of first impression in the jurisdiction. I would be /Q-29a. Baker v. Keck was a district court case decided in 1938. Would you like to have a brief summary of how other authorit inclined to accept such a rule, on grounds that the advantages of avoiding jurisdictional litigation outweigh any possible foies have dealt with the issues discussed in this exercise? :q29ay / 1. DOMICILE AND CITIZENSHIP. Federal courts have generarum-shopping dangers. Only lly ruled that, for diversity purposes, a person is a citizen of a state if he is domiciled in the state and is a citizen of t a few litigants will care enough about choice of forum to move to another state and vote there, and little harm will be done he United States. 13 C. Wright, A. Miller & E. Cooper, Federal Practice and Procedure sec. 3611 at 697 (1975). / 2. VOTINGif those litigants are admitted to the federal court. :mor / More? :n26a / One could also argue that in the unusual circumsta AND CITIZENSHIP. Voting in a state is one factor to be considered in determining whether a person is a citizen of the state,nces of Driver's case, an exception should be made to the rule that an old domicile persists until a person has acquired a new but modern courts have generally not treated it as conclusive.  abode with intent to remain indefinitely. In the usual case, the rule makes sense because the person's ties with the state o Id. at 717. / 3. ACQUISITION OF A NEW DOMICILE. Wright, Miller & Cooper argue, without citation of authority, that when f his former abode are likely to be stronger than his ties with the place where he is temporarily residing. However, when he a person has left the state of his original domicile and is temporarily residing in a second state with intent to establish a   no difference in meaning between Jack's version and Jill's version; one is merely the negative statement of the holding, the  Jill's rule makes it more difficult for a person to change their domicile. It is in your client's interest for the court to other the affirmative. :q31a / In my opinion, Harvey is wrong. Suppose a person changed his abode without entertaining any  determine that a change of domicile took place. If Driver is still domiciled in Fraser, there is no diversity of citizenship. intent about the location of his future residence. Jill's rule should lead to a determination that no change of domicile had t:q33 / /Q-33. How long did you spend doing the exercise, not counting any time lost because of technical problems with the caken place, and omputer? /(Type in the answer CLOSEST to your time estimate) / / 1. One hour / 2. One and one-half hours / 3. Two Jack's rule should lead to the opposite result. :q32 / /Q-32.  hours / 4. Two and one-half hours / 5. Three hours / 6. Three and one-half hours / 7. Four hours :q34 / /Q-34. Please rate the educational value of this exercise. / / 1. Excellent / 2. Very good / 3. Good / 4. Fair e accompanied by a present intention to reside permanently or indefinitely in the new abode." :q30a / Jill's version seems satisfactory. It has textual support  in the latter part of s.12. Arguably, Jack's version is more authoritative, since the statements in s.12 supporting Jill's version are quotes from another decision, whereas the court takes full responsibility for the first sentence of s.12 and this sentence supports Jack's version. However, it appears clear that the court regarded the quoted portions as good law, and Jill's version of the rule is perfectly consistent with the result reached in Baker v. Keck. :q31 / /Q-31. Harvey argues that there is/ Whose rule would be more favorable to your client (P) in this case? / (1) Jill's rule / (2) Jack's rule :q32a /  / /   procedure Remove( Offset: PermRange; var PSeries: Series);   begin #with PSeries dO &if Element [ Offset ] then )begin ,Element [ Offset ] := False; ,Count := Count - 1; )end;  end { Remove };     procedure RandP(var Found: boolean; var Selection: PermRange;  var PSeries: Series);   var #Count : PermRange; #  begin #Found := ( PSeries.Count > 0 ); # #if Found then &begin )Selection := 0; )Count := Ran( Pseries.Count ); )while Count > 0 do ,begin /if PSeries.Element [ Selection + 1] then 2Count := Count - 1; /Selection := Selection + 1; ,end; )Remove(Selection, PSeries); &end;  end;   O^   procedure NextP(var Found: boolean; var Selection: PermRange;  var PSeries: Series); #  begin #Found := ( PSeries.CouýA¬‰nt > 0 ); # #if Found then &begin )Selection := 1; )while not PSeries.Element [ Selection ] do ,Selection := Selection + 1; )Remove(Selection, PSeries); &end;  end;     procedure SetPerm( PSize: PermRange; var PSeries: Series);   var #I: integer; #  begin #for I := 1 to PSize do &PSeries.Element [I] := True; #PSeries.Count := PSize;  end { SetPerm };  / 5. Poor / 6. Very poor / 7. I cannot fairly evaluate because of / technical computer problems / (Answer with one number only) :q35 / /Q-35. Please type in any other comments you have about the exercise or your experience with the computer. :bye / / That's all. Thank you for taking the exercise. Please type "BYE" and push 'return' to sign off.     const #StringSize = 250; #  type #LongString = String [StringSize]; #CharSet = Set of Char; #MatchType = (KMMatch, DMMatch, PMMatch);  var #KBD, #KBDCopy, #Temp : LongString; #CrackCol : 0..StringSize; #MaxLL, #Room : 0 .. 999; #Cases : boolean; #ResLine : integer; #ResLab : string [10]; #RandomSeed: real;  O^zA€˜O^6A@T O^“@€`  { Random I/O package declarations } const #BufSize = 512 ; #MaxBlock = 500 ; " var #RanBuf : packed array[1..BufSize] of Char ; #RanFil : File ; #ResBlk : -1..MaxBlock ; #RanEOF : boolean ; #BufPtr : 0..BufSize ; #SpCount : integer ;  type #PermRange = 0 .. MaxPerm; #Series = record &Count : PermRange; &Element : packed array[ PermRange ] of boolean; #end { Series };     begin $I := L ; $J := R ; $X := Directory [(I+J) div 2].LabelName ; ! $repeat (while Directory [I].LabelName < X do ,I := I + 1 ; (while X < Directory [J].LabelName do ,J := J - 1 ; (if I <= J then ,begin { Swap } 0W := Directory [I] ; 0Directory [I] := Directory [J] ; 0Directory [J] := W ; 0I := I + 1 ; 0J := J - 1 ,end { Swap } $until I > J ; $ $if L < J t program MilTa ;   {$I LABD }  {$I RANIOD } { var } $Dir : file of DirRecord ; $Directory : array [0..LabMax] of DirRecorhen (QSort(L, J) ; $if I < R then (QSort(I, R) (  end { QSort }; " !  procedure DrillHeader ; var I, J : integer ; begid ; $Name, NameTxT : String ; $FrameName : IDK ; $Line : string [255] ; $DirIndex : 0..LabMax ; $ {$I RANIOS }  {$R+}  n $for I := 1 to LabLen do (if (I+1) <= Length(Line) then ,FrameName [I] := UpperCase( Line [I+1] ) (else ,FrameName [I] :function Min(I, J : integer) : integer ; begin $if I < J then (Min := I $else (Min := J ;  end ; !  Function UpperCase(Ch= ' ' ; end;  procedure GetHeader { Skip till a header or EOF };   var Stop : boolean;  begin { GetHeader } $repeat aracter: Char) : Char;  begin $if Character in ['a'..'z'] then (UpperCase := Chr( Ord(Character) - Ord('a') + Ord('A') ) $else (UpperCase := Character;  end; procedure Intro { Setup initial conditions }; {$I-} begin { Intro } $Page(Output) ; $WriO^teLn ; $WriteLn(' ':20, 'MILTA - Create text directory') ; $WriteLn ; $Write('File name: ') ; $ReadLn( Name ) ; $NameTxT :=ºB² Concat( Name, '.TEXT' ) ; $if not RanOpen(NameTxt) then (begin -WriteLn('? ', NameTxt, ' Not found?') ; -Exit(MilTA) ; (end ; $Rewrite(Dir, Concat(Name, '.DIR') ) ; $if IOResult <> 0 then (WriteLn('?Can''t open output file?') ; $DirIndex := 0 ; $with Directory [0] do (begin -LabelName := 'AAAAAAAA' ; -Place.Block := 0 ; -Place.Byte := 0 ; (end ;  end { Intro };  {$I+} procedure QSort( L, R : integer ) { Sort directory entries }; var $I, J : integer ; $X : IDK ; $W : DirRecord ; !  ; (end; end { MarkHeader }; procedure DoIt { Main processor }; var I : integer ; begin { DoIt } $Seek(0, 1) ; $repeat (”CçõGetHeader ; (if not RanEOF then ,begin 0MarkHeader ; 0Write(FrameName:9) ; 0if (DirIndex mod 8) = 0 then 4WriteLn; ,end ; $until RanEOF ; $WriteLn; $WriteLn(DirIndex, ' Texts processed.') ; $QSort( 1, DirIndex ) ; $for I := 0 to DirIndex do (begin ,Dir^ := Directory [I] ; ,Put(Dir) ; (end ; $Close(Dir, Lock) ; $WriteLn('File ', Name, '.DIR created.') ; END { DoIt }; begin { Main } $Intro ; $DoIt ; end.   { Random read routines }  {$I-} function RanOpen(FName : string) : boolean ; { Attempt to open random file } begin { RanOpen } $Close(RanFil) ; $Reset(RanFil, FName) ; $RanOpen := IOResult = 0 ; $ResBlk := -1 ; $RanEOF := True ; $SpCount := 0 (GetRanLine(Line) ; (if RanEOF then ,Stop := True (else ,if Length(Line) = 0 then 0Stop := False ,else 0Stop := Line [1] = ':' ; $until Stop; ! $if not RanEOF then (DrillHeader ;  end { GetHeader };   procedure MarkHeader { Place frame info into directory }; begin { MarkHeader } $if DirIndex >= LabMax then (WriteLn('Directory overflow') ; $DirIndex := DirIndex + 1 ; $with Directory [DirIndex] do (begin ,Place.Block := ResBlk ; ,Place.Byte := BufPtr ; ,LabelName := FrameNameO^ ) < 1 end { RanRead };  procedure Seek( Blk, Byt : integer ) { Position at Blk, Byt }; begin $if ResBlk <> Blk then $RanR%Page(Output); %At(1,1);  end; procedure Start; var $Hi, Lo : integer; $ begin $Cases := False; $MaxLL := 80; $Cracead(Blk) ; $ResBlk := Blk ; $BufPtr := Byt ; end { Seek }; {$G+}  {$R-} procedure GetRanLine(var X : string ) { Read line fkCol := 0; $Time( Hi, Lo ); $RandomSeed := Abs(Lo) mod 500 { Set random seed }; $ResLab := ''; $ErasePage; end; functiorom random file };  label $1,2,3,4,5 ;  const $CR = 13 ; Eat = 16 ;  var $P, L, Z, EX, SP, BS : integer ;  begin $Bn KM(S : string): boolean; begin $KM := Pos(S, KBD) > 0 ; end; function PM(S : string): boolean; begin $PM := Pos(S, KBD) =S := 1 ;  1: L := BufSize - BufPtr + 1 { Chars left in line }; $P := Scan(L, = Chr(CR), RanBuf [BufPtr]) { Look for eol }; $ 1 ; end; function DM(S : string) : boolean ; begin (DM := S = KBD ; end; function EM(S : string) : boolean; var %P, if P < L then goto 3 { If full line gotten }; ( $if RanBuf [BufPtr] = Chr(0) then L := 0 { If trailing nulls }; Col : integer; %OK : boolean; begin $OK := True; $Col := 1; $while NextStr(S, Temp) and OK do (begin ,P := Pos(Temp, KBD);$MoveLeft(RanBuf [BufPtr], X[1], L) { Copy first part of line }; $BS := L + 1 ; $Seek(ResBlk+1, 1) ; $if RanEOF then goto 5 ,OK := P >= Col; ,Col := P + Length(Temp) ; (end; $EM := OK; end { EM }; function ManyMatch(var Place : integer ; var S : ; $goto 1 { For maximum speed, if not clarity! }; $  3: MoveLeft(RanBuf [BufPtr], X[BS], P) { Move rest of line }; $if ( string ; 3CompType : MatchType) : boolean ; var (Found : boolean; begin (Found := False; (Place := 0; (while NextStr(S, BufPtr+ P ) < BufSize $then (BufPtr := BufPtr + P + 1 $else (begin ,BufPtr := BufSize ; ,RanBuf [BufPtr] := Chr(0) ; (en Temp) and not Found do ,begin 0Place := Place + 1; 0case CompType of 5KMMatch : Found := KM(Temp); d { Update line base }; $P := P + BS - 1 ; $  2: EX := Scan(P, = Chr(Eat), X[1]) { Check for space eater character }; $ 5DMMatch : Found := DM(Temp); 5PMMatch : Found := PM(Temp); 0end { case }; ,end; (ManyMatch := Found; end { ManyMatch }; $if EX >= P then goto 4 { If no eaters }; , $SP := EX + 3 ; $L := Ord(X[EX+2])-34 ; $if L > 0 then (MoveRight(X[SP], X[SP+ function PMM(var Place : integer ; S : string) : boolean; begin (PMM := ManyMatch(place, S, PMMatch); end; function DMM(varL], P-SP+1) { lengthen } $else (MoveLeft(X[SP], X[SP+L], P-SP+1) { shorten }; $ $if L > -2 then FillChar(X[EX+1], L+2, ' ') Place : integer ; S : string) : boolean; begin (DMM := ManyMatch(Place, S, DMMatch); end; function KMM(var Place : integer  { space fill }; $P := P + L ; $goto 2 { For speed only!! }; $ $  4: X[0] := Chr(P);  !5:  end ; S : string) : boolean; begin (KMM := ManyMatch(Place, S, KMMatch); end; procedure Perform(S: string);  begin  end { Pe; end { RanOpen }; {$I+ } procedure RanRead(B : integer) { Read block B }; begin $RanEOF := BlockRead(RanFil, RanBuf, 1, B+2 638429+31.41597; #RandomSeed := RandomSeed-Trunc(RandomSeed); #Ran := Trunc(RandomSeed*Range) + 1;  end { Ran };  < ResLine) (then ,begin 0SeekLabel(Lab, Found); 0if Found 0then 4begin 8ResLab := Lab; 8ResLine := 0; 4end; ,end (elsprocedure Tfile(FN : string) ; var $Fil : file of DirRecord ; $Err : boolean; $ $procedure OpenUp(FN : string); $begin *e ,Found := True; (if Found (then ,begin 0while (Line > ResLine) and InFile do 4begin 8GetRanLine(Str); 8ResLine := Rerform }; procedure Rec(S1, S2 : string); begin end; procedure GetNumber(var N: integer; var Found: boolean); var $Done: Close(Fil) ; *{$I-} *Reset(Fil, Concat(FN, '.DIR')) ; *{$I+} *Err := IOResult <> 0; *Err := Err or not RanOpen(Concat(FN, 'boolean; $I, Tot, Sign: integer; #begin &Found := False; &Sign := + 1; &Tot := 0; &if Length(KBD) > 0 &then *begin .D.TEXT')); $end; # # begin { Tfile } $OpenUp(FN); $if Err then &OpenUp(Concat('#5:', FN)); $if Err then 'WriteLn(FN, ' noone := False; .I := 0; .while (I < Length(KBD)) and not Done do .begin 2I := I + 1; 2Done := KBD[I] in ['0' .. '9', '-', '+t found!') $else $begin *LabCount := 0 ; & *while not EOF(Fil) do ,begin 0LabelDict [ LabCount ] := Fil^ ; 0LabCount :=']; .end;  .if KBD[I] = '+' .then 2I := I + 1 .else 2if KBD[I] = '-' 6then :begin >I := I + 1; >Sign := - 1;  LabCount + 1 ; 0Get(Fil) ; ,end ; end;  end { Tfile }; procedure SeekLabel( Lab : string; var Found : boolean ) ; :end;  .Done := False; .while (I <= Length(KBD)) and not Done do .begin 2if KBD[I] in ['0' .. '9'] 2then 6begin :Tot : var $Lower, Upper, Probe : LabelRange ; $I : integer; $InLab : IDK ; begin $Lower := 1 ; $Upper := LabCount ; $Found :== Tot * 10 + Ord(KBD [I]) - Ord('0'); :I := I + 1; :Found := True; 6end 2else 6Done := True; .end; *end; &N := Tot * Sig False ; $InLab := ' '; $for I := 1 to Min(Length(Lab)-1,LabLen) do (InLab[I] := UpperCase( Lab[I+1] ) ; $repeat (n; #end { Number }; #procedure Crack( ChS : CharSet ; var Found : boolean ); %var *Start : integer; #begin { Crack }Probe := Trunc( (Lower+Upper) div 2 ) ; (with LabelDict[Probe] do (if InLab < LabelName ,then 0Upper := Probe - 1 ,else  (if CrackCol <= Length(KBDCopy) (then ,begin 0Start := CrackCol; 0while ( CrackCol < Length(KBDCopy) ) and 6not ( KBDCop0if InLab > LabelName 4then 8Lower := Probe + 1 4else 8Found := True ; $until Found or (Upper < Lower) ; $if Found (they[CrackCol] in ChS ) do 4CrackCol := Succ( CrackCol ); 4Found := True; 4KBD := Copy(KBDCopy, Start, CrackCol - Start + 1); n ,begin 0with LabelDict[Probe].Place do 4Seek(Block, Byte) ; ,end; end ; procedure Load(Lab : string ; var Str : LongStri5CrackCol := Succ( CrackCol ); ,end (else ,begin 0Found := False; 0KBD := ''; ,end; #end { Crack }; procedure Restore;ng ; Line : integer /; var Found : boolean); $function InFile : boolean; $begin )InFile := RanEOF; )if not RanEOF (then  begin (KBD := KBDCopy; (CrackCol := 1; end; function Ran( Range: integer) : integer;  begin #RandomSeed := RandomSeed*49.,if Length(Str) > 0 0then 4InFile := Str[1] <> ':' ; $end; begin (Str := '? NOT FOUND ?'; (if (Lab <> ResLab) or (Line   Room - Length(S) + BOL - 1; 1if NewRoom < 0 1then 5NoFits 1else 5if NewRoom = 0 5then 9JustFits 5else 9Fits; -end; )end;  end { PrtRaw }; #procedure PrLab(var Name : string); #var 'S : LongString ; 'Found : boolean; 'function EOR: boolean; (begin +EOR := RanEOF; +if not RanEOF +then .if Length(S) > 0 .then 2EOR := (S[1] = ':'); (end { EOR }; $begin { PrLab } &SeekLabel(Name, Found); &if Found &then *begin .GetRanLine(S); .while not EOR do .begin 2if Length(S) > 0 2then 3if S[1] <> '*' 3then 7begin =while (Length(S) > 1) and (S[Length(S)] = ' ') do >Delete(S, Length(sLine + 1; 4end; 0Found := InFile; ,end; end { Load }; procedure P(Name: LongString); var $Temp : LongString; #proS), 1); =if S = ' ' =then ?S := ''; =PrtRaw(S); 7end; 2GetRanLine(S); .end; *end (else ,begin 0WriteLn; 0WriteLn(Namcedure PrtRaw(var S : LongString); #var 'BOL, EOL, NewRoom: integer; &procedure NoFits; &begin e, ' - labeled text not found.'); ,end; #end { PrLab }; begin { P } %while NextStr(Name, Temp) do (if Temp[1] = ':' ,the,EOL := BOL + Room - 1; , ,{Look for end of last word} ,while (EOL > BOL) and (S[EOL] <> ' ') do /EOL := EOL - 1; ,if EOLn 0PrLab(Temp) ,else 0PrtRaw(Temp); end { P }; procedure Trap; forward; procedure Ask(Prompt : LongString); var I : in > BOL ,then /begin 2Write( Copy(S, BOL, EOL-BOL) ); 2BOL := EOL + 1; /end; ,WriteLn; ,Room := MaxLL; &end { NoFits }; teger; begin 'P(Prompt); 'ReadLn(KBD); 'if not Cases (then ,for I := 1 to Length(KBD) do 0KBD[I] := UpperCase(KBD[I]); 'K &procedure Fits; &begin +Write( Copy(S, BOL, Length(S) - BOL+1) ); +Room := NewRoom; +BOL := Length(S); &end { Fits }; BDCopy := KBD; 'CrackCol := 1; 'Trap; end; procedure PrintC(N: integer; S: LongString); var %GoAhead : boolean;  &procedure JustFits; &begin +WriteLn( Copy(S, BOL, Length(S) - BOL) ); +Room := MaxLL ; +BOL := Length(S); &end; begibegin %repeat )N := N - 1; )GoAhead := NextStr(S, Temp) and (N>0); %until not GoAhead; %P(Temp); end { PrintC }; procedn { PrtRaw } %if Length(S) > 0 %then )begin -S := Concat(S, ' '); -if S[1] = '/' -then 1begin 5WriteLn; 5Room := MaxLLure Wait; begin &At(24, 10); &Ask('Please press RETURN to continue.');  end { Wait };  ; 1end;  -if S[1] in ['/', ' ', '&'] -then 1BOL := 2 -else 1BOL := 1;  -while BOL < Length(S) do -begin 1NewRoom := const &LabMax = 350 ; LabLen = 8 ;  type %Marker = record 4Block : 0..1000 ; 4Byte : 0..512 ; 0end ; %IDK = packed array[1..LabLen] of char ;  %DirRecord = Record 5LabelName : IDK ; 5Place : Marker ; 1end ; %LabelRange = 0..LabMax ; var $LabCount : LabelRange ; $LabelDict : array [LabelRange] of DirRecord ;  { Random read routines } function RanOpen(FName : string) : boolean ; { Attempt to open random file } {$I-} begin { RanOpen } $Close(RanFil) ; $Reset(RanFil, FName) ; $RanOpen := IOResult = 0 ; $ResBlk := -1 ; $RanEOF := True ; $SpCount := 0 ; endO^8AÀ£O^OB¾ Blk := Blk ; $BufPtr := Byt ; end { Seek }; {$G+}  {$R-} procedure GetRanLine(var X : string ) { Read line from random file  §‰g¡öÕ‹¶ÍžÕ‹&¶§“¬Í ž¶¦ Texts processed.Íž¶};  label (1,2,3,4,5 ; const (CR = 13 ; Eat = 16 ; var (P, L, Z, EX, SP, BS : integer ;  begin $BS := 1 ;  1: L := ÍžÕ‹O§“¬Ï Õ‹f̧“¬ÌØÙÈ¡*Õ‹„ՋЧ‰j¥ŠœØÇ^ˆ¤¨Õ‹¤¥‰jžžÕ‹±Ø‚̹ôÕ‹»¥‰jÍžÕ‹Ò¶¦File Íž¶¥’ÿÍž¶¦ .DIR crBufSize - BufPtr + 1 { Chars left in line }; $P := Scan(L, = Chr(CR), RanBuf [BufPtr]) { Look for eol }; $if P < L then goto 3eated.Íž¶ÍžÕŒ­?€ . ƉjÆŠ–ÍƉ>ÆŠjÇÿÿÍÕŒ&ÎÕŒ/Î ÕŒ5ƉjÍƉ>ÍÁ§T':@tjʾb ÈH„¬ { If full line gotten }; ( (if RanBuf [BufPtr] = Chr(0) then L := 0 { If trailing nulls }; ÆÚªPÕ€ˆ¥‰>ÍÕ€š¥‰>ÆÍÕ€µž"ÃÌՀБÇÿÿÇôˆ«‰fՀ᫉gÕ€õ«‰iÕ�­RNÕ�W¥‰>¥ˆ>؂͞ɫ‰g­"Õ�Õ§‰fÙË(MoveLeft(RanBuf [BufPtr], X[1], L) { Copy first part of line }; (BS := L + 1 ; (Seek(ResBlk+1, 1) ; (if RanEOF then goto 5¡Õ�óÙÏÕ‚ÙÇÿÿÇôˆ«‰fÕ‚ØÇˆ«‰hÕ‚"­6Õ‚íÌÕ‚üǧ‰h•‚ÌÕƒ0Ý ¥ˆ>§‰h•‚ž ÌÕƒnÞÝɡՃ~¹NÕƒ¢¥ˆ>§‰h•‚¾Ã¡ÕƒÂÌÕ„ ; (goto 1 { For maximum speed, if not clarity! }; $  3: MoveLeft(RanBuf [BufPtr], X[BS], P) { Move rest of line }; $if ( ¥ˆ>§‰h•‚؂ݞՄGÝ‚ÌÕ„Y§‰f‚ÏÕ„m§‰g¡Õ„~¹òÕ„‰¹öÕ„Æ¥ˆ>§‰h•‚ØÙ‚ÞžÕ„þ§‰hÞ‚ÇɡՅ'§‰hÞ‚‚«‰h¹Õ…HÕ…QÇ«‰hÕ…g¥ˆ>§‰h•‚¿Õ… BufPtr+ P ) < BufSize $ then )BufPtr := BufPtr + P + 1 %else )begin -BufPtr := BufSize ; -RanBuf [BufPtr] := Chr(0) ; )e‚Õ…�ÞÙ‚•ÌÕ…¹ÞØ‚ž ÌÕ†ÛÞġՆ¹gÕ†3Û‚ÌÕ†CØÛ‚‚¾"•ÌÕ†]ÝšՆtØÚ‚ØÚÝ‚‚ÞÚ•‚ž¹Õ†«ØÚ‚ØÚÝ‚‚ÞÚ•‚žÕ†ÙݑšՆîØÛ‚‚Ý‚ ž nd { Update line base }; $P := P + BS - 1 ; $  2: EX := Scan(P, = Chr(Eat), X[1]) { Check for space eater character }; $ Õ‡ÞÝ‚ÌÕ‡(¹ôÕ‡MÕ‡Q؂޿ՇmÕ‡Œ­—l  zÕ�3ÛÚÉ¡Õ�DÛ̹Õ�VÚÌÕ�c­ˆ"Õ�£Ú³ÿþÿ‹¡ Õ�ÌÚa•A‚̹ՂÚ$if EX >= P then goto 4 { If no eaters }; , (SP := EX + 3 ; (L := Ord(X[EX+2])-34 ; (if L > 0 then ,MoveRight(X[SP], X[SPÌÕ‚"­ƒ8Õ‚p¶ ÍÕ‚„¶ÍÕ‚�¶ Ͷ¦MILTA - Create text directoryͶÍՂŶÍՂ϶¦ File name: ÍÕ‚é+L], P-SP+1) { lengthen } (else ,MoveLeft(X[SP], X[SP+L], P-SP+1) { shorten }; ( (if L > -2 then FillChar(X[EX+1], L+2, ' '¶¥’ÿPͶÍÕ‚ý¥’ÖÌÆ¥’ÿPÍÆ¦.TEXTUÍÆªPÕƒ¥’ÖÏ“¡?ÕƒAÕƒK¶¦? Ͷ¥’ÖͶ¦ Not found?ͶÍÕƒržÕƒ�Õ) { space fill }; (P := P + L ; (goto 2 { For speed only!! };  4: begin $X[0] := Chr(P);  {$R+}  end;   5: { GetRanƒ�¥‰jÌÆ¥’ÿPÍÆ¦.DIRTÍÆÍÕƒ°ž"Ë¡*ՃͶ¦?Can't open output file?ͶÍÕƒ÷Ç^ˆ«“¬Õ„¥ŠœÇ^ˆ¤ÌÕ„Õ„+ئAAAA { RanOpen }; {$I+ } procedure RanRead(B : integer) { Read block B }; begin $RanEOF := BlockRead(RanFil, RanBuf, 1, B+2) < 1Line }  end; {$G-}   end ;  procedure Seek( Blk, Byt : integer ) { Position at Blk, Byt }; begin $if ResBlk <> Blk then $RanRead(Blk) ; $Res MILTA  A O^ RANIOS } {$I MILS } #  procedure Trap;  #begin &if KM('/QUIT') &then )begin ,ErasePage; ,Exit(CaseAnalysis); )end;AAAAЩÕ„CØ¢Ç舚ՄXØ¢ LjšÕ„jÕ„r­@VžÕ… ÙÌÕ…ØÌÕ…"Æ¥ŠœÛÚ‚†Ç^ˆ¤©Õ…VÕ…^¥ŠœÛÇ^ˆ¤Æµ ¡ Õ…�ۂ̹öÕ…”Æ¥Šœ CåÚÇ^ˆ¤µ ¡ Õ…·Ú•̹ôÕ…ÇÛÚÈ¡RÕ…ÛÕ…èÆ ¥ŠœÛÇ^ˆ¤¨Õ†¥ŠœÛÇ^ˆ¤¥ŠœÚÇ^ˆ¤¨Õ†*¥ŠœÚÇ^ˆ¤Æ ¨Õ†9Û‚ÌÕ†HÚ•ÌÛÚÅ¡òÕ†xÙÚɡՆ‹ÙÚÏ Õ†˜ÛØÉ¡Õ†«ÛØÏ ­½�¾ î Õ‡ÌÌÙÚÈ¡?Õ‡ Ù‚¥“,¾È¡Õ‡G¥“(Ùˆ•‚¥“,Ù‚›¾Ï¿¹Õ‡z¥“(Ùˆ•‚ ¿Ù‚̹öÕ‡‹­IZ Õ‡ýÕˆ ¥“,ÏÕˆ§‰g¡Õˆ,̹ Õˆ@¥“,¾Ã¡Õˆ]̹ Õˆt¥“,›¾:ÃÌÕˆ�Ø¡öÕˆž§‰g“¡Õˆ¼Ï ՈĭQ\ Õ‰.§“¬Ç^Ä¡(Õ‰P¶¦Directory overflowÍž¶ÍžÕ‰s§“¬‚Ç^ˆ«“¬Õ‰Œ¥Šœ§“¬Ç^ˆ¤ÌÕ‰¬Õ‰¼Ø¢§‰fÇèˆšÕ‰ÖØ¢ §‰hLjšÕ‰óØ¥“(©ÕŠÕŠ ­Ž ÕŠlÏÕŠ}ÕŠ‰Ï ÕŠ�§‰g“¡2ÕŠ¨ÕŠµÏ ÕŠ¿¶¥“( ÍžÕŠÓ§“¬ŽÃ¡ ÕŠ÷¶ÍžÕŠþÕ‹§‰g¡öÕ‹¶ÍžÕ‹&¶§“¬Í ž¶¦ Texts processed.Íž¶ÍžÕ‹O§“¬Ï Õ‹f̧“¬ÌØÙÈ¡*Õ‹„ՋЧ‰j¥ŠœØÇ^ˆ¤¨Õ‹¤¥‰jžžÕ‹±Ø‚̹ôÕ‹»¥‰jÍžÕ‹Ò¶¦File Íž¶¥’ÿÍž¶¦ .DIR created.Íž¶ÍžÕŒ­?€ . ƉjÆŠ–ÍƉ>ÆŠjÇÿÿÍÕŒ&ÎÕŒ/Î ÕŒ5ƉjÍƉ>ÍÁ§T':@tjʾb ÈH„¬  { Case - An erexcise in case analysis. }  { Copyright University of Minnesota }  { Author - Roger Park }  { Programmer - E overflowÍž¶ÍžÕ‰s§“¬‚Ç^ˆ«“¬Õ‰Œ¥Šœ§“¬Ç^ˆ¤ÌÕ‰¬Õ‰¼Ø¢§‰fÇèˆšÕ‰ÖØ¢ §‰hLjšÕ‰óØ¥“(©ÕŠÕŠ ­Ž ÕŠlÏÕŠ}arl A. Schleske 17 December 1978 }  {}  {}   program CaseAnalysis; var #I: integer; #Tries: integer; #Questions: integÕŠ‰Ï ÕŠ�§‰g“¡2ÕŠ¨ÕŠµÏ ÕŠ¿¶¥“( ÍžÕŠÓ§“¬ŽÃ¡ ÕŠ÷¶ÍžÕŠþÕ‹§‰g¡öÕ‹¶ÍžÕ‹&¶§“¬Í ž¶¦ Texts processed.Íž¶er; #Correct: integer; #Scoring: boolean; #Found: boolean; #KBDNum: integer; #AnsQ1: string; #AnsQ5: string; #AnsQ23: strÍžÕ‹O§“¬Ï Õ‹f̧“¬ÌØÙÈ¡*Õ‹„ՋЧ‰j¥ŠœØÇ^ˆ¤¨Õ‹¤¥‰jžžÕ‹±Ø‚̹ôÕ‹»¥‰jÍžÕ‹Ò¶¦File Íž¶¥’ÿÍž¶¦ .DIR cring; #Next: &(PQ1, PQ2, PQ3, PQ4, PQ5, PQ6, PQ7, PQ8, PQ9, PQ10, PQ11, PQ12, 'PQ13, PQ14, PQ15, PQ16, PQ17, PQ18, PQ19, PQ20,eated.Íž¶ÍžÕŒ­?€ . ƉjÆŠ–ÍƉ>ÆŠjÇÿÿÍÕŒ&ÎÕŒ/Î ÕŒ5ƉjÍƉ>ÍÁ§T':@tjʾb ÈH„¬ PQ21, PQ22, PQ23, 'PQ24, PQ25, PQ26, PQ27, PQ28, PQ29, PQ30, PQ31, PQ32, LAST); # {$I LABD } {$I RANIOD }  {$I MILD } # {$I  #begin &Questions := Questions + 1; &P(':Q3'); &AskYN; &At(6, 1); &if KM('NO') &then )begin 0; #end { Q9 }; procedure Q10; #begin &Questions := Questions + 1; &P(':Q10'); &AskYN; &ErasePage; &if KM('YES') &,Correct := Correct + 1; ,P(':COR'); )end &else )P(':WR'); &P(':Q3A'); &Wait; &ErasePage; &Next := PQ4; #end { Q3 }; then )Next := PQ12 &else )begin ,Correct := Correct + 1; ,Next := PQ11; )end; #end { Q10 }; procedure Q11; #begin  procedure Q4; #begin &Questions := Questions + 1; &P(':Q4|:AGR'); &AskYN; &At(6, 1); &if KM('NO') then )Correct := C&Questions := Questions + 1; &P(':Q11'); &AskYN; &ErasePage; &if KM('NO') then )Correct := Correct + 1; &Next := PQ12; #orrect + 1; &P(':Q4A'); &Wait; &ErasePage; &Next := PQ5; #end { Q4 }; procedure Q5; #begin &Questions := Questions end { Q11 }; procedure Q12; #begin &Questions := Questions + 1; &P(':Q12|:AGR'); &AskYN; &At(8, 1); &if KM('YES')  #end; procedure AskYN; #begin &At(23, 1); &Ask(''); &while not (KM('Y') or KM('N')) do )begin ,At(22, 1); ,WriteLn+ 1; &P(':Q5|:AGR'); &AskYN; &At(9, 1); &if KM('NO') then )Correct := Correct + 1; &AnsQ5 := KBD; &P(':EVAL'); &Wait; &('Type YES or NO please!'); ,Ask(''); ,At(22, 1); ,EraseLine; )end; &if KM('Y') &then )KBD := 'YES' &else ErasePage; &Next := PQ6; #end { Q5 }; procedure Q6; #begin &Questions := Questions + 1; &P(':Q6'); &AskYN; &At(8, 1)KBD := 'NO'; #end { AskYN }; procedure AskNum(var Num: integer; Max: integer); #begin &At(23, 1); &Ask(''); &GetNum); &if KM('NO') then )Correct := Correct + 1; &P(':Q6A'); &Wait; &ErasePage; &Next := PQ7; #end { Q6 }; procedure Q7;ber(Num, Found); &if not Found then )Num := 0; ) &while (Num < 1) or (Num > Max) do )begin ,At(22, 1); ,EraseLine; ,Writ #begin &Tries := 0; &Questions := Questions + 1; &P(':Q7'); &repeat )AskNum(KBDNum, 5); )Tries := Tries + 1; )if KBDNeLn('Type a number from 1 to ', Max, ' please!'); ,Ask(''); ,At(22, 1); ,EraseLine; ,GetNumber(Num, Found); ,if not Found tum <> 1 then ,begin /At(10, 1); /P(':WT'); ,end; &until KBDNum = 1; &At(10, 1); &EraseLine; &if Tries = 1 then hen /Num := 0; )end; #end { AskNum }; procedure TypeIn(Txt: string); #begin &ErasePage; &P(Txt); &repeat )At(23, 1)Correct := Correct + 1; &P(':Q7A'); &Wait; &ErasePage; &Next := PQ8; #end { Q7 }; procedure Q8; #begin &if AnsQ5 ); )Ask(''); &until KBD = ''; #end { TypeIn }; procedure Q1; #begin &P(':Q1|:AGR'); &AskYN; &At(11, 1); &AnsQ1 := KB= 'NO' &then )begin ,Questions := Questions + 1; ,P(':Q8'); ,AskYN; ,At(6, 1); ,if KM('NO') then /Correct := Correct + 1D; &P(':EVAL'); &Wait; &ErasePage; &Next := PQ2; #end { Q1 }; procedure Q2; #begin &Questions := Questions + 1; &P; ,P(':EVAL'); ,Wait; ,ErasePage; )end; &Next := PQ9; #end { Q8 }; procedure Q9; #begin &Questions := Questions + (':Q2|:AGR'); &AskYN; &ErasePage; &if KM('NO') then )Correct := Correct + 1; &Next := PQ3; #end { Q2 }; procedure Q3; 1; &P(':Q9'); &AskYN; &At(6, 1); &if KM('NO') then )Correct := Correct + 1; &P(':Q9A'); &Wait; &ErasePage; &Next := PQ1 n ,Correct := Correct + 1; ,P(':Q15(1)C'); )end &else )P(':Q15(1)W'); &P(':Q15(1)'); &Wait; &ErasePage; & &if KM('2') estions + 1; &P(':Q20|:AGR'); &AskYN; &ErasePage; &if KM('NO') then )Correct := Correct + 1; &Next := PQ21; #end { Q20 };&then )begin ,Correct := Correct + 1; ,P(':Q15(2)C'); )end &else )P(':Q15(2)W'); &P(':Q15(2)'); &Wait; &ErasePage;  procedure Q21; #begin &P(':Q21'); &AskYN; &At(8, 1); &P(':Q21A'); &Wait; &ErasePage; &Next := PQ22; #end { Q21 }& &if KM('3') &then )begin ,Correct := Correct + 1; ,P(':Q15(3)C'); )end &else )P(':Q15(3)W'); &P(':Q15(3)'); &Wait; ; procedure Q22; #begin &Questions := Questions + 1; &P(':Q22|:AGR'); &AskYN; &At(11, 1); &if KM('NO') then )Correc&ErasePage; & &if KM('4') &then )begin ,Correct := Correct + 1; ,P(':Q15(4)C'); )end &else )P(':Q15(4)W'); &P(':Q15(4t := Correct + 1; &P(':EVAL'); &Wait; &ErasePage; &Next := PQ23; #end { Q22 }; procedure Q23; #begin &Questions := )'); &Wait; &ErasePage; &Next := PQ16; #end { Q15 }; procedure Q16; #begin &P(':Q16'); &AskYN; &At(7, 1); &if KM(Questions + 1; &P(':Q23'); &AskYN; &ErasePage; &AnsQ23 := KBD; &if KM('NO') then )Correct := Correct + 1; 'YES') &then )begin ,P(':UAY'); ,if ANSQ1 = 'YES' then /P(':TMT|:NL|:SE') ,else /P(':TMT|:ND|:SE'); )end &else )begin &Next := PQ24; #end { Q23 }; procedure Q24; #begin &Tries := 0; &Questions := Questions + 1; &P(':Q24'); &AskNum(KB,P(':UAN'); ,if AnsQ1 = 'NO' then /P(':TMT|:SDN|:SE') ,else /P(':TMT|:SD|:SE'); )end; &Wait; &ErasePage; &Next := PQ17;DNum, 2); &At(11, 1); &if KBDNUM = 1 &then )begin ,Correct := Correct + 1; ,P(':COR'); )end &else )P(':WR'); &P(':Q24A&then )begin ,Correct := Correct + 1; ,P(':COR'); )end &else )P(':Q12W'); &Wait; &ErasePage; &Next := PQ13 #end { Q12 #end { Q16 }; procedure Q17; #begin &Questions := Questions + 1; &P(':Q17|:AGR'); &AskYN; &ErasePage; &if KM('YES' }; procedure Q13; #begin &Tries := 0; &Questions := Questions + 1; &P(':Q13'); &AskNum(KBDNum, 4); &At(11, 1); &if) &then )begin ,P(':Q17Y'); ,Wait; ,ErasePage; ,Next := PQ19; )end &else )begin ,Correct := Correct + 1; ,Next := PQ1 KBDNum = 2 then )Correct := Correct + 1; &P(':Q13A'); &Wait; &ErasePage; &Next := PQ14; #end { Q13 }; procedure Q14; 8; )end; #end { Q17 }; procedure Q18; #begin &Questions := Questions + 1; &P(':Q18'); &AskYN; &ErasePage;  #begin &Tries := 0; &Questions := Questions + 2; &P(':Q14'); &AskNum(KBDNum, 5); &ErasePage; &if (KBDNum = 3) or (KBDNu&if KM('NO') &then )begin ,Correct := Correct + 1; ,P(':NT15'); ,Wait; ,ErasePage; )end; &Next := PQ19; #end { Q18 }; m = 4) then )Correct := Correct + 1; &P(':Q14A'); &Wait; &ErasePage; &Next := PQ15; #end { Q14 }; procedure Q15; #b procedure Q19; #begin &Questions := Questions + 1; &P(':Q19|:AGR'); &AskYN; &At(11, 1); &if KM('NO') then )Correct egin &Tries := 0; &Questions := Questions + 4; &P(':Q15'); &At(23, 1); &ASK(''); &ErasePage; & &if KM('1') &then )begi:= Correct + 1; &P(':Q19A'); &Wait; &ErasePage; &Next := PQ20; #end { Q19 }; procedure Q20; #begin &Questions := Qu e /if AnsQ23 = 'YES' then 2P(':WRQ25'); )end; &P(':CS22'); &Wait; &ErasePage; &Next := PQ26; #end { Q25 }; procedure':Q28'); &AskYN; &if KM('NO') &then )begin ,ErasePage; ,P(':Q28A'); ,AskNum(KBDNum, 2); ,At(10, 1); ,if KBDNum = 2 ,th Q26; #begin &Questions := Questions + 1; &P(':Q26'); &AskNum(KBDNum, 3); &At(14, 1); &if KBDNum = 3 then )Correct := Cen /begin 2P(':Q28A2'); 2TypeIn(':Q28A2'); 2P(':Q28A2A'); /end ,else /P(':Q28A1'); )end &else )begin ,At(8, 1); ,P('orrect + 1; &P(':Q26A'); &Wait; &ErasePage; &Next := PQ27; #end { Q26 }; procedure Q27; #begin &Tries := 0; :Q28A1'); )end; &Wait; &ErasePage; &Next := PQ29; #end { Q28 }; procedure Q29; #begin &Tries := 0; &Questions := Q&Questions := Questions + 1; &P(':Q27'); &AskNum(KBDNum, 2); &At(9, 1); &if KBDNum = 2 &then )begin ,Correct := Correct uestions + 1; &P(':Q29'); & &repeat )AskNum(KBDNum, 3); )At(11, 1); )Tries := Tries + 1; )if KBDNum = 3 then ,P(':Q29A3'+ 1; ,P(':COR'); )end &else )P(':WR'); &P(':Q27A1'); &Wait; &ErasePage; & &P(':Q27A|:AGR'); &AskYN; &ErasePage; & &); &until KBDNum <> 3; & &ErasePage; &if Tries = 1 then )Correct := Correct + 1; &P(':N24'); &AskYN; &ErasePage; &if KMQuestions := Questions + 1; &P(':Q27B'); &AskYN; &At(8, 1); &if KM('YES') &then )begin ,Correct := Correct + 1; ,P(':COR('YES') then )begin ,P(':N26|:MOR'); ,AskYN; ,if KM('YES') ,then /begin 2At(8, 1); 2P(':N26A'); 2Wait; 2ErasePage; '); )end &else )P(':PWR'); &P(':Q27B1'); &Wait; &ErasePage; & &Questions := Questions + 1; &P(':Q27C'); &AskYN; &At(1/end ,else /ErasePage; )end; ) &P(':Q29A'); &AskYN; &ErasePage; &if KM('YES') then )begin ,P(':Q29AY'); ,Wait; ,Era1, 1); &if KM('YES') &then )begin ,Correct := Correct + 1; ,P(':COR'); )end &else )P(':WR'); &Wait; &ErasePage; & &TsePage; )end; &Next := PQ30; #end { Q29 }; procedure Q30; #begin &Questions := Questions + 1; &P(':Q30|:AGR'); &Askries := 0; &P(':Q27D'); &Questions := Questions + 1; &repeat )AskNum(KBDNum, 25); )At(8, 1); )Tries := Tries + 1; )if (KBYN; &At(11, 1); &if KM('YES') then )Correct := Correct + 1; &P(':Q30A'); &Wait; &ErasePage; &Next := PQ31; #end { Q30 };Dnum = 10) or (KBDNum = 12) or (KBDnum = 16) or (KBDNum = 18) )then ,begin /P(':Q27NB'); /Wait; /ErasePage; ,end )else , procedure Q31; #begin &Questions := Questions + 1; &P(':Q31|:AGR'); &AskYN; &At(7, 1); &if KM('NO') then )Correct '); &Wait; &ErasePage; &Next := PQ25; #end { Q24 }; procedure Q25; #begin &Questions := Questions + 1; &P(':Q25'); if KBDNum <> 19 ,then /begin 2P(':N3'); 2AskYN; 2if KM('YES') then 5TypeIn(':Q27D'); /end; &AskYN; &At(11, 1); &if KM('YES') &then )begin ,P(':PWR'); ,if AnsQ23 = 'YES' then /P(':WRQ25') ,else /if AnsQ23 = 'NO&until (Tries > 3) or (KBDNum = 19); & &if KBDNum = 19 &then )begin ,if Tries = 1 then /Correct := Correct + 1; ,P(':COR' then 2P(':CORQ25'); )end &else )begin ,P(':PCOR'); ,Correct := Correct + 1; ,if AnsQ23 = 'NO' then /P(':CORQ25') ,els|:Q2719'); )end &else )P(':AB|:Q2719'); &Wait; &ErasePage; &Next := PQ28; #end { Q27 }; procedure Q28; #begin &P( := Correct + 1; &P(':Q31A'); &Wait; &ErasePage; &Next := PQ32; #end { Q31 }; procedure Q32; #begin &Tries := 0; &QP(':BYE'); #Wait; #ErasePage;  end { CaseAnalysis }.  uestions := Questions + 1; &P(':Q32'); &AskNum(KBDNum, 2); &At(8, 1); &if KBDNum = 2 &then )begin ,Correct := Correct + 1; ,P(':COR'); )end &else )begin ,P(':WR'); )end; &P(':Q32A'); &Wait; &ErasePage; &Next := LAST; #end { Q32 }; begin { Cases } #Start; #AnsQ1 := ''; #AnsQ5 := ''; #AnsQ23 := ''; #Questions := 0; #Correct := 0; #Scoring := False; #Tfile('CASET'); #ErasePage; #P(':I1'); #At(23, 1); #Ask(''); #GetNumber(KBDNum, Found); #if not Found #then &begin )KBDNum := 1; )ErasePage; )P(':I2'); )Wait; )ErasePage; )P(':HO'); )AskYN; )if KM('NO') then ,begin /At(8, 1); /P(':HO1'); /Wait; /ErasePage; ,end )else ,ErasePage; , )P(':WANTSCO'); )AskYN; )Scoring := KM('YES'); &end; #Next := PQ1; #for I := 1 to ( KBDNum - 1 ) do &Next := Succ( Next ); #ErasePage; # # #repeat &case Next of )PQ1: ,Q1; )PQ2: ,Q2; )PQ�) CASEANAL 3: ,Q3; )PQ4: ,Q4; )PQ5: ,Q5; )PQ6: ,Q6; )PQ7: ,Q7; )PQ8: ,Q8; )PQ9: ,Q9; )PQ10: ,Q10; )PQ11: ,Q11; )PQ12: ,Q Î"Õ°‘Î,Õ°žÎ Õ°¥Æ‰ÁÍÁ!íÀ )ä4:Ä,”Ê�ðP 12; )PQ13: ,Q13; )PQ14: ,Q14; )PQ15: ,Q15; )PQ16: ,Q16; )PQ17: ,Q17; )PQ18: ,Q18; )PQ19: ,Q19; )PQ20: ,Q20; )PQH Ì ˆ Î  † ì h @Ä,’ T®‚ €ðVÔ"v¸†^žæ2¶ÆÂ`øŠ°ìðnÄì” °!Ì!â!"*"N"Ò"<#^#†#®#$,$J$Ê$J&È&21: ,Q21; )PQ22: ,Q22; )PQ23: ,Q23; )PQ24: ,Q24; )PQ25: ,Q25; )PQ26: ,Q26; )PQ27: ,Q27; )PQ28: ,Q28; )PQ29: ,Q2'.'V'Ö():)žOðÕ¯'ÎF¹ðÕ¯6ÎG¹Õ¯EÎH¹xÕ¯TÎI¹qÕ¯cÎJ¹jÕ¯rÎK¹cÕ¯�ÎL¹\Õ¯�ÎM¹UÕ¯ŸÎN¹NÕ¯®ÎO¹G¬¹@çâÝØÓÎÉÄ¿ºµ°«¦¡œ—9; )PQ30: ,Q30; )PQ31: ,Q31; )PQ32: ,Q32; &end; #until Next = Last; #if Scoring #then &begin )P('/'); ÆÚªPÕ€ˆ¥‰ÁÍÕ€š¥‰ÁÆÍÕ€µž"ÃÌՀБÇÿÿÇôˆ«‰éՀ᫉êÕ€õ«‰ìÕ�­RNÕ�W¥‰Á¥ˆÁ؂͞ɫ‰ê­"Õ�Õ§‰éÙË)Write('You answered ', Correct, ' questions correctly. '); )WriteLn('(', 100*Correct div Questions, '% correct)'); &end; #¡Õ�óÙÏÕ‚ÙÇÿÿÇôˆ«‰éÕ‚ØÇˆ«‰ëÕ‚"­6Õ‚íÌÕ‚üǧ‰ë•‚ÌÕƒ0Ý ¥ˆÁ§‰ë•‚ž ÌÕƒnÞÝɡՃ~¹NÕƒ¢¥ˆÁ§‰ë•‚¾Ã¡ÕƒÂÌÕ„ ÌÕ‰ˆ­ˆR"ÆÚªPÕ‰»Æ¥Šé¯ÌՉ̭RÆÚªPÕŠ)Ì/ÕŠ8Ì-ÕŠFÆ¥‰íÏ Ê/„¡.ÕŠiÕŠm¥‰í¥ŠéÍÌ.ÕŠ…Ê.Ê-ÄÌ/ÕŠ˜Ê.¥‰í¾‚Ì-ÕŠ´¡ Õ™¤¶›¾:ËÌÕ™½­4!ÆÛªPÕ™ÌÚ¦ ? NOT FOUND ?ªúÕ™æÆ¥‹l·Ù§‹kÉ�¡.ÕšÕš%ÆØÏÕš7Øø¡ÕšLÕšU¥‹lƪ Õšg«‹kÕšsÕšz¹Õš‰ØšÕš¹öÕŠºÊ/ÌÕŠÅ­HXdÕ‹TÌÕ‹fÜšÕ‹uÛ¥‰íÏ Ý“„¡OÕ‹ŸÕ‹§ÜÜø‚šÕ‹¼Ú¹*Õ‹Ú¥‰íÏ̹*ÕŒ¥‰íÏ̹Ռ0¥‰íÏ̹¬Å¹2&˜Øø¡7Õš­Õš¶Ù§‹kÅÎ!„¡ÕšÝÕšêÚÏÕšú§‹k‚«‹kÕ›¹öÕ›ØÎ!šÕ›+Õ›1­7R ¬ Õœ¶§‹h‚•¸ÕœA¶¶Ŷ¶›¾ Ë„¡ Õœj¶•¸¹ÕŒS¹öÕŒaÝÌÕŒo­g ~ÆÚªPÕŒÆÛÆÏÌÕŒë­ÝRÆÚªPÕ�5ÛÆÏÌÕ�Z­ÝRÆÚªPÕ�¤ÛÆÏÌÕ�É­ÝRöÕœ|¶¶Å¡1Õœ•Õœ�¶¶Æ¶¶¶•ÍÆÍžÕœ½¶‚¸ÕœÏ՜ڶ͞՜⧋iÇ爫‹hÕœò­|ü–$Õ�"¶¶Æ¶¶¾¶•‚ ¥ˆÁ§‰ë•‚؂ݞՄGÝ‚ÌÕ„Y§‰é‚ÏÕ„m§‰ê¡Õ„~¹òÕ„‰¹öÕ„Æ¥ˆÁ§‰ë•‚ØÙ‚ÞžÕ„þ§‰ëÞ‚ÇɡՅ'§‰ëÞ‚‚«‰ë¹Õ…HÕ…QÇ«‰ëÕ…g¥ˆÁ§‰ë•‚¿Õ…ÆتPÕ�û­RÆ,ÙªPÆتPÕŽ4­¤ÕŽ²ØšÕŽÃÌÕŽÑÌÕŽÝ¥Šé¾Å¡òÕŽüÕ�ÌÕ�ÌÕ�Ý¥Šé¾ÉÚ“„¡'Õ�IÕ�MÝ‚ÌÕ�^¥ŠéÝ›¾³‚Õ…�ÞÙ‚•ÌÕ…¹ÞØ‚ž ÌÕ†ÛÞġՆ¹gÕ†3Û‚ÌÕ†CØÛ‚‚¾"•ÌÕ†]ÝšՆtØÚ‚ØÚÝ‚‚ÞÚ•‚ž¹Õ†«ØÚ‚ØÚÝ‚‚ÞÚ•‚žÕ†ÙݑšՆîØÛ‚‚Ý‚ ž ÿ(‹ÌÕ�‰¹öÕ�’¥ŠéÝ›¾+á Õ�ªÝ‚̹"Õ�¿¥ŠéÝ›¾-áÕ�ÛÕ�ßÝ‚ÌÕ�ð‘ÌÕ�Õ�ÌÕ�"Ý¥Šé¾ÈÚ“„¡LÕ�MÕ�R¥ŠéÝ›¾³ÿ‹¡'Õ�xÕ�~Ü Õ‡ÞÝ‚ÌÕ‡(¹ôÕ‡MÕ‡Q؂޿ՇmÕ‡Œ­—l  zÕ€ŠÛÚšՀžÚ̹Հ°ÛÌÕ€º­ˆ"Õ€ðÛÚÅ¡Õ�Û̹Õ�ÚÌÕ� ­ˆ"Õ�\Ú�¥ŠéÝ›¾‚0•ÌÕ�©Ý‚ÌÕ�»ØšÕ�ʹÕ�ØÌÕ�ç¹ôÕ�îÕ�óÙÜÛ�šÕ‘­ iß Õ‘…§‹g¥Šk¾È¡qÕ‘°Õ‘¸§‹gÌՑΧ‹g¥Šk¾É¥Šk§‹g›¾Æ¼‹“„¡Õ³ÿþÿ‹¡ Õ�ˆÚA‚a•̹Õ�ÊÚÌÕ�Ü­ƒ8Õ‚9Û¦¯¡Õ‚T̹ZÕ‚lÕ‚vÌÕ‚ƒ¦|ÛÍÌÕ‚›ÜÅ¡#Õ‚°Õ‚·ÚÛÆÜ•ÍÆªPÕ‚’"§‹g‚Çúˆ«‹g¹öÕ’@ØšÕ’O¥Šé¥ŠkÆÊ§‹gÊ•‚ÍÆªúÕ’‰§‹g‚Çúˆ«‹gÕ’¤¹Õ’³Õ’»ØšÕ’Ë¥Šé¦ªúÕ’ØÕ’ß­þ" ¢Õ“ ¥Šé¥ŠkªúÕ“#×ÛÜÍÕ‚ê¹Õ‚ùÕƒÚÛªPÕƒÛ¦ªPÕƒÕƒ$Õƒ+­ÕTx Õƒ×Ø¦ªPÕƒìÌ1Õ„ÚɡՄՄڀÌÕ„,Ø-ªPÕ„:Õ„AÚÃØ¦·„¡Õ„€Ø¦-32768ªP¹ôÕ„›ÕÇúˆ«‹gÕ“-­"Õ“n¥‹r¥‹r¼³#¿�FC�³‹èSûBƒ½Õ“�¥‹r¥‹r¼¥‹r¼žŠ–½Õ“Ä¥‹r¼ÚŠ�ž‚ÌÕ“ê­@PÆتPÕ”…²+ÍžÕ”œ²„¢Ç'Ì/Õ„²Ì-Ì3Ê-Ê3Ä¡xÕ„ÏÕ„ÔÚÊ/†0‚Ì0Õ„øÊ00ÃÊ-Å„Ê1„¡Õ…B¹@Õ…^Õ…lÌ1Õ…|ØÌ4Æ4ØPÍÆ4¦ QÍÆ4ªPÕ…—ØØ¾›Ê0¿Õ…²Ê00Ë¡ Õ…ÅÚÊ/ŽÌÕ…áÊ/+Ì+Æ+ÆPÍÆ+¦.DIRTÍÆ+ÍՔŞ"˸�]Քݶ�]Ì+Æ+ÆPÍÆ+¦.TEXTUÍÆ+Ï“�¸�]Õ•­¨vÆتPÆ+Æ�WÍÕ•/ÆÎÕ•9Ê�]¡ †Ì/Õ…÷Ê-•Ì-¹öÕ…þÕ† ÙÉÌ2ՆƦ/ Æ3ÙØ¾•ÍÆ3ªPÕ†yÊ2¡Õ†‹ØÌ3Æ3ÆPÍÆ3ØÇ ÍÆ3ª!Õ•KÌ�^Æ�^¦#5:ÍÆ�^ÆSÍÆ�^ÎÕ•dÊ�]¡.Õ•w¶ÆÍž¶¦ not found!Íž¶Íž¹TÕ•™Õ•¤Ç^ˆ«€†Õ•¶Æ+Í “¡5Õ•ÎÕ•Ú¥€‡§€†P¹Õ†«ØÌ3Æ3ØPÍÆ3ÆÇ ÍÆ3ªPՆŭ’ z Շسÿÿÿÿÿÿÿÿþÿ‹Ù³„ÿþÿ‹„¡&Õ‡1Õ‡:ٕؕÍÕ‡L§‹iØ•‚Ç爫‹hÕ‡d¹'Õ‡u¶¦Ç^ˆ¤Ê+¨Õ•ý§€†‚Ç^ˆ«€†Õ–Æ+žžÕ–"¹öÕ–-Õ–4Æ+Í­éN ÜÆÙªPÕ–ØÇ^ˆÌ.Õ–ç§€†Ç^ˆÌ-Õ–ýØšÕ—Æ0¦ ЩÕ—%Ì/ÆBad AT parametersÍž¶ÍžÕ‡�­øz Õ‡¿¶ÍžÕ‡Ñ­ Õˆ¶ ÍžÕˆÏ Õˆ ­ Õˆ`«‹jÕˆrPÇ爾•ÏÌ4Ê/Ê4È¡"Õ—TÆ0Ê/ˆ•‚ÆÊ/‚›¾Ï¿Ê/‚Ì/¹öÕ—}Õ—…Ê.Ê-‚†ŠžÇ^ˆÌ,Õ—®¥€‡Ê,Ç^ˆ¤Ì4Õ—ÇÆ0Ê4µ ¡Õ—èÊ,•Ç^ˆÌ-¹"Õ˜Æ0Ê4±«‹iÕˆ„Çúˆ«‹gÕˆ‘ÆÆž Õˆ©¥‹rØ€ÇôŽŠ½ÕˆÛ¥‹l¦ª ÕˆîÏ Õˆó­RÆÚªPÕ‰%Æ¥ŠéÍÅÌÕ‰>­ˆR"ÆÚªPÕ‰oÆ¥ŠéÍà ¡Õ˜%Ê,‚Ç^ˆÌ.¹Õ˜AØšÕ˜SØøÊ-Ê.É�¡ôÕ˜tØø¡$Õ˜‰Õ˜�¥€‡Ê,Ç^ˆ¤¢Ì4Õ˜±Ê4øÊ4ùÏÕ˜ÆÕ˜Ë­¡Ïd Õ™]§‰êÌÕ™m§‰ê“¡Õ™„¶¾Å ¡öÕ¤_¥‰íÏ"Õ¤j­Ì2þ B+Õ¤• Ï Õ¤¤¦ Please press RETURN to continue.Ï*դϭ":,Õ‚»¦/QUITϡՂÖÕ‚âÏ Õ‚êžÕ‚ÿÕƒ­«€…Õ�ƒ­D:Õ�µì‚«Õ�˦ :Q12|:AGRÏ"Õ�áÏ-Õ�çÏ Õ�ó¦YESÏ¡Õ�Õ�í‚«Õ�,¦:CORÏ"Õ�;¹ Õ�F¦:Q12WÏ"Õ�WÏ,Õ�dÏ Õ�l «€…­i.)Õƒ*Ï Õƒ8¦Ï*ÕƒEYÏNÏ�“¡NÕƒiÕƒnÏ Õƒ€¶¦Type YES or NO please!Íž¶ÍžÕƒ¡¦Ï*Õƒ«Ï Õƒ¿Ï ՃƹöÕƒÌYÏr;Õ�¨«Õ�ºì‚«Õ�Ц:Q13Ï"Õ�⥠Ï.Õ�ó Ï Õ‘ðáÕ‘í‚«Õ‘.¦:Q13AÏ"Õ‘?Ï,Õ‘LÏ Õ‘T «€…Õ‘c­`<Õ‘‘«Õ‘£ì‚«Õ‘¹¦:¡Ճ᥊é¦YESªú¹ Õ„¥Šé¦NOªúÕ„­¶‡  -Õ„dÏ Õ„r¦Ï*Õ„ƒÙ¥ÏÕ„•ï“¡Õ„ªÙšÕ„»ÙøÉÙøØÅ�¡ôÕ„ßÕ„äÏ Õ„øÏ Õ…¶¦Type a nQ14Ï"Õ‘Ë¥ Ï.Õ‘ãÏ Õ‘éðÃðÃ�¡Õ’í‚«Õ’)¦:Q14AÏ"Õ’:Ï,Õ’GÏ Õ’O«€…Õ’^­b=Õ’Œ«Õ’žì‚«Õ’´¦:Q15Ï"Õ’ÂÏ Õ’Ð¦Ï*Õ’áÏ Õ’umber from 1 to Íž¶ØÍ ž¶¦ please!Íž¶ÍžÕ…7¦Ï*Õ…AÏ Õ…UÏ Õ…bÙ¥ÏÕ…tï“¡Õ…‰ÙšÕ…•¹öÕ…œ­eš È.Æتê1ϡՓՓ í‚«Õ“¦:Q15(1)CÏ"Õ“2¹Õ“=¦:Q15(1)WÏ"Õ“N¦:Q15(1)Ï"Õ“aÏ,Õ“nÏ Õ“w2ϡՓŽÕ“˜í‚«Õ“¬¦:Q15(2)CÏ"Õ“¿¹Փʦ:Q15PÕ…áÏ Õ…æÆÏ"Õ…õÕ…úÏ Õ†¦Ï*Õ†¥Šé¦¯¡öÕ†%­ß R </Õ†O¦:Q1|:AGRÏ"Õ†dÏ-Õ†j Ï Õ†z¥ ¥ŠéªPÕ††¦:EVALÏ"Õ†—Ï,Õ†¤Ï Õ†¬«€…Õ†(2)WÏ"Õ“Û¦:Q15(2)Ï"Õ“îÏ,Õ“ûÏ Õ”3ϡՔՔ(í‚«Õ”<¦:Q15(3)CÏ"Õ”O¹Õ”Z¦:Q15(3)WÏ"Õ”k¦:Q15(3)Ï"Õ”~Ï,Õ”‹Ï Õ””4ϡՔ«Õ”µíº­N0Õ†êì‚«Õ‡¦:Q2|:AGRÏ"Õ‡Ï-Õ‡"Ï Õ‡(¦NOϡՇ@í‚«Õ‡W«€…Õ‡e­H1Õ‡•ì‚«Õ‡«¦:Q3Ï"Õ‡»Ï-Õ‡ÁÏ Õ‡Í¦NO‚«Քɦ:Q15(4)CÏ"ՔܹÕ”ç¦:Q15(4)WÏ"Õ”ø¦:Q15(4)Ï"Õ• Ï,Õ•Ï Õ• «€…Õ•/­~>Õ•Y¦:Q16Ï"Õ•jÏ-Õ•pÏ Õ•|¦YESÏ¡IÕ••Õ•™¦ÍÆÍžÕ�M¶Ç爫‹hÕ�_¶¾¸Õ�s­üF%Õ�¨¶¶Æ¶¶¾¶•ÍÆÍž¶ÍžÕ�ѧ‹iÇ爫‹hÕ�â¶¾¸Õ�ö­üLϡՇåÕˆ í‚«Õˆ¦:CORÏ"Õˆ,¹ Õˆ7¦:WRÏ"ÕˆC¦:Q3AÏ"ÕˆSÏ,Õˆ`Ï Õˆh«€…Õˆv­x2Õˆ¦ì‚«Õˆ¼¦:Q4|:AGRÏ"ÕˆÑÏ-Õˆ×Ï Õˆã¦NO&ÕžؾšôÕž/Õž3ØÌÆØÇúÍÆ¦ ÇûÍÆªúÕžKØ›¾/áÕžeÕžo¶ÍžÕžw§‹iÇ爫‹hÕž‡Õž�Ø›¾³A€‹¡ÕžµÌ¹ÕžÇÌÕžØÛؾɡϡՈûí‚«Õ‰¦:Q4AÏ"Õ‰Ï,Õ‰,Ï Õ‰4«€…Õ‰B­Ï`3Õ‰rì‚«Õ‰ˆ¦:Q5|:AGRÏ"Õ‰�Ï-Õ‰£ Ï Õ‰¯¦NOϡՉÇí‚«Չߥ3¥ŠéªPÕ‰ë¦:ÕžóÕžý§‹hؾ•Û‚•ÌÕŸ!Ùɡ՟=Î$¹ÕŸIÙáÕŸgÎ&¹ÕŸuÎ%ÕŸ|¹öÕŸƒÕŸŠ­˜K Ì#Õ &§‰êÌÕ 6§‰ê“¡Õ M²¾Å¡ Õ h²›¾:ÃÌÕ ­:EVALÏ"Õ‰üÏ,ÕŠ Ï ÕŠ«€…ÕŠ­j4ÕŠOì‚«ÕŠe¦:Q6Ï"ÕŠuÏ-ÕŠ{Ï ÕŠ‡¦NOϡՊŸí‚«Õг¦:Q6AÏ"ÕŠÃÏ,ÕŠÐÏ ÕŠØ«€…ÕŠæ­4(Õ ªØÆ€€ÏÕ ½Ê€€¡òÕ Òՠ߯ÏÕ ëÎ(“¡gÕ þաƾšNÕ¡Æ›¾*Ë¡BÕ¡8Õ¡@Æ¾ÅÆÆ¾›¾ ġաuÆÆ¾Í¹öÕ¡ŒÆ ¯¡ Õ¡ŸÆ¦ªúZ5Õ‹«Õ‹$ì‚«Õ‹:¦:Q7Ï"Õ‹KÕ‹T¥ Ï.Õ‹hë‚«Õ‹{ðˡՋ”Õ‹™ Ï Õ‹¥¦:WTÏ"Õ‹³Õ‹¼ðáöÕ‹Í Ï Õ‹áÏ Õ‹çëáÕŒ í‚«ÕŒ¦:Q7AÏ"ÕÕ¡¯Æ®#Õ¡¹Õ¡ÇÆÏաѹôաعKÕ¡çÕ¡ñ¶ÍžÕ¡ü¶ØÍž¶¦ - labeled text not found.Íž¶ÍžÕ¢'Õ¢.­¡QÆ¢þ î'ÆتŒ-Ï,ÕŒ:Ï ÕŒB«€…ÕŒP­u ˜6ÕŒy¥3¦NO¯¡OÕŒ•ÕŒ¡ì‚«ÕŒ·¦:Q8Ï"ÕŒÇÏ-ÕŒÍÏ ÕŒÙ¦NOϡՌñí‚«Õ�¦:EVALÏ"Õ�Ï,Õ�#Ï Õ�*Õ�úÕ¢PÆÆ€€Ï ¡!Õ¢lÆ€€›¾:á Õ¢‰Æ€€Î'¹Õ¢ŸÆ€€Î#¹öÕ¢ª­¾2ø B"ÆتúÕ£ÆÏ"Õ£"¶¥ŠéÇúÍž¶ÍžÕ£-§‹j“¡8Õ£DÌ€€¥Šé¾Ì€�Ê€2«€…Õ�@­n7Õ�pì‚«Õ�†¦:Q9Ï"Õ�–Ï-Õ�œÏ Õ�¨¦NOÏ¡Õ�Àí‚«Õ�Ô¦:Q9AÏ"Õ�äÏ,Õ�ñÏ Õ�ù «€…ÕŽ­Z8ÕŽ9ì‚«ÕŽO¦:€Ê€�È¡!Õ£c¥ŠéÊ€€›¥ŠéÊ€€›¾Ï¿Ê€€‚Ì€€¹öÕ£†¥Šk¥ŠéªúÕ£™Çúˆ«‹gÕ£¦Ï)Õ£«­ÕL �*ÆتúÕ¤Õ¤Ù•ÌÕ¤&Æ¥‰íÏ Ùń̀�Õ¤MÊ€�“Q10Ï"ÕŽ`Ï-ÕŽmÏ ÕŽs¦YESÏ¡ ÕŽ‹ «€…¹ÕŽ¢Õެí‚«ÕŽÃ «€…ÕŽÒÕŽÙ­T9Õ� ì‚«Õ�!¦:Q11Ï"Õ�2Ï-Õ�?Ï Õ�E¦NOÏ¡Õ�]í‚«Õ�t  :AGRÏ"Õ™¦Ï-Õ™³Ï Õ™¹¦NOϡՙÑ킫ՙ諀…Õ™÷­ÏJCÕš!¦:Q21Ï"Õš2Ï-Õš8Ï ÕšC¦:Q21AÏ"ÕšTÏ,ÕšaÏ Õši«€…Õšx­è@DÕ§&Ï Õ§,ëáÕ§Eí‚«Õ§Y¦:N24Ï"Õ§jÏ-Õ§wÏ Õ§}¦YESÏ¡SÕ§”Õ§˜¦ :N26|:MORÏ"Õ§®Ï-Õ§´¦YESÏ¡%Õ§ÍÕ§ÒÏ Õ§Ý¦:N26AÏ"Õ§îÏ,Õ§ûÏ Õ¨Õšªì‚«ÕšÀ¦ :Q22|:AGRÏ"ÕšÖÏ-ÕšÜ Ï Õšé¦NOϡ՛킫՛¦:EVALÏ"Õ›&Ï,Õ›3Ï Õ›;«€…Õ›J­bEÕ›|ì‚«Õ›’¦:Q23Ï"Õ›£Ï-Õ›¹Õ¨Ï Õ¨Õ¨'¦:Q29AÏ"Õ¨9Ï-Õ¨FÏ Õ¨L¦YESϡըcÕ¨g¦:Q29AYÏ"Õ¨yÏ,Õ¨†Ï Õ¨�Õ¨•«€…Õ¨¤­ 0LÕ¨Öì‚«Õ¨ì¦ :Q30|:AGRÏ"Õ©Ï°Ï Õ›º¥\¥ŠéªP՛ǦNOϡ՛ßí‚«Õœ«€…Õœ­NFÕœC«ÕœUì‚«Õœk¦:Q24Ï"Õœ}¥ Ï.ÕœŽ Ï Õœ›ðáÕœµÕœ¿í‚«՜Ӧ:CORÏ"Õœ-Õ© Ï Õ©¦YESϡթ.í‚«Õ©B¦:Q30AÏ"Õ©SÏ,Õ©`Ï Õ©h«€…Õ©w­bMÕ©©ì‚«Õ©¿¦ :Q31|:AGRÏ"Õ©ÕÏ-Õ©ÛÏ Õ©ç¦NOϡթÿíâ¹ Õœí¦:WRÏ"Õœù¦:Q24AÏ"Õ� Ï,Õ�Ï Õ�«€…Õ�.­~GÕ�`ì‚«Õ�v¦:Q25Ï"Õ�‡Ï-Õ�� Ï Õ�š¦YESÏ¡KÕ�³Õ�·¦:PWRÏ"Õ�Å¥\¦YES¯‚«Õª¦:Q31AÏ"Õª$Ï,Õª1Ï Õª9«€…ÕªH­bNÕªv«Õªˆì‚«Õªž¦:Q32Ï"Õª°¥ Ï.ÕªÁÏ ÕªÍðáÕªçÕªñí‚«Õ«¦:CORÏ"Õ«¹Õ«#Õ«¡Õ�ݦ:WRQ25Ï"¹Õ�ó¥\¦NO¯¡Õž ¦:CORQ25Ï"Õž¹RÕž+Õž/¦:PCORÏ"ÕžCí‚«ÕžX¥\¦NO¯¡Õžo¦:CORQ25Ï"¹Õž†¥\¦YES¯¡ Õžž¦:WRQ25Ï'¦:WRÏ"Õ«5Õ«:¦:Q32AÏ"Õ«KÏ,Õ«XÏ Õ«` «€…Õ«o­¦„OƉÁÆŠíÇÿÿÍÕ«”ÎÕ«�¥ ¦ªPÕ«¬¥3¦ªPÕ«¼¥\¦ªPիϫի߫իï«Õ¬¦CASET"Õž¯Õž´¦:CS22Ï"ÕžÅÏ,ÕžÒÏ ÕžÚ«€…Õžé­òHÕŸì‚«ÕŸ1¦:Q26Ï"ÕŸC¥ Ï.ÕŸTÏ ÕŸaðáÕŸ{í‚«ÕŸ�¦:Q26AÏ"ÕŸ Ï,ÕŸ­Ï ÕŸµ«€…ÕÎլΠլ"¦:I1Î"Õ¬/Î Õ¬=¦Î*Õ¬N¥ ¥ÎÕ¬cï“¡öÕ¬|Õ¬…« Õ¬—Î Õ¬œ¦:I2Î"Õ¬«Î,Õ¬¸Î Õ¬½¦:HOÎ"Õ¬ÍÎ-Õ¬Ó¦NOΡ$Õ¬éÕ¬îÎ Õ¬ù¦:HO1ŸÄ­ZIÕŸò«Õ  ì‚«Õ !¦:Q27Ï"Õ 3¥ Ï.Õ D Ï Õ PðáÕ jÕ tí‚«Õ ˆ¦:CORÏ"Õ —¹ Õ ¢¦:WRÏ"Õ ®¦:Q27A1Ï"Õ ÀÏ,Õ ÍÏ Õ Õ¦ :Î"Õ­ Î,Õ­Î Õ­¹Õ­0Î Õ­8¦:WANTSCOÎ"Õ­MÎ-Õ­X¦YESΫխlÕ­t«€…Õ­‚«ð•Ì‹têÊ‹tȡխ¥§€…‚«€…ê‚«¹ôÕ­ÂÎ Õ­ÒÕ­Ù§€…¹òÕ­íÎ0¹ðÕ­Q27A|:AGRÏ"Õ ìÏ-Õ ùÏ Õ¡ ì‚«Õ¡¦:Q27BÏ"Õ¡1Ï-Õ¡7Ï Õ¡C¦YESϡա\Õ¡fí‚«Õ¡z¦:CORÏ"Õ¡‰¹ Õ¡”¦:PWRÏ"Õ¡¡¦:Q27B1Ï"Õ¡³Ï,Õ¡ÀÏ úÎ1¹ðÕ®Î2¹ðÕ®Î3¹ðÕ®!Î4¹ðÕ®.Î5¹ðÕ®;Î6¹ðÕ®HÎ7¹ðÕ®UÎ8¹ðÕ®dÎ9¹ðÕ®sÎ:¹ðÕ®‚Î;¹ðÕ®‘Î<¹ðÕ® Î=¹ðÕ®¯Î>¹ðÕ®¾Î?¹ðÕ®ÍÎ@¹ðÕ®ÜÎA¹ðÕ®ëÎB¹ðÕ®úÎÕ¡Ðì‚«Õ¡æ¦:Q27CÏ"Õ¡øÏ-Õ¡þ Ï Õ¢ ¦YESϡբ$Õ¢.í‚«Õ¢B¦:CORÏ"Õ¢Q¹ Õ¢\¦:WRÏ"Õ¢kÏ,Õ¢xÏ Õ¢„«բަ:Q27DÏ"Õ¢¤ì‚«Õ¢¿Õ¢È¥ C¹ðÕ¯ ÎD¹ðÕ¯ÎE¹ðÕ¯'ÎF¹ðÕ¯6ÎG¹Õ¯EÎH¹xÕ¯TÎI¹qÕ¯cÎJ¹jÕ¯rÎK¹cÕ¯�ÎL¹\Õ¯�ÎM¹UÕ¯ŸÎN¹NÕ¯®ÎO¹G¬¹@çâÝØÓÎÉÄ¿ºµ°«¦¡œ—:UAYÏ"Õ•§¥ ¦YES¯¡Õ•¾¦ :TMT|:NL|:SEÏ"¹Õ•Ù¦ :TMT|:ND|:SEÏ"Õ•ð¹GÕ•ÿÕ–¦:UANÏ"Õ–¥ ¦NO¯¡Õ–'¦ :TMT|:SDN|:SEÏ"¹Õ–C¦ :TMT|:SDÏ.Õ¢ÚÏ Õ¢éë‚«Õ¢üð Ãð Ã�ðÃ�ðÃ�¡Õ£LÕ£P¦:Q27NBÏ"Õ£bÏ,Õ£oÏ Õ£v¹7Õ£‚ðË¡/Õ£žÕ£¢¦:N3Ï"Õ£²Ï-Õ£¸¦YESÏ¡ գЦ:Q27DÏ/Õ£àÕ¤ë|:SEÏ"Õ–ZÕ–bÏ,Õ–oÏ Õ–w«€…Õ–†­ Ò?Õ–¸ì‚«ՖΦ :Q17|:AGRÏ"Õ–äÏ-Õ–ñÏ Õ–÷¦YESÏ¡%Õ—Õ—¦:Q17YÏ"Õ—%Ï,Õ—2Ï Õ—:«€…Õ—I¹ÕÅðÃ�¡öÕ¤-ðá*Õ¤HÕ¤MëáÕ¤fí‚«Õ¤z¦ :COR|:Q2719Ï"Õ¤�¹Õ¤›¦ :AB|:Q2719Ï"Õ¤±Ï,Õ¤¾Ï դƫ€…Õ¤Õ­æZJÕ¤ÿ¦:Q28Ï"Õ¥Ï-Õ¥¦—XÕ—bí‚«Õ—y«€…Õ—ˆÕ—�­•v@Õ—Áì‚«՗צ:Q18Ï"Õ—èÏ-Õ—õÏ Õ˜¦NOÏ¡$Õ˜Õ˜&í‚«Õ˜:¦:NT15Ï"Õ˜KÏ,Õ˜XÏ Õ˜_Õ˜g«€…Õ˜v­NOÏ¡mÕ¥.Õ¥:Ï Õ¥?¦:Q28AÏ"Õ¥R¥ Ï.Õ¥c Ï Õ¥pðá0Õ¥ŠÕ¥Ž¦:Q28A2Ï"Õ¥¢¦:Q28A2Ï/Õ¥±¦:Q28A2AÏ"եù եΦ:Q28A1Ï"ե߹Õ¥îÕ¥óÏ `AÕ˜¨ì‚«Õ˜¾¦ :Q19|:AGRÏ"Õ˜ÔÏ-Õ˜Ú Ï Õ˜ç¦NOϡ՘ÿí‚«Õ™¦:Q19AÏ"Õ™$Ï,Õ™1Ï Õ™9«€…Õ™H­bBÕ™zì‚«Õ™�¦ :Q20|Õ¥þ¦:Q28A1Ï"Õ¦Õ¦Ï,Õ¦$Ï Õ¦,«€…Õ¦;­ÀKÕ¦i«Õ¦{ì‚«Õ¦‘¦:Q29Ï"Õ¦¦Õ¦¯¥ Ï.Õ¦À Ï Õ¦Ðë‚«Õ¦ãðá Õ¦÷¦:Q29A3Ï"Õ§ ðË¡ö G¶(Íž¶dí�ì†Í ž¶¦ % correct)Íž¶ÍžÕ°|Õ°�¦:BYEÎ"Õ°‘Î,Õ°žÎ Õ°¥Æ‰ÁÍÁ!íÀ )ä4:Ä,”Ê�ðP ¨PROMPT ¦I €¡PRINTC ¨N ¡S ¦GOAHEAD �¤WAIT ¨TRAP ¨ASKYN ¨ASKNUM ¨MAX H Ì ˆ Î  † ì h @Ä,’ T®‚ €ðVÔ"v¸†^žæ2¶ÆÂ`øŠ°ìðnÄì” °!Ì!â!"*"N"Ò"<#^#†#®#$,$J$Ê$J&È& ¡TYPEIN ¨TXT ¦Q1 ¨Q2 ¨Q3 ¨Q4 ¨Q5 ¨Q6 ¨Q7 ¨Q8 ¨'.'V'Ö():)žOðÕ¯'ÎF¹ðÕ¯6ÎG¹Õ¯EÎH¹xÕ¯TÎI¹qÕ¯cÎJ¹jÕ¯rÎK¹cÕ¯�ÎL¹\Õ¯�ÎM¹UÕ¯ŸÎN¹NÕ¯®ÎO¹G¬¹@çâÝØÓÎÉÄ¿ºµ°«¦¡œ—Q9 ¨Q10 !¨Q11 "¨Q12 #¨Q13 $¨Q14 %¨Q15 &¨Q16 '¨Q17 (¨Q18 )¨Q19 RANOPEN ê¨FNAME ¦RANREAD ë¨B ¡SEEK ì¨BLK ¡BYT ¡GETRANLIí¨P ¡L ¡Z *¨Q20 +¨Q21 ,¨Q22 -¨Q23 .¨Q24 /¨Q25 0¨Q26 1¨Q27 2¨Q28 3¨Q29 4¨Q30 ¡SP ¡EX ¡BS ¡MIN î¨I ¡J ¡MAX ï¨I ¡J ¡UPPERCASð¨CHAR 5¨Q31 6¨Q32 7¨CASEANALé¨I ¡CASES j ¤TRIES ¡CORRECT ¡SCORING ¤KBDNUM ¡LABCOUNT†¡ACTE¢NEXTSTR ñ¨P ¡NUM ò¨I ¡WIDTH ¡TENS /¡J .¡LEFT 2¤CH 0¢SP ¦MAXLL i ¡RANEOF ê ¤RANDOMSEr £KBD é ¦KBDCOPY k ¦ANSQ1 ¦NEXT …¥RESBLK é ¡TEMP í ¦RESLINE k ¡RESLAB POT -¡SUPPRESS1¤AT ó¨Y ¡X ¡ERASELINô¨ERASEPAGõ¨START ö¨HI ¡LO ¡KM l ¦ANSQ5 3¦ANSQ23 \¦FOUND ¤SPCOUNT ì ¡ROOM h ¡CRACKCOLg ¡QUESTION¡BUFPTR ë ¡÷¨S ¦PM ø¨S ¦DM ù¨S ¦EM ú¨S ¦P .¡COL -¡OK /¤MANYMATCû¨COMPTYPE¥FOUND ¤PMM ü¨S ¦DMM ý¨S ¦KMM þ¨S ¦PERFORM ÿ¨S ¦REC ¨S1 ,¦S2 ¦GETNUMBE¨I ¡DONE ¤SIGN ¡TOT ¡CRACK ¨START ¡RESTORE ¨RAN ¨RANGE ¡OPENUP ¨FN ¦TFILE ¨FN ¦ERR ]¤SEEKLABE¨LAB ¦I /¡LOWEAAAAAAAAAB &ACORR AGR BYE FCOR ÀCORQ25 -CS22 -·DONEQ “EVAL )HO R .¡UPPER -¡PROBE ,¡INFILE ¨LOAD ¨LAB ¦LINE ¡NOFITS ¨FITS ¨JUSTFITS¨PRTRAW ¨ŽHO1 ÄI1 éI2 ÞMOR :¼N24 3HN26 4UN26A :ËN3 mN3A oNAME ND ’�ˆƒ~ytoje`[VQLÕ¯¾§€… áîÕ¯Ðî¡ìÕ¯çÕ¯ë/Î"Õ°¶¦ You answered Íž¶íÍ ž¶¦ questions correctly. ÍžÕ°BOL ¡NEWROOM ¡EOL ¡EOR ¨PRLAB ¨S ¦FOUND €¤P ¨NAME ¦TEMP €¦ASK  )D—«); 0end ,else 0begin 4Dest := From; 4From := ''; 0end; (end;  end { NextStr };  procedure Num(I, Width: integer ; var Str : string); var $SP : string; $Tens, J, Pot: integer; $Ch: Char; $Left, Suppressing: boolean; begin $Str := '';   NL ÙNOTREL dNT15 %SOK RPCOR ÐPWR §Q1 HQ10 ¼Q11 .Q12 Q12W ~Q13 »Q13A «Q14 QQ14A cQ15 dQ15(1) kQ15(1)C Q15(1)W 4Q15(2) æQ15(2)C yQ15(2)W «Q15(3) žQ15(3)C 3Q15(3)W eQ15(4) uQ15(4)C Q15(4)W 5Q16 ÀQ17 >Q17Y "ZQ18  $œQ19 '\Q19A (‡Q2 zQ20 (MQ21 )”Q21A )êQ22 *$Q23 *ÜQ24 +Q24A ,‚Q25 ,þQ26 -ÈQ26A .\Q27 /ÇQ2719 @Q27A fQ27A1 0JQ27B °Q27B1 #Q27C Q27D ìQ27NB ÝQ28 0ÆQ28A 1IQ28A1 1EQ28A2 2Q28A2A 2XQ29 2ÃQ29A <Q29A3 3VQ29AY <ÄQ3  { ,Some useful CAI routines -( Inspired by MIL ) +See MIL.DOC for information  } function Min(I, J : integer) : integer;  cQ30 >§Q30A ?fQ31 @ÝQ31A AžQ32 B7Q32A D~Q33 D†Q34 EüQ35 F¡Q3A ÿbegin $if I > J $then (Min := J $else (Min := I; end { Min }; function Max(I, J : integer) : integer; begin $if I > J Q4 ÍQ4A mQ5 šQ6 ²Q6A <Q7 IQ7A :Q8 TQ9 !Q9A ÚSD $then (Max := I $else (Max := J; end { Max }; function UpperCase(Character: Char) : Char; begin $if Character in ['a'.ûSDN éSE STUDENT ATMT ÀTYP TTYPE |TYPEBYE mUAN ŸUAY }WANTSCO NWR .'z'] $then (UpperCase := Chr( Ord(Character) + Ord('A') - Ord('a') ) $else (UpperCase := Character; end { UpperCase };  òWRQ25 ,ƒWT 8function NextStr(var From, Dest : string) : boolean; var $P : integer;  begin $if From = '' $then (NextStr := False $elO^se (begin ,NextStr := True; ,P := Pos('|', From); ,if P > 0 ,then 0begin 4Dest := Copy(From, 1, P-1); 4Delete(From, 1, P!  procedure ErasePage;  begin %Page(Output); %At(1,1);  end { ErasePage }; procedure Start; var $Hi, $Lo : integer; $re Rec(S1, S2 : string); begin end { Rec }; procedure GetNumber(var N: integer; var Found: boolean); var $Done: boolean;  begin $Cases := False; $MaxLL := 80; $CrackCol := 0; $Time( Hi, Lo ); $RandomSeed := Abs(Lo) mod 500 { Set random seed };$I, Tot, Sign: integer; $begin (Found := False; (Sign := + 1; (Tot := 0; " (if Length(KBD) > 0 (then ,begin 0Done := F $ResLab := ''; $ErasePage; end { Start }; function KM(S : string): boolean; begin $KM := Pos(S, KBD) > 0 ; end { KM }; alse; 0I := 0; 0while (I < Length(KBD)) and not Done do 0begin 4I := I + 1; 4Done := KBD[I] in ['0' .. '9', '-', '+'];  function PM(S : string): boolean; begin $PM := Pos(S, KBD) = 1 ; end { PM }; function DM(S : string) : boolean ; begin (D0end; " 0if KBD[I] = '+' 0then 4I := I + 1 0else 4if KBD[I] = '-' 4then 8begin  '') $then { Hrue; $Col := 1; $while NextStr(S, Temp) and OK do (begin ,P := Pos(Temp, KBD); ,OK := P >= Col; ,Col := P + Length(Temp) ;ardware special case } (Str := '-32768' $else (begin ,Tens := 10000; ,for Pot := 4 downto 0 do 0begin 4Ch := Chr(I div Te (end; $EM := OK; end { EM }; function ManyMatch(var Place : integer ; var S : string ; 3CompType : MatchType) : boolean ; ns + Ord('0')); 4if (Ch = '0') and (Pot > 0) and Suppressing 4then 8{ Surpress 0's } 4else { Format the char } 8begin  '0' then @I := I mod Tens 8end; 4Tens :=,Place := Place + 1; ,case CompType of 0KMMatch : Found := KM(Temp); 0DMMatch : Found := DM(Temp); 0PMMatch : Found := PM(T Tens div 10; 0end; (end;  $Left := Width < 0; $Sp := Copy(' ', /1 , Width emp); ,end { case }; (end;  $ManyMatch := Found;  end { ManyMatch };    function PMM(var Place : integer ; S : string- Length(str) ); $if Left $then (Str := Concat(Sp, Str) $else (Str := Concat(Str, Sp);  end { Num }; $ $ $ procedure At) : boolean; begin $PMM := ManyMatch(place, S, PMMatch);  end { PMM };  function DMM(var Place : integer ; S : string) : b(Y, X : integer); begin $if (X in [1..80]) and (Y in [1..24]) $then (begin ,GotoXY(X-1, Y-1); ,Room := MaxLL - X + 1; (endoolean; begin $DMM := ManyMatch(Place, S, DMMatch); end { DMM }; function KMM(var Place : integer ; S : string) : boolean; b $else (WriteLn('Bad AT parameters'); end { At }; procedure EraseLine;  begin $Write( Chr(29) );  end { EraseLine }; egin $KMM := ManyMatch(Place, S, KMMatch); end { KMM }; procedure Perform(S: string);  begin  end { Perform }; procedu" gin $KBD := KBDCopy; $CrackCol := 1;  end { Restore };   function Ran( Range: integer) : integer;  begin oolean; $begin (InFile := RanEOF; (if not RanEOF then ,if Length(Str) > 0 then 0InFile := Str[1] <> ':' ; $end { InFile };$RandomSeed := RandomSeed*49.638429+31.41597; $RandomSeed := RandomSeed-Trunc(RandomSeed); $Ran := Trunc(RandomSeed*Range) +  begin $Str := '? NOT FOUND ?';  $if (Lab <> ResLab) or (Line < ResLine) $then (begin ,SeekLabel(Lab, Found); ,if Foun1;  end { Ran };  procedure Tfile(FN : string) ; var $Fil : file of DirRecord ; $Err : boolean; $ $procedure OpenUp(d then 0begin 4ResLab := Lab; 4ResLine := 0; 0end; (end $else (Found := True;  $if Found $then (begin  ,while (LiFN : string); $begin (Close(Fil) ; ({$I-} (Reset(Fil, Concat(FN, '.DIR')) ; ({$I+} (Err := IOResult <> 0; (Err := Err or ne > ResLine) and InFile do 0begin 4GetRanLine(Str); 4ResLine := ResLine + 1; 0end;  ,Found := InFile; (end;  not RanOpen(Concat(FN, '.TEXT')); $end { OpenUp }; # # begin { Tfile } $OpenUp(FN); $if Err then (OpenUp(Concat('#5:', FN) end { Load };  procedure P(Name: LongString); var $Temp : LongString; #procedure PrtRaw(var S : LongString); #var ); $if Err then (WriteLn(FN, ' not found!') $else (begin ,LabCount := 0 ; ( ,while not EOF(Fil) do 0begin 4LabelDict [  'BOL, EOL, NewRoom: integer; 'procedure NoFits; 'begin +EOL := BOL + Room - 1; + +{Look for end of last word} +while (LabCount ] := Fil^ ; 4LabCount := LabCount + 1 ; 4Get(Fil) ; 0end ; (end;  end { Tfile }; procedure SeekLabel( Lab : stEOL > BOL) and (S[EOL] <> ' ') do /EOL := EOL - 1;  +if EOL > BOL +then /begin 3Write( Copy(S, BOL, EOL-BOL) ); 3BOL := ring; var Found : boolean ) ; var $Lower, Upper, Probe : LabelRange ; $I : integer; $InLab : IDK ; begin $Lower := 1 ; EOL + 1; /end; +WriteLn; +Room := MaxLL; 'end { NoFits }; &procedure Fits; &begin *Write( Copy(S, BOL, Length(S) - BOL++ Ord(KBD [I]) - Ord('0');  LabelName ,then 0Lower := Probe + 1 ,else 0Found := True ; $unChS ) do 1CrackCol := Succ( CrackCol );  -Found := True; -KBD := Copy(KBDCopy, Start, CrackCol - Start + 1); 2CrackCol := til Found or (Upper < Lower) ; $if Found then (begin ,with LabelDict[Probe].Place do 0Seek(Block, Byte) ; (end; end { SeekSucc( CrackCol ); )end %else )begin -Found := False; -KBD := ''; )end;  end { Crack };     procedure Restore;  beLabel }; procedure Load(Lab : string ; var Str : LongString ; Line : integer /; var Found : boolean); $function InFile : b# S := Concat(S, ' '); -if S[1] = '/' then 1begin 5WriteLn; 5Room := MaxLL; 1end;  -if S[1] in ['/', ' ', '&'] -then 1BOlease press RETURN to continue.');  end { Wait };  L := 2 -else 1BOL := 1;  -while BOL < Length(S) do -begin 1NewRoom := Room - Length(S) + BOL - 1; 1if NewRoom < 0 1then 5NoFits 1else 5if NewRoom = 0 5then 9JustFits 5else 9Fits; -end; )end;  end { PrtRaw };  procedure PrLab(var Name : string);   var $S : LongString ; $Found : boolean;   $function EOR: boolean; $begin (EOR := RanEOF; (if not RanEOF then ,if Length(S) > 0 then 0EOR := (S[1] = ':'); $end { EOR };      begin { PrLab } $SeekLabel(Name, Found); $if Found $then (begin ,GetRanLine(S); ,while not EOR do ,begin 0if Length(S) > 0 0then 4if S[1] <> '*' then 8beg3: ,Q3; )PQ4: ,Q4; )PQ5: ,Q5; )PQ6: ,Q6; )PQ7: ,Q7; )PQ8: ,Q8; )PQ9: ,Q9; )PQ10: ,Q10; )PQ11: ,Q11; )PQ12: ,Qin  1) and (S[Length(S)] = ' ') do @Delete(S, Length(S), 1);  0 %then )begin - NextStr(S, Temp) and (N>0); $until not GoAhead;  $P(Temp); end { PrintC }; procedure Wait; begin $At(24, 10); $Ask('P$  ¥ˆÁ§‰ë•‚؂ݞՄGÝ‚ÌÕ„Y§‰é‚ÏÕ„m§‰ê¡Õ„~¹òÕ„‰¹öÕ„Æ¥ˆÁ§‰ë•‚ØÙ‚ÞžÕ„þ§‰ëÞ‚ÇɡՅ'§‰ëÞ‚‚«‰ë¹Õ…HÕ…QÇ«‰ëÕ…g¥ˆÁ§‰ë•‚¿Õ…ÆتPÕ�û­RÆ,ÙªPÆتPÕŽ4­¤ÕŽ²ØšÕŽÃÌÕŽÑÌÕŽÝ¥Šé¾Å¡òÕŽüÕ�ÌÕ�ÌÕ�Ý¥Šé¾ÉÚ“„¡'Õ�IÕ�MÝ‚ÌÕ�^¥ŠéÝ›¾³‚Õ…�ÞÙ‚•ÌÕ…¹ÞØ‚ž ÌÕ†ÛÞġՆ¹gÕ†3Û‚ÌÕ†CØÛ‚‚¾"•ÌÕ†]ÝšՆtØÚ‚ØÚÝ‚‚ÞÚ•‚ž¹Õ†«ØÚ‚ØÚÝ‚‚ÞÚ•‚žÕ†ÙݑšՆîØÛ‚‚Ý‚ ž Õ‡ÞÝ‚ÌÕ‡(¹ôÕ‡MÕ‡Q؂޿ՇmÕ‡Œ­—l  zÕ€ŠÛÚšՀžÚ̹Հ°ÛÌÕ€º­ˆ"Õ€ðÛÚÅ¡Õ�Û̹Õ�ÚÌÕ� ­ˆ"Õ�\Ú³ÿþÿ‹¡ Õ�ˆÚA‚a•̹Õ�ÊÚÌÕ�Ü­ƒ8Õ‚9Û¦¯¡Õ‚T̹ZÕ‚lÕ‚vÌÕ‚ƒ¦|ÛÍÌÕ‚›ÜÅ¡#Õ‚°Õ‚·ÚÛÆÜ•ÍÆªPÕ‚×ÛÜÍÕ‚ê¹Õ‚ùÕƒÚÛªPÕƒÛ¦ªPÕƒÕƒ$Õƒ+­ÕTx Õƒ×Ø¦ªPÕƒìÌ1Õ„ÚɡՄՄڀÌÕ„,Ø-ªPÕ„:Õ„AÚÃØ¦·„¡Õ„€Ø¦-32768ªP¹ôÕ„›Õ„¢Ç'Ì/Õ„²Ì-Ì3Ê-Ê3Ä¡xÕ„ÏÕ„ÔÚÊ/†0‚Ì0Õ„øÊ00ÃÊ-Å„Ê1„¡Õ…B¹@Õ…^Õ…lÌ1Õ…|ØÌ4Æ4ØPÍÆ4¦ QÍÆ4ªPÕ…—ØØ¾›Ê0¿Õ…²Ê00Ë¡ Õ…ÅÚÊ/ŽÌÕ…áÊ/ †Ì/Õ…÷Ê-•Ì-¹öÕ…þÕ† ÙÉÌ2ՆƦ/ Æ3ÙØ¾•ÍÆ3ªPÕ†yÊ2¡Õ†‹ØÌ3Æ3ÆPÍÆ3ØÇ ÍÆ3ª�) CASEANAL P¹Õ†«ØÌ3Æ3ØPÍÆ3ÆÇ ÍÆ3ªPՆŭ’ z Շسÿÿÿÿÿÿÿÿþÿ‹Ù³„ÿþÿ‹„¡&Õ‡1Õ‡:ٕؕÍÕ‡L§‹iØ•‚Ç爫‹hÕ‡d¹'Õ‡u¶¦ Î"Õ°‘Î,Õ°žÎ Õ°¥Æ‰ÁÍÁ!íÀ )ä4:Ä,”Ê�ðP Bad AT parametersÍž¶ÍžÕ‡�­øz Õ‡¿¶ÍžÕ‡Ñ­ Õˆ¶ ÍžÕˆÏ Õˆ ­ Õˆ`«‹jÕˆrPÇçˆH Ì ˆ Î  † ì h @Ä,’ T®‚ €ðVÔ"v¸†^žæ2¶ÆÂ`øŠ°ìðnÄì” °!Ì!â!"*"N"Ò"<#^#†#®#$,$J$Ê$J&È&«‹iÕˆ„Çúˆ«‹gÕˆ‘ÆÆž Õˆ©¥‹rØ€ÇôŽŠ½ÕˆÛ¥‹l¦ª ÕˆîÏ Õˆó­RÆÚªPÕ‰%Æ¥ŠéÍÅÌÕ‰>­ˆR"ÆÚªPÕ‰oÆ¥ŠéÍÃ'.'V'Ö():)žOðÕ¯'ÎF¹ðÕ¯6ÎG¹Õ¯EÎH¹xÕ¯TÎI¹qÕ¯cÎJ¹jÕ¯rÎK¹cÕ¯�ÎL¹\Õ¯�ÎM¹UÕ¯ŸÎN¹NÕ¯®ÎO¹G¬¹@çâÝØÓÎÉÄ¿ºµ°«¦¡œ—ÌÕ‰ˆ­ˆR"ÆÚªPÕ‰»Æ¥Šé¯ÌՉ̭RÆÚªPÕŠ)Ì/ÕŠ8Ì-ÕŠFÆ¥‰íÏ Ê/„¡.ÕŠiÕŠm¥‰í¥ŠéÍÌ.ÕŠ…Ê.Ê-ÄÌ/ÕŠ˜Ê.¥‰í¾‚Ì-ÕŠ´ÆÚªPÕ€ˆ¥‰ÁÍÕ€š¥‰ÁÆÍÕ€µž"ÃÌՀБÇÿÿÇôˆ«‰éՀ᫉êÕ€õ«‰ìÕ�­RNÕ�W¥‰Á¥ˆÁ؂͞ɫ‰ê­"Õ�Õ§‰éÙ˹öÕŠºÊ/ÌÕŠÅ­HXdÕ‹TÌÕ‹fÜšÕ‹uÛ¥‰íÏ Ý“„¡OÕ‹ŸÕ‹§ÜÜø‚šÕ‹¼Ú¹*Õ‹Ú¥‰íÏ̹*ÕŒ¥‰íÏ̹Ռ0¥‰íÏ̹¬Å¹2&¡Õ�óÙÏÕ‚ÙÇÿÿÇôˆ«‰éÕ‚ØÇˆ«‰ëÕ‚"­6Õ‚íÌÕ‚üǧ‰ë•‚ÌÕƒ0Ý ¥ˆÁ§‰ë•‚ž ÌÕƒnÞÝɡՃ~¹NÕƒ¢¥ˆÁ§‰ë•‚¾Ã¡ÕƒÂÌÕ„ÕŒS¹öÕŒaÝÌÕŒo­g ~ÆÚªPÕŒÆÛÆÏÌÕŒë­ÝRÆÚªPÕ�5ÛÆÏÌÕ�Z­ÝRÆÚªPÕ�¤ÛÆÏÌÕ�É­ÝR% ¡ Õ™¤¶›¾:ËÌÕ™½­4!ÆÛªPÕ™ÌÚ¦ ? NOT FOUND ?ªúÕ™æÆ¥‹l·Ù§‹kÉ�¡.ÕšÕš%ÆØÏÕš7Øø¡ÕšLÕšU¥‹lƪ Õšg«‹kÕšsÕšz¹Õš‰ØšÕšumber from 1 to Íž¶ØÍ ž¶¦ please!Íž¶ÍžÕ…7¦Ï*Õ…AÏ Õ…UÏ Õ…bÙ¥ÏÕ…tï“¡Õ…‰ÙšÕ…•¹öÕ…œ­eš È.Æت˜Øø¡7Õš­Õš¶Ù§‹kÅÎ!„¡ÕšÝÕšêÚÏÕšú§‹k‚«‹kÕ›¹öÕ›ØÎ!šÕ›+Õ›1­7R ¬ Õœ¶§‹h‚•¸ÕœA¶¶Ŷ¶›¾ Ë„¡ Õœj¶•¸¹PÕ…áÏ Õ…æÆÏ"Õ…õÕ…úÏ Õ†¦Ï*Õ†¥Šé¦¯¡öÕ†%­ß R </Õ†O¦:Q1|:AGRÏ"Õ†dÏ-Õ†j Ï Õ†z¥ ¥ŠéªPÕ††¦:EVALÏ"Õ†—Ï,Õ†¤Ï Õ†¬«€…Õ†öÕœ|¶¶Å¡1Õœ•Õœ�¶¶Æ¶¶¶•ÍÆÍžÕœ½¶‚¸ÕœÏ՜ڶ͞՜⧋iÇ爫‹hÕœò­|ü–$Õ�"¶¶Æ¶¶¾¶•‚º­N0Õ†êì‚«Õ‡¦:Q2|:AGRÏ"Õ‡Ï-Õ‡"Ï Õ‡(¦NOϡՇ@í‚«Õ‡W«€…Õ‡e­H1Õ‡•ì‚«Õ‡«¦:Q3Ï"Õ‡»Ï-Õ‡ÁÏ Õ‡Í¦NOÍÆÍžÕ�M¶Ç爫‹hÕ�_¶¾¸Õ�s­üF%Õ�¨¶¶Æ¶¶¾¶•ÍÆÍž¶ÍžÕ�ѧ‹iÇ爫‹hÕ�â¶¾¸Õ�ö­üLϡՇåÕˆ í‚«Õˆ¦:CORÏ"Õˆ,¹ Õˆ7¦:WRÏ"ÕˆC¦:Q3AÏ"ÕˆSÏ,Õˆ`Ï Õˆh«€…Õˆv­x2Õˆ¦ì‚«Õˆ¼¦:Q4|:AGRÏ"ÕˆÑÏ-Õˆ×Ï Õˆã¦NOÿ(‹ÌÕ�‰¹öÕ�’¥ŠéÝ›¾+á Õ�ªÝ‚̹"Õ�¿¥ŠéÝ›¾-áÕ�ÛÕ�ßÝ‚ÌÕ�ð‘ÌÕ�Õ�ÌÕ�"Ý¥Šé¾ÈÚ“„¡LÕ�MÕ�R¥ŠéÝ›¾³ÿ‹¡'Õ�xÕ�~Ü &ÕžؾšôÕž/Õž3ØÌÆØÇúÍÆ¦ ÇûÍÆªúÕžKØ›¾/áÕžeÕžo¶ÍžÕžw§‹iÇ爫‹hÕž‡Õž�Ø›¾³A€‹¡ÕžµÌ¹ÕžÇÌÕžØÛؾɡ�¥ŠéÝ›¾‚0•ÌÕ�©Ý‚ÌÕ�»ØšÕ�ʹÕ�ØÌÕ�ç¹ôÕ�îÕ�óÙÜÛ�šÕ‘­ iß Õ‘…§‹g¥Šk¾È¡qÕ‘°Õ‘¸§‹gÌՑΧ‹g¥Šk¾É¥Šk§‹g›¾Æ¼‹“„¡Õ:ÕžóÕžý§‹hؾ•Û‚•ÌÕŸ!Ùɡ՟=Î$¹ÕŸIÙáÕŸgÎ&¹ÕŸuÎ%ÕŸ|¹öÕŸƒÕŸŠ­˜K Ì#Õ &§‰êÌÕ 6§‰ê“¡Õ M²¾Å¡ Õ h²›¾:ÃÌÕ ­’"§‹g‚Çúˆ«‹g¹öÕ’@ØšÕ’O¥Šé¥ŠkÆÊ§‹gÊ•‚ÍÆªúÕ’‰§‹g‚Çúˆ«‹gÕ’¤¹Õ’³Õ’»ØšÕ’Ë¥Šé¦ªúÕ’ØÕ’ß­þ" ¢Õ“ ¥Šé¥ŠkªúÕ“#4(Õ ªØÆ€€ÏÕ ½Ê€€¡òÕ Òՠ߯ÏÕ ëÎ(“¡gÕ þաƾšNÕ¡Æ›¾*Ë¡BÕ¡8Õ¡@Æ¾ÅÆÆ¾›¾ ġաuÆÆ¾Í¹öÕ¡ŒÆ ¯¡ Õ¡ŸÆ¦ªúÇúˆ«‹gÕ“-­"Õ“n¥‹r¥‹r¼³#¿�FC�³‹èSûBƒ½Õ“�¥‹r¥‹r¼¥‹r¼žŠ–½Õ“Ä¥‹r¼ÚŠ�ž‚ÌÕ“ê­@PÆتPÕ”…²+ÍžÕ”œ²Õ¡¯Æ®#Õ¡¹Õ¡ÇÆÏաѹôաعKÕ¡çÕ¡ñ¶ÍžÕ¡ü¶ØÍž¶¦ - labeled text not found.Íž¶ÍžÕ¢'Õ¢.­¡QÆ¢þ î'Æت+Ì+Æ+ÆPÍÆ+¦.DIRTÍÆ+ÍՔŞ"˸�]Քݶ�]Ì+Æ+ÆPÍÆ+¦.TEXTUÍÆ+Ï“�¸�]Õ•­¨vÆتPÆ+Æ�WÍÕ•/ÆÎÕ•9Ê�]¡úÕ¢PÆÆ€€Ï ¡!Õ¢lÆ€€›¾:á Õ¢‰Æ€€Î'¹Õ¢ŸÆ€€Î#¹öÕ¢ª­¾2ø B"ÆتúÕ£ÆÏ"Õ£"¶¥ŠéÇúÍž¶ÍžÕ£-§‹j“¡8Õ£DÌ€€¥Šé¾Ì€�Ê€!Õ•KÌ�^Æ�^¦#5:ÍÆ�^ÆSÍÆ�^ÎÕ•dÊ�]¡.Õ•w¶ÆÍž¶¦ not found!Íž¶Íž¹TÕ•™Õ•¤Ç^ˆ«€†Õ•¶Æ+Í “¡5Õ•ÎÕ•Ú¥€‡§€†€Ê€�È¡!Õ£c¥ŠéÊ€€›¥ŠéÊ€€›¾Ï¿Ê€€‚Ì€€¹öÕ£†¥Šk¥ŠéªúÕ£™Çúˆ«‹gÕ£¦Ï)Õ£«­ÕL �*ÆتúÕ¤Õ¤Ù•ÌÕ¤&Æ¥‰íÏ Ùń̀�Õ¤MÊ€�“Ç^ˆ¤Ê+¨Õ•ý§€†‚Ç^ˆ«€†Õ–Æ+žžÕ–"¹öÕ–-Õ–4Æ+Í­éN ÜÆÙªPÕ–ØÇ^ˆÌ.Õ–ç§€†Ç^ˆÌ-Õ–ýØšÕ—Æ0¦ ЩÕ—%Ì/Æ¡öÕ¤_¥‰íÏ"Õ¤j­Ì2þ B+Õ¤• Ï Õ¤¤¦ Please press RETURN to continue.Ï*դϭ":,Õ‚»¦/QUITϡՂÖÕ‚âÏ Õ‚êžÕ‚ÿÕƒ­¾•ÏÌ4Ê/Ê4È¡"Õ—TÆ0Ê/ˆ•‚ÆÊ/‚›¾Ï¿Ê/‚Ì/¹öÕ—}Õ—…Ê.Ê-‚†ŠžÇ^ˆÌ,Õ—®¥€‡Ê,Ç^ˆ¤Ì4Õ—ÇÆ0Ê4µ ¡Õ—èÊ,•Ç^ˆÌ-¹"Õ˜Æ0Ê4±i.)Õƒ*Ï Õƒ8¦Ï*ÕƒEYÏNÏ�“¡NÕƒiÕƒnÏ Õƒ€¶¦Type YES or NO please!Íž¶ÍžÕƒ¡¦Ï*Õƒ«Ï Õƒ¿Ï ՃƹöÕƒÌYÏ ¡Õ˜%Ê,‚Ç^ˆÌ.¹Õ˜AØšÕ˜SØøÊ-Ê.É�¡ôÕ˜tØø¡$Õ˜‰Õ˜�¥€‡Ê,Ç^ˆ¤¢Ì4Õ˜±Ê4øÊ4ùÏÕ˜ÆÕ˜Ë­¡Ïd Õ™]§‰êÌÕ™m§‰ê“¡Õ™„¶¾Å¡Ճ᥊é¦YESªú¹ Õ„¥Šé¦NOªúÕ„­¶‡  -Õ„dÏ Õ„r¦Ï*Õ„ƒÙ¥ÏÕ„•ï“¡Õ„ªÙšÕ„»ÙøÉÙøØÅ�¡ôÕ„ßÕ„äÏ Õ„øÏ Õ…¶¦Type a n& «€…Õ�ƒ­D:Õ�µì‚«Õ�˦ :Q12|:AGRÏ"Õ�áÏ-Õ�çÏ Õ�ó¦YESÏ¡Õ�Õ�í‚«Õ�,¦:CORÏ"Õ�;¹ Õ�F¦:Q12WÏ"Õ�WÏ,Õ�dÏ Õ�l «€…­â¹ Õœí¦:WRÏ"Õœù¦:Q24AÏ"Õ� Ï,Õ�Ï Õ�«€…Õ�.­~GÕ�`ì‚«Õ�v¦:Q25Ï"Õ�‡Ï-Õ�� Ï Õ�š¦YESÏ¡KÕ�³Õ�·¦:PWRÏ"Õ�Å¥\¦YES¯r;Õ�¨«Õ�ºì‚«Õ�Ц:Q13Ï"Õ�⥠Ï.Õ�ó Ï Õ‘ðáÕ‘í‚«Õ‘.¦:Q13AÏ"Õ‘?Ï,Õ‘LÏ Õ‘T «€…Õ‘c­`<Õ‘‘«Õ‘£ì‚«Õ‘¹¦:¡Õ�ݦ:WRQ25Ï"¹Õ�ó¥\¦NO¯¡Õž ¦:CORQ25Ï"Õž¹RÕž+Õž/¦:PCORÏ"ÕžCí‚«ÕžX¥\¦NO¯¡Õžo¦:CORQ25Ï"¹Õž†¥\¦YES¯¡ Õžž¦:WRQ25ÏQ14Ï"Õ‘Ë¥ Ï.Õ‘ãÏ Õ‘éðÃðÃ�¡Õ’í‚«Õ’)¦:Q14AÏ"Õ’:Ï,Õ’GÏ Õ’O«€…Õ’^­b=Õ’Œ«Õ’žì‚«Õ’´¦:Q15Ï"Õ’ÂÏ Õ’Ð¦Ï*Õ’áÏ Õ’"Õž¯Õž´¦:CS22Ï"ÕžÅÏ,ÕžÒÏ ÕžÚ«€…Õžé­òHÕŸì‚«ÕŸ1¦:Q26Ï"ÕŸC¥ Ï.ÕŸTÏ ÕŸaðáÕŸ{í‚«ÕŸ�¦:Q26AÏ"ÕŸ Ï,ÕŸ­Ï ÕŸµ«€…Õê1ϡՓՓ í‚«Õ“¦:Q15(1)CÏ"Õ“2¹Õ“=¦:Q15(1)WÏ"Õ“N¦:Q15(1)Ï"Õ“aÏ,Õ“nÏ Õ“w2ϡՓŽÕ“˜í‚«Õ“¬¦:Q15(2)CÏ"Õ“¿¹Փʦ:Q15ŸÄ­ZIÕŸò«Õ  ì‚«Õ !¦:Q27Ï"Õ 3¥ Ï.Õ D Ï Õ PðáÕ jÕ tí‚«Õ ˆ¦:CORÏ"Õ —¹ Õ ¢¦:WRÏ"Õ ®¦:Q27A1Ï"Õ ÀÏ,Õ ÍÏ Õ Õ¦ :(2)WÏ"Õ“Û¦:Q15(2)Ï"Õ“îÏ,Õ“ûÏ Õ”3ϡՔՔ(í‚«Õ”<¦:Q15(3)CÏ"Õ”O¹Õ”Z¦:Q15(3)WÏ"Õ”k¦:Q15(3)Ï"Õ”~Ï,Õ”‹Ï Õ””4ϡՔ«Õ”µíQ27A|:AGRÏ"Õ ìÏ-Õ ùÏ Õ¡ ì‚«Õ¡¦:Q27BÏ"Õ¡1Ï-Õ¡7Ï Õ¡C¦YESϡա\Õ¡fí‚«Õ¡z¦:CORÏ"Õ¡‰¹ Õ¡”¦:PWRÏ"Õ¡¡¦:Q27B1Ï"Õ¡³Ï,Õ¡ÀÏ ‚«Քɦ:Q15(4)CÏ"ՔܹÕ”ç¦:Q15(4)WÏ"Õ”ø¦:Q15(4)Ï"Õ• Ï,Õ•Ï Õ• «€…Õ•/­~>Õ•Y¦:Q16Ï"Õ•jÏ-Õ•pÏ Õ•|¦YESÏ¡IÕ••Õ•™¦Õ¡Ðì‚«Õ¡æ¦:Q27CÏ"Õ¡øÏ-Õ¡þ Ï Õ¢ ¦YESϡբ$Õ¢.í‚«Õ¢B¦:CORÏ"Õ¢Q¹ Õ¢\¦:WRÏ"Õ¢kÏ,Õ¢xÏ Õ¢„«բަ:Q27DÏ"Õ¢¤ì‚«Õ¢¿Õ¢È¥ :UAYÏ"Õ•§¥ ¦YES¯¡Õ•¾¦ :TMT|:NL|:SEÏ"¹Õ•Ù¦ :TMT|:ND|:SEÏ"Õ•ð¹GÕ•ÿÕ–¦:UANÏ"Õ–¥ ¦NO¯¡Õ–'¦ :TMT|:SDN|:SEÏ"¹Õ–C¦ :TMT|:SDÏ.Õ¢ÚÏ Õ¢éë‚«Õ¢üð Ãð Ã�ðÃ�ðÃ�¡Õ£LÕ£P¦:Q27NBÏ"Õ£bÏ,Õ£oÏ Õ£v¹7Õ£‚ðË¡/Õ£žÕ£¢¦:N3Ï"Õ£²Ï-Õ£¸¦YESÏ¡ գЦ:Q27DÏ/Õ£àÕ¤ëϡՈûí‚«Õ‰¦:Q4AÏ"Õ‰Ï,Õ‰,Ï Õ‰4«€…Õ‰B­Ï`3Õ‰rì‚«Õ‰ˆ¦:Q5|:AGRÏ"Õ‰�Ï-Õ‰£ Ï Õ‰¯¦NOϡՉÇí‚«Չߥ3¥ŠéªPÕ‰ë¦|:SEÏ"Õ–ZÕ–bÏ,Õ–oÏ Õ–w«€…Õ–†­ Ò?Õ–¸ì‚«ՖΦ :Q17|:AGRÏ"Õ–äÏ-Õ–ñÏ Õ–÷¦YESÏ¡%Õ—Õ—¦:Q17YÏ"Õ—%Ï,Õ—2Ï Õ—:«€…Õ—I¹Õ:EVALÏ"Õ‰üÏ,ÕŠ Ï ÕŠ«€…ÕŠ­j4ÕŠOì‚«ÕŠe¦:Q6Ï"ÕŠuÏ-ÕŠ{Ï ÕŠ‡¦NOϡՊŸí‚«Õг¦:Q6AÏ"ÕŠÃÏ,ÕŠÐÏ ÕŠØ«€…ÕŠæ­—XÕ—bí‚«Õ—y«€…Õ—ˆÕ—�­•v@Õ—Áì‚«՗צ:Q18Ï"Õ—èÏ-Õ—õÏ Õ˜¦NOÏ¡$Õ˜Õ˜&í‚«Õ˜:¦:NT15Ï"Õ˜KÏ,Õ˜XÏ Õ˜_Õ˜g«€…Õ˜v­Z5Õ‹«Õ‹$ì‚«Õ‹:¦:Q7Ï"Õ‹KÕ‹T¥ Ï.Õ‹hë‚«Õ‹{ðˡՋ”Õ‹™ Ï Õ‹¥¦:WTÏ"Õ‹³Õ‹¼ðáöÕ‹Í Ï Õ‹áÏ Õ‹çëáÕŒ í‚«ÕŒ¦:Q7AÏ"Õ`AÕ˜¨ì‚«Õ˜¾¦ :Q19|:AGRÏ"Õ˜ÔÏ-Õ˜Ú Ï Õ˜ç¦NOϡ՘ÿí‚«Õ™¦:Q19AÏ"Õ™$Ï,Õ™1Ï Õ™9«€…Õ™H­bBÕ™zì‚«Õ™�¦ :Q20|Œ-Ï,ÕŒ:Ï ÕŒB«€…ÕŒP­u ˜6ÕŒy¥3¦NO¯¡OÕŒ•ÕŒ¡ì‚«ÕŒ·¦:Q8Ï"ÕŒÇÏ-ÕŒÍÏ ÕŒÙ¦NOϡՌñí‚«Õ�¦:EVALÏ"Õ�Ï,Õ�#Ï Õ�*Õ�:AGRÏ"Õ™¦Ï-Õ™³Ï Õ™¹¦NOϡՙÑ킫ՙ諀…Õ™÷­ÏJCÕš!¦:Q21Ï"Õš2Ï-Õš8Ï ÕšC¦:Q21AÏ"ÕšTÏ,ÕšaÏ Õši«€…Õšx­è@D2«€…Õ�@­n7Õ�pì‚«Õ�†¦:Q9Ï"Õ�–Ï-Õ�œÏ Õ�¨¦NOÏ¡Õ�Àí‚«Õ�Ô¦:Q9AÏ"Õ�äÏ,Õ�ñÏ Õ�ù «€…ÕŽ­Z8ÕŽ9ì‚«ÕŽO¦:Õšªì‚«ÕšÀ¦ :Q22|:AGRÏ"ÕšÖÏ-ÕšÜ Ï Õšé¦NOϡ՛킫՛¦:EVALÏ"Õ›&Ï,Õ›3Ï Õ›;«€…Õ›J­bEÕ›|ì‚«Õ›’¦:Q23Ï"Õ›£Ï-Õ›Q10Ï"ÕŽ`Ï-ÕŽmÏ ÕŽs¦YESÏ¡ ÕŽ‹ «€…¹ÕŽ¢Õެí‚«ÕŽÃ «€…ÕŽÒÕŽÙ­T9Õ� ì‚«Õ�!¦:Q11Ï"Õ�2Ï-Õ�?Ï Õ�E¦NOÏ¡Õ�]í‚«Õ�t °Ï Õ›º¥\¥ŠéªP՛ǦNOϡ՛ßí‚«Õœ«€…Õœ­NFÕœC«ÕœUì‚«Õœk¦:Q24Ï"Õœ}¥ Ï.ÕœŽ Ï Õœ›ðáÕœµÕœ¿í‚«՜Ӧ:CORÏ"Õœ' Õ§&Ï Õ§,ëáÕ§Eí‚«Õ§Y¦:N24Ï"Õ§jÏ-Õ§wÏ Õ§}¦YESÏ¡SÕ§”Õ§˜¦ :N26|:MORÏ"Õ§®Ï-Õ§´¦YESÏ¡%Õ§ÍÕ§ÒÏ Õ§Ý¦:N26AÏ"Õ§îÏ,Õ§ûÏ Õ¨ORY[I] ; 0DIRECTORY[I] := DIRECTORY[J] ; 0DIRECTORY[J] := W ; 0I := I + 1 ; 0J := J - 1 ,END { SWAP } $UNTIL I > J ; $ $¹Õ¨Ï Õ¨Õ¨'¦:Q29AÏ"Õ¨9Ï-Õ¨FÏ Õ¨L¦YESϡըcÕ¨g¦:Q29AYÏ"Õ¨yÏ,Õ¨†Ï Õ¨�Õ¨•«€…Õ¨¤­ 0LÕ¨Öì‚«Õ¨ì¦ :Q30|:AGRÏ"Õ©ÏIF L < J THEN (QSORT(L, J) ; $IF I < R THEN (QSORT(I, R) (  END ; { QSORT } " !  PROCEDURE DRILLHEADER ; VAR I, J : INT-Õ© Ï Õ©¦YESϡթ.í‚«Õ©B¦:Q30AÏ"Õ©SÏ,Õ©`Ï Õ©h«€…Õ©w­bMÕ©©ì‚«Õ©¿¦ :Q31|:AGRÏ"Õ©ÕÏ-Õ©ÛÏ Õ©ç¦NOϡթÿíEGER ; BEGIN $FOR I := 1 TO LABLEN DO (IF (I+1) <= LENGTH(LINE) THEN ,FRAMENAME[I] := UPPERCASE( LINE[I+1] ) (ELSE ,FRAMEN‚«Õª¦:Q31AÏ"Õª$Ï,Õª1Ï Õª9«€…ÕªH­bNÕªv«Õªˆì‚«Õªž¦:Q32Ï"Õª°¥ Ï.ÕªÁÏ ÕªÍðáÕªçÕªñí‚«Õ«¦:CORÏ"Õ«¹Õ«#Õ«AME[I] := ' ' ; END ;  PROCEDURE GETHEADER ; { SKIP TIL A HEADER OR EOF }   VAR STOP : BOOLEAN;  BEGIN { GETHEADER } '¦:WRÏ"Õ«5Õ«:¦:Q32AÏ"Õ«KÏ,Õ«XÏ Õ«` «€…Õ«o­¦„OƉÁÆŠíÇÿÿÍÕ«”ÎÕ«�¥ ¦ªPÕ«¬¥3¦ªPÕ«¼¥\¦ªPիϫի߫իï«Õ¬¦CASET$REPEAT (GETRANLINE(LINE) ; (IF RANEOF THEN ,STOP := TRUE (ELSE ,IF LENGTH(LINE) = 0 THEN 0STOP := FALSE ,ELSE 0STOP :=ÎլΠլ"¦:I1Î"Õ¬/Î Õ¬=¦Î*Õ¬N¥ ¥ÎÕ¬cï“¡öÕ¬|Õ¬…« Õ¬—Î Õ¬œ¦:I2Î"Õ¬«Î,Õ¬¸Î Õ¬½¦:HOÎ"Õ¬ÍÎ-Õ¬Ó¦NOΡ$Õ¬éÕ¬îÎ Õ¬ù¦:HO1 LINE[1] = ':' ; $UNTIL STOP; ! $IF NOT RANEOF THEN (DRILLHEADER ;  END ; { GETHEADER }   PROCEDURE MARKHEADER ; { PLACEÎ"Õ­ Î,Õ­Î Õ­¹Õ­0Î Õ­8¦:WANTSCOÎ"Õ­MÎ-Õ­X¦YESΫխlÕ­t«€…Õ­‚«ð•Ì‹têÊ‹tȡխ¥§€…‚«€…ê‚«¹ôÕ­ÂÎ Õ­ÒÕ­Ù§€…¹òÕ­íÎ0¹ðÕ­ FRAME INFO INTO DIRECTORY } BEGIN { MARKHEADER } $IF DIRINDEX >= LABMAX THEN (WRITELN('Directory overflow') ; $DIRINDEX := DúÎ1¹ðÕ®Î2¹ðÕ®Î3¹ðÕ®!Î4¹ðÕ®.Î5¹ðÕ®;Î6¹ðÕ®HÎ7¹ðÕ®UÎ8¹ðÕ®dÎ9¹ðÕ®sÎ:¹ðÕ®‚Î;¹ðÕ®‘Î<¹ðÕ® Î=¹ðÕ®¯Î>¹ðÕ®¾Î?¹ðÕ®ÍÎ@¹ðÕ®ÜÎA¹ðÕ®ëÎB¹ðÕ®úÎIRINDEX + 1 ; $WITH DIRECTORY[DIRINDEX] DO (BEGIN { SETD } ,PLACE.BLOCK := RESBLK ; ,PLACE.BYTE := BUFPTR ; ,LABELNAME := FC¹ðÕ¯ ÎD¹ðÕ¯ÎE¹ðÕ¯'ÎF¹ðÕ¯6ÎG¹Õ¯EÎH¹xÕ¯TÎI¹qÕ¯cÎJ¹jÕ¯rÎK¹cÕ¯�ÎL¹\Õ¯�ÎM¹UÕ¯ŸÎN¹NÕ¯®ÎO¹G¬¹@çâÝØÓÎÉÄ¿ºµ°«¦¡œ—RAMENAME ; (END ; { SETD } END ; { MARKHEADER } PROCEDURE DOIT ; { MAIN PROCESSOR } VAR I : INTEGER ; BEGIN { DOIT } $SEEK(0’�ˆƒ~ytoje`[VQLÕ¯¾§€… áîÕ¯Ðî¡ìÕ¯çÕ¯ë/Î"Õ°¶¦ You answered Íž¶íÍ ž¶¦ questions correctly. ÍžÕ°, 1) ; $REPEAT (GETHEADER ; (IF NOT RANEOF THEN ,BEGIN 0MARKHEADER ; 0WRITE(FRAMENAME:9) ; 0IF (DIRINDEX MOD 8) = 0 THEN ÅðÃ�¡öÕ¤-ðá*Õ¤HÕ¤MëáÕ¤fí‚«Õ¤z¦ :COR|:Q2719Ï"Õ¤�¹Õ¤›¦ :AB|:Q2719Ï"Õ¤±Ï,Õ¤¾Ï դƫ€…Õ¤Õ­æZJÕ¤ÿ¦:Q28Ï"Õ¥Ï-Õ¥¦G¶(Íž¶dí�ì†Í ž¶¦ % correct)Íž¶ÍžÕ°|Õ°�¦:BYEÎ"Õ°‘Î,Õ°žÎ Õ°¥Æ‰ÁÍÁ!íÀ )ä4:Ä,”Ê�ðP NOÏ¡mÕ¥.Õ¥:Ï Õ¥?¦:Q28AÏ"Õ¥R¥ Ï.Õ¥c Ï Õ¥pðá0Õ¥ŠÕ¥Ž¦:Q28A2Ï"Õ¥¢¦:Q28A2Ï/Õ¥±¦:Q28A2AÏ"եù եΦ:Q28A1Ï"ե߹Õ¥îÕ¥óÏ H Ì ˆ Î  † ì h @Ä,’ T®‚ €ðVÔ"v¸†^žæ2¶ÆÂ`øŠ°ìðnÄì” °!Ì!â!"*"N"Ò"<#^#†#®#$,$J$Ê$J&È&Õ¥þ¦:Q28A1Ï"Õ¦Õ¦Ï,Õ¦$Ï Õ¦,«€…Õ¦;­ÀKÕ¦i«Õ¦{ì‚«Õ¦‘¦:Q29Ï"Õ¦¦Õ¦¯¥ Ï.Õ¦À Ï Õ¦Ðë‚«Õ¦ãðá Õ¦÷¦:Q29A3Ï"Õ§ ðË¡ö'.'V'Ö():)žOðÕ¯'ÎF¹ðÕ¯6ÎG¹Õ¯EÎH¹xÕ¯TÎI¹qÕ¯cÎJ¹jÕ¯rÎK¹cÕ¯�ÎL¹\Õ¯�ÎM¹UÕ¯ŸÎN¹NÕ¯®ÎO¹G¬¹@çâÝØÓÎÉÄ¿ºµ°«¦¡œ—( 4WRITELN; ,END ; $UNTIL RANEOF ; $WRITELN; $WRITELN(DIRINDEX, ' Texts processed.') ; $QSORT( 1, DIRINDEX ) ; $FOR I := 0 ØÇ^ˆ¤¨¥‰j͞؂̹ô¥‰jÍž¶¦File Íž¶¥’ÿÍž¶¦ .DIR created.Íž¶Íž­kà ì ƉjÆŠ–ÍƉ>ÆŠjÇÿTO DIRINDEX DO (BEGIN ,DIR^ := DIRECTORY[I] ; ,PUT(DIR) ; (END ; $CLOSE(DIR, LOCK) ; ÆÚªP¥‰>Í¥‰>ÆÍž"ÃÌ‘ÇÿÿÇôˆ«‰f«‰g«‰i­R8¥‰>¥ˆ>؂͞ɫ‰g­Ã §‰fÙË¡ÙÏÙÇÿÿÇôˆ«‰fØÇˆ«‰h­$WRITELN('File ', NAME, '.DIR created.') ; END ; { DOIT } BEGIN { MAIN } $INTRO ; $DOIT ; END. &Ìǧ‰h•‚ÌÝ ¥ˆ>§‰h•‚ž ÌÞÝÉ¡¹6¥ˆ>§‰h•‚¾Ã¡Ì¥ˆ>§‰h•‚؂ݞ̧݂‰f‚ϧ‰g¡¹ò¹ö¥ˆ>§‰h•‚ØÙ‚Þž§‰hÞ‚ÇÉ¡ §‰hÞ‚‚«‰h¹Ç«‰h¥ˆ>§‰h•‚¿ÞÙ‚•ÌÞØ‚ž ÌÛÞÄ¡¹LÛ‚ÌØÛ‚‚¾"•ÌÝÅ¡ØÚ‚ØÚÝ‚‚ÞÚ•‚ž¹ØÚ‚ØÚÝ‚‚ÞÚ•‚žÝ‘Å¡ ØÛ‚‚Ý‚ ž Þ݂̹ô؂޿­@h  ÛÚÉ¡Û̹ÚÌ­Ú³¡ÿþÿ‹¡ Úa•A‚̹ÚÌ­,¶ ͶͶ Ͷ¦MILTA - Create text directoryͶͶͶ¦ File name: Ͷ¥’ÿPͶͥ’ÖÌÆ¥’ÿPÍÆ¦.TEXTUÍÆªP¥’ÖÏ“¡3¶¦? Ͷ¥’ÖͶ¦ Not found?Ͷ͞¥‰jÌÆ¥’ÿPÍÆ¦.DIRTÍÆÍž"Ë¡'¶¦?Can't open output file?ͶÍÇ^ˆ«“¬¥ŠœÇ^ˆ¤ÌئAAAAAAAAЩØ¢Ç舚آ Ljš­VXÙÌØÌÆ¥ŠœÛÚ‚†Ç^ˆ¤©¥ŠœÛÇ^ˆ¤Æµ ¡Û‚̹öÆ¥ŠœÚÇ^ˆ¤µ ¡Ú•̹ôÛÚÈ¡@Æ ¥ŠœÛÇ^ˆ¤¨¥ŠœÛÇ^ˆ¤¥ŠœÚÇ^ˆ¤¨¥ŠœÚÇ^ˆ¤Æ ¨Û‚ÌÚ•ÌÛÚÅ¡òÙÚÉ¡ÙÚÏ ÛØÉ¡ÛØÏ ­‘z• ¶ ÌÌÙÚÈ¡6Ù‚¥“,¾È¡¥“(Ùˆ•‚¥“,Ù‚›¾Ï¿¹ ¥“(Ùˆ•‚ ¿Ù‚̹ö­> L ¥“,ϧ‰g¡Ì¹¥“,¾Ã¡Ì¹ ¥“,›¾:ÃÌØ¡ö§‰g“¡Ï ­4B MILTA  < §“¬Ç^Ä¡%¶¦Directory overflowÍž¶Íž§“¬‚Ç^ˆ«“¬¥Šœ§“¬Ç^ˆ¤ÌØ¢§‰fÇ舚آ §‰hÇˆšØ¥“(©­p  ˆ«“¬¥Šœ§“¬Ç^ˆ¤ÌØ¢§‰fÇ舚آ §‰hÇˆšØ¥“(©­p ÏÏ §‰g“¡ Ï ¶¥“( Íž§“¬ŽÃ¡¶Íž§‰g¡ö¶Íž¶§“¬Í ž¶¦ Texts processed.Íž¶Íž§“¬Ï ̧“¬ÌØÙÈ¡§‰j¥ŠœÏÏ §‰g“¡ Ï ¶¥“( Íž§“¬ŽÃ¡¶Íž§‰g¡ö¶Íž¶§“¬Í ž¶¦ Texts processed.Íž¶Íž§“¬Ï ̧“¬ÌØÙÈ¡§‰j¥ŠœØÇ^ˆ¤¨¥‰j͞؂̹ô¥‰jÍž¶¦File Íž¶¥’ÿÍž¶¦ .DIR created.Íž¶Íž­kà ì ƉjÆŠ–ÍƉ>ÆŠjÇÿ) fZBBB>BBBB>pp`> ÿ��������ÿÿÿÿÿÿÿÿÿÿÿÿççççÿÿçÿÿÿÁÁÛíÿÿÿÿÿÿÛÛ�Û�ÛÛÿÿÿ÷ÁýÁßÁ÷ÿÿÿÙÙï÷ûÍÍÿÿÿïÇ»ç»Çïïÿÿççï÷ÿÿÿÿÿÿÏ÷ûûû÷ÏÿÿÿóïßßßïóÿÿÿÿÛç�çÛÿÿÿÿÿïïƒïïÿÿÿÿÿÿÿÿÇÇÇÿÍÕ�$ÎΠƉjÍƉ>ÍÁ‰T'4:,¢ä6òP‚ž°Ü L ¥“,ϧ‰g¡Ì¹¥“,¾Ã¡Ì¹ ¥“,›¾:ÃÌØ¡ö§‰g“¡Ï ­4óÿÿÿÿÿ�ÿÿÿÿÿÿÿÿÿÿÇÇÇÿÿÿŸŸÏçóùùÿÿÿý½¥½½Ãÿÿÿïçëïïïƒÿÿÿý¿Ãýý�ÿÿÿÁ¿¿Ã¿¿ÁÿÿÿŸ¯·»�¿¿ÿÿÿÁýÁ¿¿½ÃÿÿÿƒýýÁ½½Ãÿÿÿ�¿ßï÷÷÷ÿÿÿý½Ã½½Ãÿÿÿý½Ã¿ < §“¬Ç^Ä¡%¶¦Directory overflowÍž¶Íž§“¬‚Ç^ˆ«“¬¥Šœ§“¬Ç^ˆ¤ÌØ¢§‰fÇ舚آ §‰hÇˆšØ¥“(©­p ¿ÃÿÿÿÇ×ÇÿÇ×ÇÿÿÿÇ×ÇÿÇ×Çóÿÿßï÷û÷ïßÿÿÿÿÿÁÿÿÁÿÿÿÿû÷ïßï÷ûÿÿÿý¿Ï÷ÿ÷ÿÿÿý�µÍýƒÿÿÿý½�½½½ÿÿÿÁ½½Á½½Áÿÿÿýýýý½Ãÿÿÿáݽ½½Ýáÿÿÿ�ýýÁýý�ÿÿÿ�ýýÏÏ §‰g“¡ Ï ¶¥“( Íž§“¬ŽÃ¡¶Íž§‰g¡ö¶Íž¶§“¬Í ž¶¦ Texts processed.Íž¶Íž§“¬Ï ̧“¬ÌØÙÈ¡§‰j¥ŠœáýýýÿÿÿÁÝý�½½¡¿ÿÿ½½½�½½½ÿÿÿÁ÷÷÷÷÷ÁÿÿÿßßßßßÝÁÿÿÿ½Ýíñíݽÿÿÿýýýýýý�ÿÿÿ½™¥½½½½ÿÿÿ½¹µ¥­�½ÿÿÿý½½½½ÃÿÿÿÁ½½Áýýýÿÿÿ�½½½­��¿ÿÿÁ½½Á½½½ÿÿÿÃØÇ^ˆ¤¨¥‰j͞؂̹ô¥‰jÍž¶¦File Íž¶¥’ÿÍž¶¦ .DIR created.Íž¶Íž­kà ì ƉjÆŠ–ÍƉ>ÆŠjÇÿ½ýÿ½Ãÿÿÿ�ïïïïïïÿÿÿ½½½½½½Ãÿÿÿ½½½½ÛÛçÿÿÿ½½½½¥™½ÿÿÿ½½ÛçÛ½½ÿÿÿ½½½Ûçççÿÿÿ�½ßçû½�ÿÿÿÁýýýýýÁÿÿÿùùóçÏŸŸÿÿÿƒ¿¿¿¿¿ƒÿÿÿ÷ëÝÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ>>$$$~$~$$>> >&&228DD800   $~$|888ÿû÷ïÿÿÿÿÿÿÿÿÿÿ£½ƒÿÿÿýýʽ¹Åÿÿÿÿÿýý½Ãÿÿÿ¿¿£�½�£ÿÿÿÿÿýÅýÃÿÿÿï÷÷ã÷÷÷ûÿÿÿÿý½�£¿Ãÿýýʽ½½ÿÿÿ÷ÿ÷÷÷÷÷ÿÿÿÿïÿïïïïíóÿûûÛëóëÛÿÿÿû÷÷÷÷÷ï ~888``0 @@<@@>`PHD~@@>>@@B<|>BB<~@ > BB>BB>~~÷ûýÿÿÿÿÁï÷ûÁÿÿÿ�÷÷ù÷÷�ÿÿ÷÷÷÷÷÷÷÷÷÷ÿñïïŸïïñÿÿÿÿÿÿÁßßÿÿÿÿÛÛ�Û�ÛÛÿÿÿÿÿÁ÷÷÷÷÷ÁÿÿÿßßßßßÝÁÿÿÿ½Ýíñíݽÿÿÿýýýýýý�ÿÿÿ½™¥½½½½ÿÿÿ½¹µ¥­�½ÿÿÿÃ>"rBB^@BBB~BBB>> ">B""B~BfZBBBBBFJZRbBBB>~BBBRr~@>BB>BBB<0Ã0Ã0ÆøŽÌ üQÌ þ¤0Ì ÿÂÌŒÿ�øÌŒÿ�ÿÌŒÿ?á üÏÿþüÏÿÿàÀÀÿüàÀÿÿƒÿð�ÿÿÿð�ÿÿÿ?B<@B<~BBBBBB<BBBB$$BBBBZfBBB$$BBBBB$~B B~>> 0``|@@@@@|"ÿà€ÿþÀÿðÀþðàüÀàø?ÀàðÀððÀðøÀðüÀø<þÏ ø~ÿ¸ß øÿÿðð üÿÿ``üÿÿüÿÿþÿÿ0<@\B|:FBF:§Q30A ?fQ31 @ÝQ31A AžQ32 B7Q32A D~Q33 D†Q34 EüQ35 F¡Q3A ÿQ4 ÍQ4A mQ5 šQ6 ²Q6A <Q7 IQ7A :Q8 TQ9 !Q9A ÚSD ûSDN éSE STUDENT ATMT ÀTYP TTYPE |TYPEBYE mUAN ŸUAY }WANTSCO NWR  òWRQ25 ,ƒWT 8ð CONCATEN AAAAAAAAAB &ACORR AGR BYE FCOR ÀCORQ25 -CS22 -·DONEQ “EVAL )HO  €¥,§�€dˆ•¤)ƪPƦ¯§�€dÄ�¡ô­@˨ Æ�0Æ‘\ÇÿÿÍÆ�XÆŽHO1 ÄI1 éI2 ÞMOR :¼N24 3HN26 4UN26A :ËN3 mN3A oNAME ND ‘„ÇÿÿÍÕ€‰¶ Íž¶Íž¶ Íž¶¦$FASTCAT : Concatenate files quickly.Íž¶Íž¶ÍžÎΫ��§�€Ì�ƒ§��Ê�ƒÈ¡§��  NL ÙNOTREL dNT15 %SOK RPCOR ÐPWR §Q1 HQ10 ¼Q11 .Q12 Χ��‚«��¹ö¥�0Íž¶¦Files copied to Íž¶¥Íž¶Íž¡ôÆ�0ÍÆ�XÍÁpd!ðö@  iles, RETURN to Q12W ~Q13 »Q13A «Q14 QQ14A cQ15 dQ15(1) kQ15(1)C Q15(1)W 4Q15(2) æQ15(2)C ƨ¥,Ødˆ•¤)ªP¶¦Copying Íž¶ƨÍž¶ÍžØą́¹̨¥�XÍž¥�XƨÍž¥�XÆ(ʨ̨͞¥�0ÆʨÇÿÿÍyQ15(2)W «Q15(3) žQ15(3)C 3Q15(3)W eQ15(4) uQ15(4)C Q15(4)W 5Q16 ÀQ17 >Q17Y "ZQ18 žÌ¨ʨʨ‚̨ʨʨÉ¡4¶¦Out of room on output device!Íž¶Ížžʨáö­{XP Þ¶¦ Output file:Íž¶¥PÍ6 ÆÚªP¥‰ÁÍ¥‰ÁÆÍž"ÃÌ‘ÇÿÿÇôˆ«‰é«‰ê«‰ì­R8¥‰Á¥ˆÁ؂͞ɫ‰ê­Ã §‰éÙË¡ÙÏÙÇÿÿÇôˆ«‰éØÇˆ«‰ë­¡Y§‹ģ‹g¥Šk¾É¥Šk§‹g›¾Æ¼‹“„¡§‹g‚Çúˆ«‹g¹öØš¥Šé¥ŠkÆÊ§‹gÊ•‚ÍÆªú§‹g‚Çúˆ«‹g¹ Øš¥Šé¦ªú­1aþ" x¥Šé¥ŠkªúÇú&Ìǧ‰ë•‚ÌÝ ¥ˆÁ§‰ë•‚ž ÌÞÝÉ¡¹6¥ˆÁ§‰ë•‚¾Ã¡Ì¥ˆÁ§‰ë•‚؂ݞ̧݂‰é‚ϧ‰ê¡¹ò¹ö¥ˆÁ§‰ë•‚ØÙ‚Þž§‰ëÞ‚ÇÉ¡ ˆ«‹g­Š¥‹r¥‹r¼³¿�FC�³­èSûBƒ½¥‹r¥‹r¼¥‹r¼žŠ–½¥‹r¼ÚŠ�ž‚Ì­BÆتP²+Íž²+Ì+Æ+ÆPÍÆ+¦.DIRTͧ‰ëÞ‚‚«‰ë¹Ç«‰ë¥ˆÁ§‰ë•‚¿ÞÙ‚•ÌÞØ‚ž ÌÛÞÄ¡¹LÛ‚ÌØÛ‚‚¾"•ÌÝÅ¡ØÚ‚ØÚÝ‚‚ÞÚ•‚ž¹ØÚ‚ØÚÝ‚‚ÞÚ•‚žÝ‘Å¡ ØÛ‚‚Ý‚ ž ÞÝ‚ÌÆ+Íž"˸�]¶�]Ì+Æ+ÆPÍÆ+¦.TEXTUÍÆ+Ï“�¸�]­¹¨hÆتPÆ+Æ�WÍÆÎÊ�]¡Ì�^Æ�^¦#5:ÍÆ�^ÆSÍÆ�^ÎÊ�]¡+¶ž¶Íž¥¦¯¡ž¥¦.TEXTÍá¥ÌÆ¥PÍÆ¦.TEXTUÍÆªP¥�0¥Ížž"Ë«�‚§�‚¡5¶¦Can't open output file ͹ô؂޿­@h  ÛÚÅ¡Ú̹ÛÌ­ÛÚÅ¡Û̹ÚÌ­Ú³¡ÿþÿ‹¡ ÚA‚a•̹ÚÌ­,Û¦ž¶¥Íž¶Íž§�‚“¡ö­Í¼V ÄÆÚªP¥�XÍ¥�XÆÍž"ÃÌ­R$«�€¶¦.Enter list of input files, RETURN to ¯¡Ì¹3̦|ÛÍÌÜÅ¡ÚÛÆÜ•ÍÆªPÛÜ͹ ÚÛªPÛ¦ªP­TH ئªPÌ1ÚÉ¡Ú€ÌØ-ªPÚÃØ¦·„¡ ئ-32768ªP¹fÇ'Ì/Ì-end list.Íž¶Íž¶¦ Input file:Íž¶ÆPÍž¶ÍžÆ¦·¡öÆÏ“«�‚§�‚¡(ÆÌ*Æ*ÆPÍÆ*¦.TEXTUÍÆ*ªPÆÏ“«�‚§Ì3Ê-Ê3Ä¡TÚÊ/†0‚Ì0Ê00ÃÊ-Å„Ê1„¡¹.Ì1ØÌ4Æ4ØPÍÆ4¦ QÍÆ4ªPØØ¾›Ê0¿Ê00Ë¡ÚÊ/ŽÌÊ/ †Ì/Ê-•Ì-¹öÙÉÌ2Ʀ/ �‚¡5¶Íž¶¦ Can't find Íž¶ÆÍž¶Íž¹§�€‚«�€¥,§�€dˆ•¤)ƪPƦ¯§�€dÄ�¡ô­@˨ Æ�0Æ‘\ÇÿÿÍÆ�XÆ Æ3ÙØ¾•ÍÆ3ªPÊ2¡ØÌ3Æ3ÆPÍÆ3ØÇ ÍÆ3ªP¹ØÌ3Æ3ØPÍÆ3ÆÇ ÍÆ3ªP­@Ü  سªÿÿÿÿÿÿÿÿþÿ‹Ù³Ú‘„ÇÿÿÍÕ€‰¶ Íž¶Íž¶ Íž¶¦$FASTCAT : Concatenate files quickly.Íž¶Íž¶ÍžÎΫ��§�€Ì�ƒ§��Ê�ƒÈ¡§��ÿþÿ‹„¡Ø•ٕͧ‹iØ•‚Ç爫‹h¹$¶¦Bad AT parametersÍž¶Íž­4f ¶Íž­ ¶ ÍžÏ ­Î§��‚«��¹ö¥�0Íž¶¦Files copied to Íž¶¥Íž¶Íž¡ôÆ�0ÍÆ�XÍÁpd!ðö@  iles, RETURN to  «‹jPÇ爫‹iÇúˆ«‹gÆÆž ¥‹rØ€ÇôŽŠ½¥‹l¦ª Ï ­ˆ:ÆÚªPÆ¥ŠéÍÅÌ­gRÆÚªPÆ¥ŠéÍÃÌ­gRV CASEXXAN ÆÚªPÆ¥Šé¯Ì­RÆÚªPÌ/Ì-Æ¥‰íÏ Ê/„¡¥‰í¥ŠéÍÌ.Ê.Ê-ÄÌ/Ê.¥‰í¾‚Ì-¹öÊ/Ì­3XFÌÜšÛ¥‰íÏ Ý“„¡9ÜÜø‚šÚ \ÞÌ Z ÎLŒØt t ¸ ú L ~ ¸ ø B   à , p À ö .ZðžÔ¹!¥‰íÏ̹#¥‰íÏ̹¥‰íÏ̹ ¬¹(¹öÝÌ­L ZÆÚªPÛÆÏÌ­¡RÆÚªPÛÆÏÌ­¡RÆÚª „f¾ ` š’�"¾V¤Æ.¬f~’°ÎìL˜´Öø8TlØúHz–²ÄðžO5¹òÎ6¹òÎ7¹òÎ8¹òÎ9¹òÎ:¹òÎ;¹òÎ<¹òÎ=¹òÎ>¹òÎ?¹PÛÆÏÌ­¡RÆتP­RÆ,ÙªPÆتP­¤ØšÌÌ¥Šé¾Å¡òÌÌÝ¥Šé¾ÉÚ“„¡Ý‚Ì¥ŠéÝ›¾³ÿ(‹Ì¹ö¥ŠòÎ@¹òÎA¹ÎB¹{ÎC¹wÎD¹sÎE¹oÎF¹kÎG¹gÎH¹cÎI¹_ÎJ¹[ÎK¹WÎL¹SÎM¹OÎN¹KÎO¹G¬¹@‡…ƒ�}{ywusqomkigeca_][YWUSQéÝ›¾+á݂̹¥ŠéÝ›¾-á ݂̑ÌÌÝ¥Šé¾ÈÚ“„¡1¥ŠéÝ›¾³ÿ‹¡Ü �¥ŠéÝ›¾‚0•ÌÝ‚ÌØš¹Ì¹ôÙÜÛ�š­E• ´§‹g¥Šk¾È7 ²¾Å¡ ²›¾:ÃÌ­&(ØÆ€€ÏÊ€€¡PÆÏÎ(“¡Cƾš6Æ›¾*Ë¡-Æ¾ÅÆÆ¾›¾ Ä¡ ÆÆ¾Í¹öÆ ¯¡Æ¦ªúÆ®#ÆÏ¹ô¹?¶Íáí‚«¦:Q13AÏ"Ï,Ï «€…­<<«ì‚«¦:Q14Ï"¥ Ï.Ï ðÃðÃ�¡í‚«¦:Q14AÏ"Ï,Ï «€…­>=«ì‚«¦:Q15Ï"Ï ¦Ï*ž¶ØÍž¶¦ - labeled text not found.Íž¶Íž­�xþ ¦'ÆتúÆÆ€€Ï ¡Æ€€›¾:áÆ€€Î'¹Æ€€Î#¹ö­%ø2"Ï 1ϡ킫¦:Q15(1)CÏ"¹ ¦:Q15(1)WÏ"¦:Q15(1)Ï"Ï,Ï 2ϡ킫¦:Q15(2)CÏ"¹ ¦:Q15(2)WÏ"¦:Q15(2)Ï"Ï,Ï 3ϡ킫¦:Q15(3ÆتúÆÏ"¶¥ŠéÇúÍž¶Íž§‹j“¡2Ì€€¥Šé¾Ì€�Ê€€Ê€�È¡¥ŠéÊ€€›¥ŠéÊ€€›¾Ï¿Ê€€‚Ì€€¹ö¥Šk¥ŠéªúÇúˆ«‹gÏ)­<t*ÆتúÙ•)CÏ"¹ ¦:Q15(3)WÏ"¦:Q15(3)Ï"Ï,Ï 4ϡ킫¦:Q15(4)CÏ"¹ ¦:Q15(4)WÏ"¦:Q15(4)Ï"Ï,Ï «€…­ú>¦:Q16Ï"Ï-Ï ¦YESÏ¡7¦ÌÆ¥‰íÏ Ùń̀�Ê€�“¡ö¥‰íÏ"­€#þ 0+ Ï ¦ Please press RETURN to continue.Ï*­0,¦/QUITÏ¡Ï ž­T):UAYÏ"¥ ¦YES¯¡¦ :TMT|:NL|:SEÏ"¹¦ :TMT|:ND|:SEÏ"¹5¦:UANÏ"¥ ¦NO¯¡¦ :TMT|:SDN|:SEÏ"¹¦ :TMT|:SD|:SEÏ"Ï,Ï «€…­–?Ï ¦Ï*YÏyÏ�NÏ�nÏ�“¡9Ï ¶¦Type YES or NO please!Íž¶Íž¦Ï*Ï Ï ¹öYÏyÏ�¡ ¥Šé¦YESªú¹ ¥Šé¦NOªú­xì‚«¦ :Q17|:AGRÏ"Ï-Ï ¦YESÏ¡¦:Q17YÏ"Ï,Ï «€…¹ í‚««€…­ F@ì‚«¦:Q18Ï"Ï-Ï ¦NOϡ킫¦:NT15Ï"Ï,Ï «€…­ x ˆ-Ï ¦Ï*Ù¥Ïï“¡ÙšÙøÉÙøØÅ�¡fÏ Ï ¶¦Type a number from 1 to Íž¶ØÍ ž¶¦ please!Íž¶Íž¦Ï*Ï:Aì‚«¦ :Q19|:AGRÏ"Ï- Ï ¦NOϡ킫¦:Q19AÏ"Ï,Ï «€…­@Bì‚«¦ :Q20|:AGRÏ"Ï-Ï ¦NOϡ킫«€…­12ÆÍž¶¦ not found!Íž¶Íž¹:Ç^ˆ«€†Æ+Í “¡'¥€‡§€†Ç^ˆ¤Ê+¨§€†‚Ç^ˆ«€†Æ+Íž¹öÆ+Í­: °ÆÙªPÇ Ï Ù¥Ïï“¡Ùš¹ö­t �.ÆتPÏ ÆÏ"Ï ¦Ï*¥Šé¦¯¡ö­R&/¦:Q1|:AGRÏ"Ï- Ï ¥ ¥ŠéªP¦:EVALÏ"Ï,Ï «€…­20^ˆÌ.§€†Ç^ˆÌ-ØšÆ0¦ ЩÌ/ƾ•ÏÌ4Ê/Ê4È¡Æ0Ê/ˆ•‚ÆÊ/‚›¾Ï¿Ê/‚Ì/¹öÊ.Ê-‚†ŠžÇ^ˆÌ,¥€‡Ê,Ç^ˆ¤Ì4Æ0Ê4µ ¡ Ê,ì‚«¦:Q2|:AGRÏ"Ï-Ï ¦NOϡ킫«€…­01ì‚«¦:Q3Ï"Ï-Ï ¦NOϡ킫¦:CORÏ"¹¦:WRÏ"¦:Q3AÏ"Ï,Ï «€…­J•Ç^ˆÌ-¹Æ0Ê4± ¡ Ê,‚Ç^ˆÌ.¹ØšØøÊ-Ê.É�¡ôØø¡¥€‡Ê,Ç^ˆ¤¢Ì4Ê4øÊ4ùÏ­vžd Þ§‰ȩ̂‰ê“¡¶¾Å¡ ¶›¾:ËÌ­ 2ì‚«¦:Q4|:AGRÏ"Ï-Ï ¦NOϡ킫¦:Q4AÏ"Ï,Ï «€…­>3ì‚«¦:Q5|:AGRÏ"Ï- Ï ¦NOϡ킫¥3¥ŠéªP¦:EVALÏ"Ï,Ï «&!ÆÛªPÚ¦ ? NOT FOUND ?ªúÆ¥‹l·Ù§‹kÉ�¡ÆØÏØø¡ ¥‹lƪ «‹k¹Ø𨸡Ù§‹kÅÎ!„¡ Úϧ‹k‚«‹k¹öØÎ!š­!Rl ¶§‹h‚•¸€…­F4ì‚«¦:Q6Ï"Ï-Ï ¦NOϡ킫¦:Q6AÏ"Ï,Ï «€…­L:5«ì‚«¦:Q7Ï"¥ Ï.ë‚«ðË¡ Ï ¦:WTÏ"ðáö Ï Ï ¶¶Ŷ¶›¾ Ë„¡ ¶•¸¹ö¶¶Å¡%¶¶Æ¶¶¶•ÍÆÍž¶‚¸¶Íž§‹iÇ爫‹h­bü v$¶¶Æ¶¶¾¶ëáí‚«¦:Q7AÏ"Ï,Ï «€…­AX6¥3¦NO¯¡.ì‚«¦:Q8Ï"Ï-Ï ¦NOϡ킫¦:EVALÏ"Ï,Ï «€…­D7ì‚«¦:Q9Ï"Ï-•‚ÍÆÍž¶Ç爫‹h¶¾¸­ü:%¶¶Æ¶¶¾¶•ÍÆÍž¶Íž§‹iÇ爫‹h­ü:&ؾšxØÌÆØÇúÍÆ¦Ï ¦NOϡ킫¦:Q9AÏ"Ï,Ï «€…­":8ì‚«¦:Q10Ï"Ï-Ï ¦YESÏ¡ «€…¹ í‚« «€…­ 49ì‚«¦:Q11Ï"Ï-Ï ¦NOÏ¡ ÇûÍÆªúØ›¾/á¶Íž§‹iÇ爫‹hØ›¾³A€‹¡Ì¹ÌÛØ¾É¡"§‹hؾ•Û‚•ÌÙÉ¡Î$¹ ÙáÎ&¹Î%¹ö­*ˆ#§‰ȩ̂‰ê“¡í‚« «€…­,:ì‚«¦ :Q12|:AGRÏ"Ï-Ï ¦YESϡ킫¦:CORÏ"¹ ¦:Q12WÏ"Ï,Ï «€…­L;«ì‚«¦:Q13Ï"¥ Ï. Ï ð8 áí‚«¦:CORÏ"¹¦:WRÏ"¦:Q27A1Ï"Ï,Ï ¦ :Q27A|:AGRÏ"Ï-Ï ì‚«¦:Q27BÏ"Ï-Ï ¦YESϡ킫¦:CORÏ"¹¦:PWRÏ"¦:Q27B1Ï"Ï,Ï ì ¡TYPEIN ¨TXT ¦Q1 ¨Q2 ¨Q3 ¨Q4 ¨Q5 ¨Q6 ¨Q7 ¨Q8 ¨‚«¦:Q27CÏ"Ï- Ï ¦YESϡ킫¦:CORÏ"¹¦:WRÏ"Ï,Ï «¦:Q27DÏ"ì‚«¥ Ï.Ï ë‚«ð Ãð Ã�ðÃ�ðÃ�¡¦:Q27NBÏ"Ï,Ï ¹"ðË¡¦:NQ9 ¨Q10 !¨Q11 "¨Q12 #¨Q13 $¨Q14 %¨Q15 &¨Q16 '¨Q17 (¨Q18 )¨Q19 RANOPEN ê¨FNAME ¦RANREAD ë¨B ¡SEEK ì¨BLK ¡BYT ¡GETRANLIí¨P ¡L ¡Z *¨Q20 +¨Q21 ,¨Q22 -¨Q23 .¨Q24 /¨Q25 0¨Q26 1¨Q27 2¨Q28 3¨Q29 4¨Q30 ¡SP ¡EX ¡BS ¡MIN î¨I ¡J ¡MAX ï¨I ¡J ¡UPPERCASð¨CHAR 5¨Q31 6¨Q32 7¨CASEANALé¨I ¡CASES j ¤TRIES ¡CORRECT ¡SCORING ¤KBDNUM ¡LABCOUNT†¡ACTE¢NEXTSTR ñ¨P ¡NUM ò¨I ¡WIDTH ¡TENS /¡J .¡LEFT 2¤CH 0¢SP ¦MAXLL i ¡RANEOF ê ¤RANDOMSEr £KBD é ¦KBDCOPY k ¦ANSQ1 ¦NEXT …¥RESBLK é ¡TEMP í ¦RESLINE k ¡RESLAB POT -¡SUPPRESS1¤AT ó¨Y ¡X ¡ERASELINô¨ERASEPAGõ¨START ö¨HI ¡LO ¡KM l ¦ANSQ5 3¦ANSQ23 \¦FOUND ¤SPCOUNT ì ¡ROOM h ¡CRACKCOLg ¡QUESTION¡BUFPTR ë ¡÷¨S ¦PM ø¨S ¦DM ù¨S ¦EM ú¨S ¦P .¡COL -¡OK /¤MANYMATCû¨COMPTYPE¥FOUND ¤PMM ü¨S ¦DMM ý¨S ¦KMM þ¨S ¦PERFORM ÿ¨S ¦REC ¨S1 ,¦S2 ¦GETNUMBE¨I ¡DONE ¤SIGN ¡TOT ¡CRACK ¨START ¡RESTORE C¦:Q21Ï"Ï-Ï ¦:Q21AÏ"Ï,Ï «€…­(Dì‚«¦ :Q22|:AGRÏ"Ï- Ï ¦NOϡ킫¦:EVALÏ"Ï,Ï «€…­@Eì‚«¦:Q23Ï"ϨRAN ¨RANGE ¡OPENUP ¨FN ¦TFILE ¨FN ¦ERR ]¤SEEKLABE¨LAB ¦I /¡LOWE-Ï ¥\¥ŠéªP¦NOϡ킫«€…­L4F«ì‚«¦:Q24Ï"¥ Ï. Ï ðáí‚«¦:CORÏ"¹¦:WRÏ"¦:Q24AÏ"Ï,Ï «€…­NGì‚«R .¡UPPER -¡PROBE ,¡INFILE ¨LOAD ¨LAB ¦LINE ¡NOFITS ¨FITS ¨JUSTFITS¨PRTRAW ¨¦:Q25Ï"Ï- Ï ¦YESÏ¡6¦:PWRÏ"¥\¦YES¯¡ ¦:WRQ25Ï"¹¥\¦NO¯¡ ¦:CORQ25Ï"¹:¦:PCORÏ"í‚«¥\¦NO¯¡ ¦:CORQ25Ï"¹¥\¦YES¯¡ BOL ¡NEWROOM ¡EOL ¡EOR ¨PRLAB ¨S ¦FOUND €¤P ¨NAME ¦TEMP €¦ASK ¦:WRQ25Ï"¦:CS22Ï"Ï,Ï «€…­Q¨Hì‚«¦:Q26Ï"¥ Ï.Ï ðáí‚«¦:Q26AÏ"Ï,Ï «€…­::I«ì‚«¦:Q27Ï"¥ Ï. Ï ð¨PROMPT ¦I €¡PRINTC ¨N ¡S ¦GOAHEAD �¤WAIT ¨TRAP ¨ASKYN ¨ASKNUM ¨MAX 9 ŽHO1 ÄI1 éI2 ÞMOR :¼N24 3HN26 4UN26A :ËN3 mN3A oNAME ND  PROCEDURE Q2; #BEGIN &QUESTIONS := QUESTIONS + 1; &P(':Q2|:AGR'); &ASKYN; &ERASEPAGE; &IF KM('NO') THEN )CORRECT :=   NL ÙNOTREL dNT15 %SOK RPCOR ÐPWR §Q1 HQ10 ¼Q11 .Q12 CORRECT + 1; &NEXT := PQ3; #END (*Q2*); PROCEDURE Q3; #BEGIN &QUESTIONS := QUESTIONS + 1; &P(':Q3'); &ASKYN; Q12W ~Q13 »Q13A «Q14 QQ14A cQ15 dQ15(1) kQ15(1)C Q15(1)W 4Q15(2) æQ15(2)C &AT(6, 1); &IF KM('NO') &THEN )BEGIN ,CORRECT := CORRECT + 1; ,P(':COR'); )END &ELSE )P(':WR'); &P(':Q3A'); &WAIT; &yQ15(2)W «Q15(3) žQ15(3)C 3Q15(3)W eQ15(4) uQ15(4)C Q15(4)W 5Q16 ÀQ17 >Q17Y "ZQ18 ERASEPAGE; &NEXT := PQ4; #END (*Q3*); PROCEDURE Q4; #BEGIN &QUESTIONS := QUESTIONS + 1; &P(':Q4|:AGR'); &ASKYN; &AT $œQ19 '\Q19A (‡Q2 zQ20 (MQ21 )”Q21A )êQ22 *$Q23 *ÜQ24 +Q24A ,‚(6, 1); &IF KM('NO') THEN )CORRECT := CORRECT + 1; &P(':Q4A'); &WAIT; &ERASEPAGE; &NEXT := PQ5; #END (*Q4*); PROCEDURQ25 ,þQ26 -ÈQ26A .\Q27 /ÇQ2719 @Q27A fQ27A1 0JQ27B °Q27B1 #Q27C Q27D E Q5; #BEGIN &QUESTIONS := QUESTIONS + 1; &P(':Q5|:AGR'); &ASKYN; &AT(9, 1); &IF KM('NO') THEN )CORRECT := CORRECT + 1;ìQ27NB ÝQ28 0ÆQ28A 1IQ28A1 1EQ28A2 2Q28A2A 2XQ29 2ÃQ29A <Q29A3 3VQ29AY <ÄQ3  &ANSQ5 := KBD; &P(':EVAL'); &WAIT; &ERASEPAGE; &NEXT := PQ6; #END (*Q5*); PROCEDURE Q6; #BEGIN &QUESTIONS := QUES cQ30 >§Q30A ?fQ31 @ÝQ31A AžQ32 B7Q32A D~Q33 D†Q34 EüQ35 F¡Q3A ÿTIONS + 1; &P(':Q6'); &ASKYN; &AT(8, 1); &IF KM('NO') THEN )CORRECT := CORRECT + 1; &P(':Q6A'); &WAIT; &ERASEPAGE; &NEXQ4 ÍQ4A mQ5 šQ6 ²Q6A <Q7 IQ7A :Q8 TQ9 !Q9A ÚSD T := PQ7; #END (*Q6*); PROCEDURE Q7; #BEGIN &TRIES := 0; &QUESTIONS := QUESTIONS + 1; &P(':Q7'); &REPEAT )ASKNUM(KBûSDN éSE STUDENT ATMT ÀTYP TTYPE |TYPEBYE mUAN ŸUAY }WANTSCO NWR DNUM, 5); )TRIES := TRIES + 1; )IF KBDNUM <> 1 THEN ,BEGIN /AT(10, 1); /P(':WT'); ,END; &UNTIL KBDNUM = 1; &AT(10, 1);  òWRQ25 ,ƒWT 8&ERASELINE; &IF TRIES = 1 THEN )CORRECT := CORRECT + 1; &P(':Q7A'); &WAIT; &ERASEPAGE; &NEXT := PQ8; #END (*Q7*); PRTRING); #BEGIN &ERASEPAGE; &P(TXT); &REPEAT )AT(23, 1); )ASK(''); &UNTIL KBD = ''; #END (*TYPEIN*); PROCEDURE Q1; OCEDURE Q8; #BEGIN &IF ANSQ5 = 'NO' &THEN )BEGIN ,QUESTIONS := QUESTIONS + 1; ,P(':Q8'); ,ASKYN; ,AT(6, 1); ,IF KM('NAAAAAAAAAB &ACORR AGR BYE FCOR ÀCORQ25 -CS22 -·DONEQ “EVAL )HO #BEGIN &P(':Q1|:AGR'); &ASKYN; &AT(11, 1); &ANSQ1 := KBD; &P(':EVAL'); &WAIT; &ERASEPAGE; &NEXT := PQ2; #END (*Q1*); : ND (*Q14*); PROCEDURE Q15; #BEGIN &TRIES := 0; &QUESTIONS := QUESTIONS + 4; &P(':Q15'); &AT(23, 1); &ASK(''); &ERAS, 1); &IF KM('NO') THEN )CORRECT := CORRECT + 1; &P(':Q19A'); &WAIT; &ERASEPAGE; &NEXT := PQ20; #END (*Q19*); PROCEDUEPAGE; & &IF KM('1') &THEN )BEGIN ,CORRECT := CORRECT + 1; ,P(':Q15(1)C'); )END &ELSE )P(':Q15(1)W'); &P(':Q15(1)'); RE Q20; #BEGIN &QUESTIONS := QUESTIONS + 1; &P(':Q20|:AGR'); &ASKYN; &ERASEPAGE; &IF KM('NO') THEN )CORRECT := CORRECT O') THEN /CORRECT := CORRECT + 1; ,P(':EVAL'); ,WAIT; ,ERASEPAGE; )END; &NEXT := PQ9; #END (*Q8*); PROCEDURE Q9; #&WAIT; &ERASEPAGE; & &IF KM('2') &THEN )BEGIN ,CORRECT := CORRECT + 1; ,P(':Q15(2)C'); )END &ELSE )P(':Q15(2)W'); BEGIN &QUESTIONS := QUESTIONS + 1; &P(':Q9'); &ASKYN; &AT(6, 1); &IF KM('NO') THEN )CORRECT := CORRECT + 1; &P(':Q9A'); &P(':Q15(2)'); &WAIT; &ERASEPAGE; & &IF KM('3') &THEN )BEGIN ,CORRECT := CORRECT + 1; ,P(':Q15(3)C'); )END &ELSE )P(&WAIT; &ERASEPAGE; &NEXT := PQ10; #END (*Q9*); PROCEDURE Q10; #BEGIN &QUESTIONS := QUESTIONS + 1; &P(':Q10'); &ASKY':Q15(3)W'); &P(':Q15(3)'); &WAIT; &ERASEPAGE; & &IF KM('4') &THEN )BEGIN ,CORRECT := CORRECT + 1; ,P(':Q15(4)C'); )ENN; &ERASEPAGE; &IF KM('YES') &THEN )NEXT := PQ12 &ELSE )BEGIN ,CORRECT := CORRECT + 1; ,NEXT := PQ11; )END; #END (*Q10D &ELSE )P(':Q15(4)W'); &P(':Q15(4)'); &WAIT; &ERASEPAGE; &NEXT := PQ16; #END (*Q15*); PROCEDURE Q16; #BEGIN &P('*); PROCEDURE Q11; #BEGIN &QUESTIONS := QUESTIONS + 1; &P(':Q11'); &ASKYN; &ERASEPAGE; &IF KM('NO') THEN )CORRECT ::Q16'); &ASKYN; &AT(7, 1); &IF KM('YES') &THEN )BEGIN ,P(':UAY'); ,IF ANSQ1 = 'YES' THEN /P(':TMT|:NL|:SE') ,ELSE /P('= CORRECT + 1; &NEXT := PQ12; #END (*Q11*); PROCEDURE Q12; #BEGIN &QUESTIONS := QUESTIONS + 1; &P(':Q12|:AGR'); :TMT|:ND|:SE'); )END &ELSE )BEGIN ,P(':UAN'); ,IF ANSQ1 = 'NO' THEN /P(':TMT|:SDN|:SE') ,ELSE /P(':TMT|:SD|:SE'); )END;&ASKYN; &AT(8, 1); &IF KM('YES') &THEN )BEGIN ,CORRECT := CORRECT + 1; ,P(':COR'); )END &ELSE )P(':Q12W'); &WAIT; &E &WAIT; &ERASEPAGE; &NEXT := PQ17; #END (*Q16*); PROCEDURE Q17; #BEGIN &QUESTIONS := QUESTIONS + 1; &P(':Q17|:AGR')RASEPAGE; &NEXT := PQ13 #END (*Q12*); PROCEDURE Q13; #BEGIN &TRIES := 0; &QUESTIONS := QUESTIONS + 1; &P(':Q13'); &; &ASKYN; &ERASEPAGE; &IF KM('YES') &THEN )BEGIN ,P(':Q17Y'); ,WAIT; ,ERASEPAGE; ,NEXT := PQ19; )END &ELSE )BEGIN ,ASKNUM(KBDNUM, 4); &AT(11, 1); &IF KBDNUM = 2 THEN )CORRECT := CORRECT + 1; &P(':Q13A'); &WAIT; &ERASEPAGE; &NEXT := PQ14CORRECT := CORRECT + 1; ,NEXT := PQ18; )END; #END (*Q17*); PROCEDURE Q18; #BEGIN &QUESTIONS := QUESTIONS + 1; ; #END (*Q13*); PROCEDURE Q14; #BEGIN &TRIES := 0; &QUESTIONS := QUESTIONS + 2; &P(':Q14'); &ASKNUM(KBDNUM, 5); &ER&P(':Q18'); &ASKYN; &ERASEPAGE; &IF KM('NO') &THEN )BEGIN ,CORRECT := CORRECT + 1; ,P(':NT15'); ,WAIT; ,ERASEPAGE; )EASEPAGE; &IF (KBDNUM = 3) OR (KBDNUM = 4) THEN )CORRECT := CORRECT + 1; &P(':Q14A'); &WAIT; &ERASEPAGE; &NEXT := PQ15; #END; &NEXT := PQ19; #END (*Q18*); PROCEDURE Q19; #BEGIN &QUESTIONS := QUESTIONS + 1; &P(':Q19|:AGR'); &ASKYN; &AT(11; ' THEN /P(':WRQ25') ,ELSE /IF ANSQ23 = 'NO' THEN 2P(':CORQ25'); )END &ELSE )BEGIN ,P(':PCOR'); ,CORRECT := CORRECT + 1; := CORRECT + 1; ,P(':COR|:Q2719'); )END &ELSE )P(':AB|:Q2719'); &WAIT; &ERASEPAGE; &NEXT := PQ28; #END (*Q27*); PRO ,IF ANSQ23 = 'NO' THEN /P(':CORQ25') ,ELSE /IF ANSQ23 = 'YES' THEN 2P(':WRQ25'); )END; &P(':CS22'); &WAIT; &ERASEPAGE;CEDURE Q28; #BEGIN &P(':Q28'); &ASKYN; &IF KM('NO') &THEN )BEGIN ,ERASEPAGE; ,P(':Q28A'); ,ASKNUM(KBDNUM, 2); ,AT(10 &NEXT := PQ26; #END (*Q25*); PROCEDURE Q26; #BEGIN &QUESTIONS := QUESTIONS + 1; &P(':Q26'); &ASKNUM(KBDNUM, 3); &A, 1); ,IF KBDNUM = 2 ,THEN /BEGIN 2P(':Q28A2'); 2TYPEIN(':Q28A2'); 2P(':Q28A2A'); /END ,ELSE /P(':Q28A1'); )END &ELSET(14, 1); &IF KBDNUM = 3 THEN )CORRECT := CORRECT + 1; &P(':Q26A'); &WAIT; &ERASEPAGE; &NEXT := PQ27; #END (*Q26*);  )BEGIN ,AT(8, 1); ,P(':Q28A1'); )END; &WAIT; &ERASEPAGE; &NEXT := PQ29; #END (*Q28*); PROCEDURE Q29; #BEGIN &TRPROCEDURE Q27; #BEGIN &TRIES := 0; &QUESTIONS := QUESTIONS + 1; &P(':Q27'); &ASKNUM(KBDNUM, 2); &AT(9, 1); &IF KBDNUM =IES := 0; &QUESTIONS := QUESTIONS + 1; &P(':Q29'); & &REPEAT )ASKNUM(KBDNUM, 3); )AT(11, 1); )TRIES := TRIES + 1; )IF KB+ 1; &NEXT := PQ21; #END (*Q20*); (* 20 *) PROCEDURE Q21; #BEGIN &P(':Q21'); &ASKYN; &AT(8, 1); &P(':Q21A'); &WAIT 2 &THEN )BEGIN ,CORRECT := CORRECT + 1; ,P(':COR'); )END &ELSE )P(':WR'); &P(':Q27A1'); &WAIT; &ERASEPAGE; & &P(':Q; &ERASEPAGE; &NEXT := PQ22; #END (*Q21*); PROCEDURE Q22; #BEGIN &QUESTIONS := QUESTIONS + 1; &P(':Q22|:AGR'); &ASK27A|:AGR'); &ASKYN; &ERASEPAGE; & &QUESTIONS := QUESTIONS + 1; &P(':Q27B'); &ASKYN; &AT(8, 1); &IF KM('YES') &THEN )BEYN; &AT(11, 1); &IF KM('NO') THEN )CORRECT := CORRECT + 1; &P(':EVAL'); &WAIT; &ERASEPAGE; &NEXT := PQ23; #END (*Q22*); GIN ,CORRECT := CORRECT + 1; ,P(':COR'); )END &ELSE )P(':PWR'); &P(':Q27B1'); &WAIT; &ERASEPAGE; & &QUESTIONS := QUEST PROCEDURE Q23; #BEGIN &QUESTIONS := QUESTIONS + 1; &P(':Q23'); &ASKYN; &ERASEPAGE; &ANSQ23 := KBD; IONS + 1; &P(':Q27C'); &ASKYN; &AT(11, 1); &IF KM('YES') &THEN )BEGIN ,CORRECT := CORRECT + 1; ,P(':COR'); )END &ELSE &IF KM('NO') THEN )CORRECT := CORRECT + 1; &NEXT := PQ24; #END (*Q23*); PROCEDURE Q24; #BEGIN &TRIES := 0; &QUESTIO)P(':WR'); &WAIT; &ERASEPAGE; & &TRIES := 0; &P(':Q27D'); &QUESTIONS := QUESTIONS + 1; &REPEAT )ASKNUM(KBDNUM, 25); )ANS := QUESTIONS + 1; &P(':Q24'); &ASKNUM(KBDNUM, 2); &AT(11, 1); &IF KBDNUM = 1 &THEN )BEGIN ,CORRECT := CORRECT + 1; ,PT(8, 1); )TRIES := TRIES + 1; )IF (KBDNUM = 10) OR (KBDNUM = 12) OR (KBDNUM = 16) OR (KBDNUM = 18) )THEN ,BEGIN /P(':Q27NB'(':COR'); )END &ELSE )P(':WR'); &P(':Q24A'); &WAIT; &ERASEPAGE; &NEXT := PQ25; #END (*Q24*); PROCEDURE Q25; #BEGI); /WAIT; /ERASEPAGE; ,END )ELSE ,IF KBDNUM <> 19 ,THEN /BEGIN 2P(':N3'); 2ASKYN; 2IF KM('YES') THEN N &QUESTIONS := QUESTIONS + 1; &P(':Q25'); &ASKYN; &AT(11, 1); &IF KM('YES') &THEN )BEGIN ,P(':PWR'); ,IF ANSQ23 = 'YES5TYPEIN(':Q27D'); /END; &UNTIL (TRIES > 3) OR (KBDNUM = 19); & &IF KBDNUM = 19 &THEN )BEGIN ,IF TRIES = 1 THEN /CORRECT< AGE; &NEXT := PQ31; #END (*Q30*); PROCEDURE Q31; #BEGIN &QUESTIONS := QUESTIONS + 1; &P(':Q31|:AGR'); &ASKYN; &AT(7#THEN &BEGIN )P('/'); )WRITE('You answered ', CORRECT, ' questions correctly. '); )WRITELN('(', 100*CORRECT DIV QUESTIONS,, 1); &IF KM('NO') THEN )CORRECT := CORRECT + 1; &P(':Q31A'); &WAIT; &ERASEPAGE; &NEXT := PQ32; #END (*Q31*); PROCEDU '% correct)'); &END; #P(':BYE'); #WAIT; #ERASEPAGE; END (*CASES*). RE Q32; #BEGIN &TRIES := 0; &QUESTIONS := QUESTIONS + 1; &P(':Q32'); &ASKNUM(KBDNUM, 2); &AT(8, 1); &IF KBDNUM = 2 &THEN )BEGIN ,CORRECT := CORRECT + 1; ,P(':COR'); )END &ELSE )BEGIN ,P(':WR'); )END; &P(':Q32A'); &WAIT; &ERASEPAGE; &NEXT := LAST; #END (*Q32*); BEGIN (*CASES*) #START; #ANSQ1 := ''; #ANSQ5 := ''; #ANSQ23 := ''; #QUESTIONS := 0; #CORRECT := 0; #SCORING := FALSE; #TFILE('CASET'); #ERASEPAGE; #P(':I1'); #AT(23, 1); #ASK(''); #GETNUMBER(KBDNUM, FOUND); #IF NOT FOUND #THEN &BEGIN )KBDNUM := 1; )ERASEPAGE; )P(':I2'); )WAIT; )ERASEPAGE; )P(':HO'); )ASKYN; )IF KM('NO') THEN ,BEGIN /AT(8, 1); /P(':HO1'); /WAIT; /ERASEPAGE; ,END )ELSE ,ERASEPAGE; , )P(':WANTSCO'); )ASKYN; )SCORING := DNUM = 3 THEN ,P(':Q29A3'); &UNTIL KBDNUM <> 3; & &ERASEPAGE; &IF TRIES = 1 THEN )CORRECT := CORRECT + 1; &P(':N24'); &AKM('YES'); &END; #NEXT := PQ1; #FOR I := 1 TO ( KBDNUM - 1 ) DO &NEXT := SUCC( NEXT ); #ERASEPAGE; # # #REPEAT &CASE NESKYN; &ERASEPAGE; &IF KM('YES') THEN )BEGIN ,P(':N26|:MOR'); ,ASKYN; ,IF KM('YES') ,THEN /BEGIN 2AT(8, 1); XT OF )PQ1: ,Q1; )PQ2: ,Q2; )PQ3: ,Q3; )PQ4: ,Q4; )PQ5: ,Q5; )PQ6: ,Q6; )PQ7: ,Q7; )PQ8: ,Q8; )PQ9: ,Q9; )PQ12P(':N26A'); 2WAIT; 2ERASEPAGE; /END ,ELSE /ERASEPAGE; )END; ) &P(':Q29A'); &ASKYN; &ERASEPAGE; &IF KM('YES') THEN 0: ,Q10; )PQ11: ,Q11; )PQ12: ,Q12; )PQ13: ,Q13; )PQ14: ,Q14; )PQ15: ,Q15; )PQ16: ,Q16; )PQ17: ,Q17; )PQ18: ,Q18)BEGIN ,P(':Q29AY'); ,WAIT; ,ERASEPAGE; )END; &NEXT := PQ30; #END (*Q29*); PROCEDURE Q30; #BEGIN &QUESTIONS := QUE; )PQ19: ,Q19; )PQ20: ,Q20; )PQ21: ,Q21; )PQ22: ,Q22; )PQ23: ,Q23; )PQ24: ,Q24; )PQ25: ,Q25; )PQ26: ,Q26; )PQ27STIONS + 1; &P(':Q30|:AGR'); &ASKYN; &AT(11, 1); &IF KM('YES') THEN )CORRECT := CORRECT + 1; &P(':Q30A'); &WAIT; &ERASEP: ,Q27; )PQ28: ,Q28; )PQ29: ,Q29; )PQ30: ,Q30; )PQ31: ,Q31; )PQ32: ,Q32; &END; #UNTIL NEXT = LAST; #IF SCORING = ACTEÒ¤NEXTSTR ñؤP ѤNUM òؤI ѤWIDTH ѤTENS /ѤJ .ѤLEFT 2Ô¤CH 0Ò¤SP Ö¤MAXLL i ѤRANEOF ê Ô¤RANDOMSEr Ó¤KBD é Ö¤KBDCOPY k Ö¤ANSQ1 Ö¤NEXT …Õ¤RESBLK é ѤTEMP í Ö¤RESLINE k ѤRESLAB POT -ѤSUPPRESS1Ô¤AT óؤY ѤX ѤERASELINôؤERASEPAGõؤSTART öؤHI ѤLO ѤKM l Ö¤ANSQ5 3Ö¤ANSQ23 \Ö¤FOUND Ô¤SPCOUNT ì ѤROOM h ѤCRACKCOLg ѤQUESTIONѤBUFPTR ë Ѥ÷ؤS Ö¤PM øؤS Ö¤DM ùؤS Ö¤EM úؤS Ö¤P .ѤCOL -ѤOK /Ô¤MANYMATCûؤCOMPTYPEÕ¤FOUND Ô¤PMM üؤS Ö¤DMM ýؤS Ö¤KMM þؤS Ö¤PERFORM ÿؤS Ö¤REC ؤS1 ,Ö¤S2 Ö¤GETNUMBEؤI ѤDONE Ô¤SIGN ѤTOT ѤCRACK ؤSTART ѤRESTORE ؤRAN ؤRANGE ѤOPENUP ؤFN Ö¤TFILE ؤFN Ö¤ERR ]Ô¤SEEKLABEؤLAB Ö¤I /ѤLOWEO^R .ѤUPPER -ѤPROBE ,ѤINFILE ؤLOAD ؤLAB Ö¤LINE ѤNOFITS ؤFITS ؤJUSTFITSؤPRTRAW ؤýA¬‰BOL ѤNEWROOM ѤEOL ѤEOR ؤPRLAB ؤS Ö¤FOUND €Ô¤P ؤNAME Ö¤TEMP €Ö¤ASK ؤPROMPT Ö¤I €Ñ¤PRINTC ؤN ѤS Ö¤GOAHEAD �Ô¤WAIT ؤTRAP ؤASKYN ؤASKNUM ؤMAX  ѤTYPEIN ؤTXT Ö¤Q1 ؤQ2 ؤQ3 ؤQ4 ؤQ5 ؤQ6 ؤQ7 ؤQ8 ؤQ9 ؤQ10 !ؤQ11 "ؤQ12 #ؤQ13 $ؤQ14 %ؤQ15 &ؤQ16 'ؤQ17 (ؤQ18 )ؤQ19 RANOPEN êؤFNAME Ö¤RANREAD ëؤB ѤSEEK ìؤBLK ѤBYT ѤGETRANLIíؤP ѤL ѤZ *ؤQ20 +ؤQ21 ,ؤQ22 -ؤQ23 .ؤQ24 /ؤQ25 0ؤQ26 1ؤQ27 2ؤQ28 3ؤQ29 4ؤQ30 ѤSP ѤEX ѤBS ѤMIN îؤI ѤJ ѤMAX ïؤI ѤJ ѤUPPERCASðؤCHAR 5ؤQ31 6ؤQ32 7ؤCASEXXANéؤI ѤCASES j Ô¤TRIES ѤCORRECT ѤSCORING Ô¤KBDNUM ѤLABCOUNT†Ñ¤>   procedure Remove( Offset: PermRange; var PSeries: Series);   begin #with PSeries dO &if Element [ Offset ] then )begin ,Element [ Offset ] := False; ,Count := Count - 1; )end;  end { Remove };     procedure RandP(var Found: boolean; var Selection: PermRange;  var PSeries: Series);   var #Count : PermRange; #  begin #Found := ( PSeries.Count > 0 ); # #if Found then &begin )Selection := 0; )Count := Ran( Pseries.Count ); )while Count > 0 do ,begin /if PSeries.Element [ O^Selection + 1] then 2Count := Count - 1; /Selection := Selection + 1; ,end; )Remove(Selection, PSeries); &end;  end;   zA€˜   procedure NextP(var Found: boolean; var Selection: PermRange;  var PSeries: Series); #  begin #Found := ( PSeries.Count > 0 ); # #if Found then &begin )Selection := 1; )while not PSeries.Element [ Selection ] do ,Selection := Selection + 1; )Remove(Selection, PSeries); &end;  end;     procedure SetPerm( PSize: PermRange; var PSeries: Series);   var #I: integer; #  begin #for I := 1 to PSize do &PSeries.Element [I] := True; #PSeries.Count := PSize;  end { SetPerm };  ? 6A@TO^“@€`   const #StringSize = 250; #  type #LongString = String [StringSize]; #CharSet = Set of Char; #MatchType = (KMMatch, DMMatch, PMMatch);  var #KBD, #KBDCopy, #Temp : LongString; #CrackCol : 0..StringSize; #MaxLL, #Room : 0 .. 999; #Cases : boolean; #ResLine : integer; #ResLab : string [10]; #RandomSeed: real;    { Random I/O package declarations } const #BufSize = 512 ; #MaxBlock = 500 ; " var #RanBuf : packed array[1..BufSize] of Char ; #RanFil : File ; #ResBlk : -1..MaxBlock ; #RanEOF : boolean ; #BufPtr : 0..BufSize ; #SpCount : integer ; O^@  type #PermRange = 0 .. MaxPerm; #Series = record &Count : PermRange; &Element : packed array[ PermRange ] of boolean; #end { Series };   program MilTa ;   {$I LABD }  {$I RANIOD } { var } $Dir : file of DirRecord ; $Directory : array [0..LabMax] of DirRecord ; $Name, NameTxT : String ; $FrameName : IDK ; $Line : string [255] ; $DirIndex : 0..LabMax ; $ {$I RANIOS }  {$R+}  function Min(I, J : integer) : integer ; begin $if I < J then (Min := I $else (Min := J ;  end ; !  Function UpperCase(Character: Char) : Char;  begin $if Character in ['a'..'z'] then (UpperCase := Chr( Ord(Character) - Ord('a') + Ord('A') ) $elO^ºB²A d ; $Rewrite(Dir, Concat(Name, '.DIR') ) ; $if IOResult <> 0 then (WriteLn('?Can''t open output file?') ; $DirIndex := 0 ;  ; (end; end { MarkHeader }; procedure DoIt { Main processor }; var I : integer ; begin { DoIt } $Seek(0, 1) ; $repeat ($with Directory [0] do (begin -LabelName := 'AAAAAAAA' ; -Place.Block := 0 ; -Place.Byte := 0 ; (end ;  end { Intro }; GetHeader ; (if not RanEOF then ,begin 0MarkHeader ; 0Write(FrameName:9) ; 0if (DirIndex mod 8) = 0 then 4WriteLn; ,end ; {$I+} procedure QSort( L, R : integer ) { Sort directory entries }; var $I, J : integer ; $X : IDK ; $W : DirRecord ; ! $until RanEOF ; $WriteLn; $WriteLn(DirIndex, ' Texts processed.') ; $QSort( 1, DirIndex ) ; $for I := 0 to DirIndex do (b  begin $I := L ; $J := R ; $X := Directory [(I+J) div 2].LabelName ; ! $repeat (while Directory [I].LabelName < X do ,egin ,Dir^ := Directory [I] ; ,Put(Dir) ; (end ; $Close(Dir, Lock) ; $WriteLn('File ', Name, '.DIR created.') ; I := I + 1 ; (while X < Directory [J].LabelName do ,J := J - 1 ; (if I <= J then ,begin { Swap } 0W := Directory [I] ; 0DiEND { DoIt }; begin { Main } $Intro ; $DoIt ; end. rectory [I] := Directory [J] ; 0Directory [J] := W ; 0I := I + 1 ; 0J := J - 1 ,end { Swap } $until I > J ; $ $if L < J then (QSort(L, J) ; $if I < R then (QSort(I, R) (  end { QSort }; " !  procedure DrillHeader ; var I, J : integer ; begin $for I := 1 to LabLen do (if (I+1) <= Length(Line) then ,FrameName [I] := UpperCase( Line [I+1] ) (else ,FrameName [I] := ' ' ; end;  procedure GetHeader { Skip till a header or EOF };   var Stop : boolean;  begin { GetHeader } $repeat (GetRanLine(Line) ; (if RanEOF then ,Stop := True (else ,if Length(Line) = 0 then 0Stop := False ,else 0Stop := Line [1]se (UpperCase := Character;  end; procedure Intro { Setup initial conditions }; {$I-} begin { Intro } $Page(Output) ; $Wri = ':' ; $until Stop; ! $if not RanEOF then (DrillHeader ;  end { GetHeader };   procedure MarkHeader { Place frame inteLn ; $WriteLn(' ':20, 'MILTA - Create text directory') ; $WriteLn ; $Write('File name: ') ; $ReadLn( Name ) ; $NameTxT :=fo into directory }; begin { MarkHeader } $if DirIndex >= LabMax then (WriteLn('Directory overflow') ; $DirIndex := DirIndex  Concat( Name, '.TEXT' ) ; $if not RanOpen(NameTxt) then (begin -WriteLn('? ', NameTxt, ' Not found?') ; -Exit(MilTA) ; (en+ 1 ; $with Directory [DirIndex] do (begin ,Place.Block := ResBlk ; ,Place.Byte := BufPtr ; ,LabelName := FrameNameB pperCase := Chr( Ord(Character) + Ord('A') - Ord('a') ) $else (UpperCase := Character; end; function NextStr(var From, Dest : string) : boolean; var $P : integer;  begin $if From = '' $then (NextStr := False $else (begin ,NextStr := True; O^,P := Pos('|', From); ,if P > 0 ,then 0begin 4Dest := Copy(From, 1, P-1); 4Delete(From, 1, P); 0end ,else 0begin 4Dest™CßÛ := From; 4From := ''; 0end; (end;  end { NextStr };  procedure Num(I, Width: integer ; var Str : string); var &SP : string; &Tens, J, Pot: integer; &Ch: Char; &Left, Suppressing: boolean; begin %Str := ''; %Suppressing := True; %if I < 0 then )begin -I := Abs(I); -Str := '-'; )end; %if (I = 0) and (Str <> '') %then { Hardware special case } )Str := '-32768' %else )begin -Tens := 10000; -for Pot := 4 downto 0 do 1begin 5Ch := Chr(I div Tens + Ord('0')); 5if (Ch = '0') and (Pot > 0) and Suppressing 5then 9{ Surpress 0's } 5else { Format the char } 9begin =Suppressing := False; =Str := Concat(Str, ' '); =Str[ Length(Str) ] := Ch; =if Ch <> '0' then AI := I mod Tens 9end; 5Tens := Tens div 10; 1end; )end;  %Left := Width < 0; %Sp := Copy(' ', 01 , Width - Length(str) ); %if Left  { ,Some useful CAI routines -( Inspired by MIL ) +See MIL.DOC for information  } function Min(I, J : integer) : integer; %then )Str := Concat(Sp, Str) %else )Str := Concat(Str, Sp);  end { Num }; $ $ $ procedure At(Y, X : integer); begin $ifbegin $if I > J $then (Min := J $else (Min := I; end; function Max(I, J : integer) : integer; begin $if I > J $then  (X in [1..80]) and (Y in [1..24]) $then (begin ,GotoXY(X-1, Y-1); ,Room := MaxLL - X + 1; (end $else (WriteLn('Bad AT pa(Max := I $else (Max := J; end; function UpperCase(Character: Char) : Char; begin $if Character in ['a'..'z'] $then (Urameters'); end { AT }; procedure EraseLine;  begin $Write( Chr(29) );  end; procedure ErasePage;  begin C  Place : integer ; S : string) : boolean; begin (DMM := ManyMatch(Place, S, DMMatch); end; function KMM(var Place : integer 638429+31.41597; #RandomSeed := RandomSeed-Trunc(RandomSeed); #Ran := Trunc(RandomSeed*Range) + 1;  end { Ran };  ; S : string) : boolean; begin (KMM := ManyMatch(Place, S, KMMatch); end; procedure Perform(S: string);  begin  end { Peprocedure Tfile(FN : string) ; var $Fil : file of DirRecord ; $Err : boolean; $ $procedure OpenUp(FN : string); $begin *rform }; procedure Rec(S1, S2 : string); begin end; procedure GetNumber(var N: integer; var Found: boolean); var $Done: Close(Fil) ; *{$I-} *Reset(Fil, Concat(FN, '.DIR')) ; *{$I+} *Err := IOResult <> 0; *Err := Err or not RanOpen(Concat(FN, '%Page(Output); %At(1,1);  end; procedure Start; var $Hi, Lo : integer; $ begin $Cases := False; $MaxLL := 80; $Cracboolean; $I, Tot, Sign: integer; #begin &Found := False; &Sign := + 1; &Tot := 0; &if Length(KBD) > 0 &then *begin .DkCol := 0; $Time( Hi, Lo ); $RandomSeed := Abs(Lo) mod 500 { Set random seed }; $ResLab := ''; $ErasePage; end; functioone := False; .I := 0; .while (I < Length(KBD)) and not Done do .begin 2I := I + 1; 2Done := KBD[I] in ['0' .. '9', '-', '+n KM(S : string): boolean; begin $KM := Pos(S, KBD) > 0 ; end; function PM(S : string): boolean; begin $PM := Pos(S, KBD) =']; .end;  .if KBD[I] = '+' .then 2I := I + 1 .else 2if KBD[I] = '-' 6then :begin >I := I + 1; >Sign := - 1;  1 ; end; function DM(S : string) : boolean ; begin (DM := S = KBD ; end; function EM(S : string) : boolean; var %P, :end;  .Done := False; .while (I <= Length(KBD)) and not Done do .begin 2if KBD[I] in ['0' .. '9'] 2then 6begin :Tot :Col : integer; %OK : boolean; begin $OK := True; $Col := 1; $while NextStr(S, Temp) and OK do (begin ,P := Pos(Temp, KBD);= Tot * 10 + Ord(KBD [I]) - Ord('0'); :I := I + 1; :Found := True; 6end 2else 6Done := True; .end; *end; &N := Tot * Sig ,OK := P >= Col; ,Col := P + Length(Temp) ; (end; $EM := OK; end { EM }; function ManyMatch(var Place : integer ; var S :n; #end { Number }; #procedure Crack( ChS : CharSet ; var Found : boolean ); %var *Start : integer; #begin { Crack } string ; 3CompType : MatchType) : boolean ; var (Found : boolean; begin (Found := False; (Place := 0; (while NextStr(S, (if CrackCol <= Length(KBDCopy) (then ,begin 0Start := CrackCol; 0while ( CrackCol < Length(KBDCopy) ) and 6not ( KBDCop Temp) and not Found do ,begin 0Place := Place + 1; 0case CompType of 5KMMatch : Found := KM(Temp); y[CrackCol] in ChS ) do 4CrackCol := Succ( CrackCol ); 4Found := True; 4KBD := Copy(KBDCopy, Start, CrackCol - Start + 1); 5DMMatch : Found := DM(Temp); 5PMMatch : Found := PM(Temp); 0end { case }; ,end; (ManyMatch := Found; end { ManyMatch }; 5CrackCol := Succ( CrackCol ); ,end (else ,begin 0Found := False; 0KBD := ''; ,end; #end { Crack }; procedure Restore; function PMM(var Place : integer ; S : string) : boolean; begin (PMM := ManyMatch(place, S, PMMatch); end; function DMM(var begin (KBD := KBDCopy; (CrackCol := 1; end; function Ran( Range: integer) : integer;  begin #RandomSeed := RandomSeed*49.D n ,begin 0with LabelDict[Probe].Place do 4Seek(Block, Byte) ; ,end; end ; procedure Load(Lab : string ; var Str : LongStri Room - Length(S) + BOL - 1; 1if NewRoom < 0 1then 5NoFits 1else 5if NewRoom = 0 5then 9JustFits 5else 9Fits; -end; )ng ; Line : integer /; var Found : boolean); $function InFile : boolean; $begin )InFile := RanEOF; )if not RanEOF (then end;  end { PrtRaw }; #procedure PrLab(var Name : string); #var 'S : LongString ; 'Found : boolean; ,if Length(Str) > 0 0then 4InFile := Str[1] <> ':' ; $end; begin (Str := '? NOT FOUND ?'; (if (Lab <> ResLab) or (Line 'function EOR: boolean; (begin +EOR := RanEOF; +if not RanEOF +then .if Length(S) > 0 .then 2EOR := (S[1] = ':'); (end < ResLine) (then ,begin 0SeekLabel(Lab, Found); 0if Found 0then 4begin 8ResLab := Lab; 8ResLine := 0; 4end; ,end (els{ EOR }; $begin { PrLab } &SeekLabel(Name, Found); &if Found &then *begin .GetRanLine(S); .while not EOR do .begin e ,Found := True; (if Found (then ,begin 0while (Line > ResLine) and InFile do 4begin 8GetRanLine(Str); 8ResLine := Re2if Length(S) > 0 2then 3if S[1] <> '*' 3then 7begin =while (Length(S) > 1) and (S[Length(S)] = ' ') do >Delete(S, Length(sLine + 1; 4end; 0Found := InFile; ,end; end { Load }; procedure P(Name: LongString); var $Temp : LongString; #proS), 1); =if S = ' ' =then ?S := ''; =PrtRaw(S); 7end; 2GetRanLine(S); .end; *end (else ,begin 0WriteLn; 0WriteLn(Nam.TEXT')); $end; # # begin { Tfile } $OpenUp(FN); $if Err then &OpenUp(Concat('#5:', FN)); $if Err then 'WriteLn(FN, ' nocedure PrtRaw(var S : LongString); #var 'BOL, EOL, NewRoom: integer; &procedure NoFits; &begin t found!') $else $begin *LabCount := 0 ; & *while not EOF(Fil) do ,begin 0LabelDict [ LabCount ] := Fil^ ; 0LabCount :=,EOL := BOL + Room - 1; , ,{Look for end of last word} ,while (EOL > BOL) and (S[EOL] <> ' ') do /EOL := EOL - 1; ,if EOL LabCount + 1 ; 0Get(Fil) ; ,end ; end;  end { Tfile }; procedure SeekLabel( Lab : string; var Found : boolean ) ;  > BOL ,then /begin 2Write( Copy(S, BOL, EOL-BOL) ); 2BOL := EOL + 1; /end; ,WriteLn; ,Room := MaxLL; &end { NoFits };  var $Lower, Upper, Probe : LabelRange ; $I : integer; $InLab : IDK ; begin $Lower := 1 ; $Upper := LabCount ; $Found := &procedure Fits; &begin +Write( Copy(S, BOL, Length(S) - BOL+1) ); +Room := NewRoom; +BOL := Length(S); &end { Fits };  False ; $InLab := ' '; $for I := 1 to Min(Length(Lab)-1,LabLen) do (InLab[I] := UpperCase( Lab[I+1] ) ; $repeat ( &procedure JustFits; &begin +WriteLn( Copy(S, BOL, Length(S) - BOL) ); +Room := MaxLL ; +BOL := Length(S); &end; begiProbe := Trunc( (Lower+Upper) div 2 ) ; (with LabelDict[Probe] do (if InLab < LabelName ,then 0Upper := Probe - 1 ,else n { PrtRaw } %if Length(S) > 0 %then )begin -S := Concat(S, ' '); -if S[1] = '/' -then 1begin 5WriteLn; 5Room := MaxLL0if InLab > LabelName 4then 8Lower := Probe + 1 4else 8Found := True ; $until Found or (Upper < Lower) ; $if Found (the; 1end;  -if S[1] in ['/', ' ', '&'] -then 1BOL := 2 -else 1BOL := 1;  -while BOL < Length(S) do -begin 1NewRoom :=E begin %repeat )N := N - 1; )GoAhead := NextStr(S, Temp) and (N>0); %until not GoAhead; %P(Temp); end { PrintC }; procedure Wait; begin &At(24, 10); &Ask('Please press RETURN to continue.');  end { Wait };  const &LabMax = 350 ; LabLen = 8 ;  type %Marker = record 4Block : 0..1000 ; 4Byte : 0..512 ; 0end ; %IDK = packed array[1..LabLen] of char ;  %DirRecord = Record 5LabelName : IDK ; 5Place : Marker ; 1end ; %LabelRange = 0..LabMax ; var $LabCount : LabelRange ; $LabelDict : array [LabelRange] of DirRecord ; O^e, ' - labeled text not found.'); ,end; #end { PrLab }; begin { P } %while NextStr(Name, Temp) do (if Temp[1] = ':' ,the8AÀ£n 0PrLab(Temp) ,else 0PrtRaw(Temp); end { P }; procedure Trap; forward; procedure Ask(Prompt : LongString); var I : integer; begin 'P(Prompt); 'ReadLn(KBD); 'if not Cases (then ,for I := 1 to Length(KBD) do 0KBD[I] := UpperCase(KBD[I]); 'KBDCopy := KBD; 'CrackCol := 1; 'Trap; end; procedure PrintC(N: integer; S: LongString); var %GoAhead : boolean; F Blk := Blk ; $BufPtr := Byt ; end { Seek }; {$G+}  {$R-} procedure GetRanLine(var X : string ) { Read line from random file O^};  label (1,2,3,4,5 ; const (CR = 13 ; Eat = 16 ; var (P, L, Z, EX, SP, BS : integer ;  begin $BS := 1 ;  1: L := OB¾BufSize - BufPtr + 1 { Chars left in line }; $P := Scan(L, = Chr(CR), RanBuf [BufPtr]) { Look for eol }; $if P < L then goto 3 { If full line gotten }; ( (if RanBuf [BufPtr] = Chr(0) then L := 0 { If trailing nulls }; (MoveLeft(RanBuf [BufPtr], X[1], L) { Copy first part of line }; (BS := L + 1 ; (Seek(ResBlk+1, 1) ; (if RanEOF then goto 5 ; (goto 1 { For maximum speed, if not clarity! }; $  3: MoveLeft(RanBuf [BufPtr], X[BS], P) { Move rest of line }; $if ( BufPtr+ P ) < BufSize $ then )BufPtr := BufPtr + P + 1 %else )begin -BufPtr := BufSize ; -RanBuf [BufPtr] := Chr(0) ; )end { Update line base }; $P := P + BS - 1 ; $  2: EX := Scan(P, = Chr(Eat), X[1]) { Check for space eater character }; $ $if EX >= P then goto 4 { If no eaters }; , (SP := EX + 3 ; (L := Ord(X[EX+2])-34 ; (if L > 0 then ,MoveRight(X[SP], X[SP { Random read routines } function RanOpen(FName : string) : boolean ; { Attempt to open random file } {$I-} begin { RanOpen }+L], P-SP+1) { lengthen } (else ,MoveLeft(X[SP], X[SP+L], P-SP+1) { shorten }; ( (if L > -2 then FillChar(X[EX+1], L+2, ' ' $Close(RanFil) ; $Reset(RanFil, FName) ; $RanOpen := IOResult = 0 ; $ResBlk := -1 ; $RanEOF := True ; $SpCount := 0 ; end) { space fill }; (P := P + L ; (goto 2 { For speed only!! };  4: begin $X[0] := Chr(P);  {$R+}  end;   5: { GetRan { RanOpen }; {$I+ } procedure RanRead(B : integer) { Read block B }; begin $RanEOF := BlockRead(RanFil, RanBuf, 1, B+2) < 1Line }  end; {$G-}   end ;  procedure Seek( Blk, Byt : integer ) { Position at Blk, Byt }; begin $if ResBlk <> Blk then $RanRead(Blk) ; $ResG ƒ�¥‰jÌÆ¥’ÿPÍÆ¦.DIRTÍÆÍÕƒ°ž"Ë¡*ՃͶ¦?Can't open output file?ͶÍÕƒ÷Ç^ˆ«“¬Õ„¥ŠœÇ^ˆ¤ÌÕ„Õ„+ئAAAA BEGIN QUESTIONS := QUESTIONS + 1; P(':Q31|:AGR'); ASKYN; AT(7, 1); IF KM('NO') THEN COAAAAЩÕ„CØ¢Ç舚ՄXØ¢ LjšÕ„jÕ„r­@VžÕ… ÙÌÕ…ØÌÕ…"Æ¥ŠœÛÚ‚†Ç^ˆ¤©Õ…VÕ…^¥ŠœÛÇ^ˆ¤Æµ ¡ Õ…�ۂ̹öÕ…”Æ¥ŠœRRECT := CORRECT + 1; P(':Q31A'); WAIT; ERASEPAGE; NEXT := PQ32; END (*Q31*); PROCEDURE Q32;  MILTA ÚÇ^ˆ¤µ ¡ Õ…·Ú•̹ôÕ…ÇÛÚÈ¡RÕ…ÛÕ…èÆ ¥ŠœÛÇ^ˆ¤¨Õ†¥ŠœÛÇ^ˆ¤¥ŠœÚÇ^ˆ¤¨Õ†*¥ŠœÚÇ^ˆ¤Æ ¨Õ†9Û‚ÌÕ†HÚ•ÌÛÚÅ¡òÕ†xÙÚɡՆ §‰g¡öÕ‹¶ÍžÕ‹&¶§“¬Í ž¶¦ Texts processed.Íž¶‹ÙÚÏ Õ†˜ÛØÉ¡Õ†«ÛØÏ ­½�¾ î Õ‡ÌÌÙÚÈ¡?Õ‡ Ù‚¥“,¾È¡Õ‡G¥“(Ùˆ•‚¥“,Ù‚›¾Ï¿¹Õ‡z¥“(Ùˆ•‚ ¿Ù‚̹öÕ‡‹­IÍžÕ‹O§“¬Ï Õ‹f̧“¬ÌØÙÈ¡*Õ‹„ՋЧ‰j¥ŠœØÇ^ˆ¤¨Õ‹¤¥‰jžžÕ‹±Ø‚̹ôÕ‹»¥‰jÍžÕ‹Ò¶¦File Íž¶¥’ÿÍž¶¦ .DIR crZ Õ‡ýÕˆ ¥“,ÏÕˆ§‰g¡Õˆ,̹ Õˆ@¥“,¾Ã¡Õˆ]̹ Õˆt¥“,›¾:ÃÌÕˆ�Ø¡öÕˆž§‰g“¡Õˆ¼Ï ՈĭQ\ Õ‰.§“¬Ç^Ä¡(Õ‰P¶¦Directoreated.Íž¶ÍžÕŒ­?€ . ƉjÆŠ–ÍƉ>ÆŠjÇÿÿÍÕŒ&ÎÕŒ/Î ÕŒ5ƉjÍƉ>ÍÁ§T':@tjʾb ÈH„¬y overflowÍž¶ÍžÕ‰s§“¬‚Ç^ˆ«“¬Õ‰Œ¥Šœ§“¬Ç^ˆ¤ÌÕ‰¬Õ‰¼Ø¢§‰fÇèˆšÕ‰ÖØ¢ §‰hLjšÕ‰óØ¥“(©ÕŠÕŠ ­Ž ÕŠlÏÕŠ}ÆÚªPÕ€ˆ¥‰>ÍÕ€š¥‰>ÆÍÕ€µž"ÃÌՀБÇÿÿÇôˆ«‰fՀ᫉gÕ€õ«‰iÕ�­RNÕ�W¥‰>¥ˆ>؂͞ɫ‰g­"Õ�Õ§‰fÙËÕŠ‰Ï ÕŠ�§‰g“¡2ÕŠ¨ÕŠµÏ ÕŠ¿¶¥“( ÍžÕŠÓ§“¬ŽÃ¡ ÕŠ÷¶ÍžÕŠþÕ‹§‰g¡öÕ‹¶ÍžÕ‹&¶§“¬Í ž¶¦ Texts processed.Íž¶¡Õ�óÙÏÕ‚ÙÇÿÿÇôˆ«‰fÕ‚ØÇˆ«‰hÕ‚"­6Õ‚íÌÕ‚üǧ‰h•‚ÌÕƒ0Ý ¥ˆ>§‰h•‚ž ÌÕƒnÞÝɡՃ~¹NÕƒ¢¥ˆ>§‰h•‚¾Ã¡ÕƒÂÌÕ„ÍžÕ‹O§“¬Ï Õ‹f̧“¬ÌØÙÈ¡*Õ‹„ՋЧ‰j¥ŠœØÇ^ˆ¤¨Õ‹¤¥‰jžžÕ‹±Ø‚̹ôÕ‹»¥‰jÍžÕ‹Ò¶¦File Íž¶¥’ÿÍž¶¦ .DIR cr ¥ˆ>§‰h•‚؂ݞՄGÝ‚ÌÕ„Y§‰f‚ÏÕ„m§‰g¡Õ„~¹òÕ„‰¹öÕ„Æ¥ˆ>§‰h•‚ØÙ‚ÞžÕ„þ§‰hÞ‚ÇɡՅ'§‰hÞ‚‚«‰h¹Õ…HÕ…QÇ«‰hÕ…g¥ˆ>§‰h•‚¿Õ…eated.Íž¶ÍžÕŒ­?€ . ƉjÆŠ–ÍƉ>ÆŠjÇÿÿÍÕŒ&ÎÕŒ/Î ÕŒ5ƉjÍƉ>ÍÁ§T':@tjʾb ÈH„¬‚Õ…�ÞÙ‚•ÌÕ…¹ÞØ‚ž ÌÕ†ÛÞġՆ¹gÕ†3Û‚ÌÕ†CØÛ‚‚¾"•ÌÕ†]ÝšՆtØÚ‚ØÚÝ‚‚ÞÚ•‚ž¹Õ†«ØÚ‚ØÚÝ‚‚ÞÚ•‚žÕ†ÙݑšՆîØÛ‚‚Ý‚ ž  overflowÍž¶ÍžÕ‰s§“¬‚Ç^ˆ«“¬Õ‰Œ¥Šœ§“¬Ç^ˆ¤ÌÕ‰¬Õ‰¼Ø¢§‰fÇèˆšÕ‰ÖØ¢ §‰hLjšÕ‰óØ¥“(©ÕŠÕŠ ­Ž ÕŠlÏÕŠ}Õ‡ÞÝ‚ÌÕ‡(¹ôÕ‡MÕ‡Q؂޿ՇmÕ‡Œ­—l  zÕ�3ÛÚÉ¡Õ�DÛ̹Õ�VÚÌÕ�c­ˆ"Õ�£Ú³ÿþÿ‹¡ Õ�ÌÚa•A‚̹ՂÚÕŠ‰Ï ÕŠ�§‰g“¡2ÕŠ¨ÕŠµÏ ÕŠ¿¶¥“( ÍžÕŠÓ§“¬ŽÃ¡ ÕŠ÷¶ÍžÕŠþÕ‹§‰g¡öÕ‹¶ÍžÕ‹&¶§“¬Í ž¶¦ Texts processed.Íž¶ÌÕ‚"­ƒ8Õ‚p¶ ÍÕ‚„¶ÍÕ‚�¶ Ͷ¦MILTA - Create text directoryͶÍՂŶÍՂ϶¦ File name: ÍÕ‚éÍžÕ‹O§“¬Ï Õ‹f̧“¬ÌØÙÈ¡*Õ‹„ՋЧ‰j¥ŠœØÇ^ˆ¤¨Õ‹¤¥‰jžžÕ‹±Ø‚̹ôÕ‹»¥‰jÍžÕ‹Ò¶¦File Íž¶¥’ÿÍž¶¦ .DIR cr¶¥’ÿPͶÍÕ‚ý¥’ÖÌÆ¥’ÿPÍÆ¦.TEXTUÍÆªPÕƒ¥’ÖÏ“¡?ÕƒAÕƒK¶¦? Ͷ¥’ÖͶ¦ Not found?ͶÍÕƒržÕƒ�Õeated.Íž¶ÍžÕŒ­?€ . ƉjÆŠ–ÍƉ>ÆŠjÇÿÿÍÕŒ&ÎÕŒ/Î ÕŒ5ƉjÍƉ>ÍÁ§T':@tjʾb ÈH„¬H YN; SCORING := KM('YES'); END; NEXT := PQ1; FOR I := 1 TO (KBDNUM - 1) DO NEXT := SUCC(NEXT); ERASEPAGE; REPEAT CASE NEXT OF PQ1: Q1; PQ2: Q2; PQ3: Q3; #END {ALTERNATEMULTIPLECHOICE}; # # #PROCEDURE MULTIPLECHOICE( NEWCHOICES, NEWANSWERS: CHOICESET; NOTE: STRING); #BEGIN &F PQ4: Q4; PQ5: Q5; PQ6: Q6; PQ7: Q7; PORMAT := CHOOSE; &EXPLANATION := NOTE; &CHOICES := CHOICES + NEWCHOICES; &ANSWERS := NEWANSWERS; #END {MULTIPLECHOICE}; # Q8: Q8; PQ9: Q9; PQ10: Q10; PQ11: Q11; PQ12:# #PROCEDURE SUBSTITUTION ( ANSWER, ALTERNATEANSWER, NOTE: STRING); #BEGIN &FORMAT := REPLACE; &SAVE( ANSWER ); &SAVE( ALTE Q12; PQ13: Q13; PQ14: Q14; PQ15: Q15; PQ16:RNATEANSWER ); &SAVE( NOTE ); &SUBCALLED := SUBCALLED + 1 ; &SUBLINES [SUBCALLED] := 0; #END {SUBSTITUTION}; & & #PROCEDU BEGIN TRIES := 0; QUESTIONS := QUESTIONS + 1; P(':Q32'); ASKNUM(KBDNUM, 2); AT(8, 1); IF KB Q16; PQ17: Q17; PQ18: Q18; PQ19: Q19; DNUM = 2 THEN BEGIN CORRECT := CORRECT + 1; P(':COR'); END ELSE B PQ20: Q20; PQ21: Q21; PQ22: Q22; PQ23: Q23; EGIN P(':WR'); END; P(':Q32A'); WAIT; ERASEPAGE; NEXT := LAST; END (*Q32*); BE PQ24: Q24; PQ25: Q25; PQ26: Q26; PQ27: Q27; GIN (*CASES*) START; ANSQ1 := ''; ANSQ5 := ''; ANSQ23 := ''; QUESTIONS := 0; CORRECT := 0; SCORING := FALSE PQ28: Q28; PQ29: Q29; PQ30: Q30; PQ31: Q31; ; TFILE('CASET'); ERASEPAGE; P(':I1'); AT(23, 1); ASK(''); GETNUMBER(KBDNUM, FOUND); IF NOT FOUND THEN  PQ32: Q32; END; UNTIL NEXT = LAST; IF SCORING THEN BEGIN P('/'); WRITE( BEGIN KBDNUM := 1; ERASEPAGE; P(':I2'); WAIT; ERASEPAGE; P(':HO'); 'You answered ', CORRECT, ' questions correctly. '); WRITELN('(', 100 * CORRECT DIV QUESTIONS, '% correct)'); EN ASKYN; IF KM('NO') THEN BEGIN AT(8, 1); P(':HO1'); D; P(':BYE'); WAIT; ERASEPAGE; END (*CASES*).  WAIT; ERASEPAGE; END ELSE ERASEPAGE; P(':WANTSCO'); ASKI ; # # #PROCEDURE CI3X2; #BEGIN &NUM(F2, 0, TEMPSTRING); &P(CONCAT(':CI32', TEMPSTRING)); &CASE F2 OF )1:; )2: ,BEGIN ious object'); ) )ALTERNATEMULTIPLECHOICE( [1,2,3,9], [3], ':335EXP'); &END {CI3X3X5}; & &PROCEDURE CI3X3X6; &BEGIN )OBJE/OBJECTION( PROSECUTION ); /MULTIPLECHOICE([1,2,3,9], [1], ':322EXP'); ,END; )3: ,BEGIN /OBJECTION( PROSECUTION ); /MULTIPCTION( PROSECUTION ); )SUBSTITUTION('SHOULD HAVE KNOWN', 'HE SHOULD HAVE KNOWN', )'336MES1'); )L('KNEW', 'knew'); LECHOICE([1,2,9], [9], ':323EXP'); ,END; )4:; )5: ,BEGIN /OBJECTION( PROSECUTION ); /MULTIPLECHOICE( [1, 2, 3, 9], [1], ')L('KNOW', 'knew'); )L('HOPE', 'hope'); )L('PRACT', 'believed it was practically certain'); )L('OBJECT', 'had the objective':325EXP'); ,END; )6: ,BEGIN /OBJECTION( PROSECUTION ); /MULTIPLECHOICE( [1,2,3,4,9], [1], ':326EXP'); ,END; &END {CASE}; ); )L('DESIRE', 'desired'); ) )ALTERNATEMULTIPLECHOICE( [1,2,3,9], [3], ':336EXP'); &END {CI3X3X6}; & #BEGIN &IF F3 <> 0 #END {CI3X2}; # # #PROCEDURE CI3X3; # &PROCEDURE CI3X3X4; &BEGIN )OBJECTION( PROSECUTION ); )SUBSTITUTION('IT WAS OBVIOTHEN )BEGIN ,NUM(F3, 0, TEMPSTRING); ,P(CONCAT(':CI33', TEMPSTRING)); )END; &CASE F3 OF )0, 1:; )2: ,BEGIN /OBJECTION( US', 'WAS OBVIOUS', ':334MES1'); )L('KNOW', 'he knew'); )L('KNEW', 'he knew'); )L('HOPE', 'he hoped'); )L('PURPOSE', 'it wasPROSECUTION ); /DELETION( 'PROBABLY', ':332EXP1'); / /ALTERNATEMULTIPLECHOICE( [1,2,3,7,9], [7], ':332EXP'); ,END; )3: ,BE his purpose'); )L('OBJECT', 'it was his conscious object'); )L('DESIRE', 'he desired'); GIN /OBJECTION( PROSECUTION ); /MULTIPLECHOICE( [1,2,3,4,9], [9], ':333EXP'); ,END; )4: ,CI3X3X4; )5: ,CI3X3X5; )6: ,CI)L('PRACT', 'he believed it was practically certain'); * )SUBSTITUTION('OBVIOUS', '', ''); )L('PURPOSE', 'his purpose'); )L3X3X6; )7, 8, 9, 10, 11:; )12: ,BEGIN /OBJECTION( DEFENSE ); /DELETION('BEYOND ANY DOUBT', ':3312EXP'); / /ALTERNATEMULTIRE DELETION( WORD, NOTE: STRING); #BEGIN &FORMAT := DELETETEXT; &SAVE( WORD ); &SAVE( NOTE ); #END {DELETION}; # # #PROC('DESIRE', 'his desire'); )L('HOPE', 'his hope'); )L('OBJECT', 'his conscious object'); ) )ALTERNATEMULTIPLECHOICE( [1,2,3,9EDURE SPECIALDELETION( FIRSTWORD, LASTWORD, NOTE: STRING); #BEGIN &FORMAT := DELETESPECIAL; &SAVE( FIRSTWORD ); &SAVE( LASTW], [3], ':334EXP'); &END {CI3X3X4}; & &PROCEDURE CI3X3X5; &BEGIN )OBJECTION( PROSECUTION ); )SUBSTITUTION('IT WAS CLEAR', ORD ); &SAVE( NOTE ); #END {SPECIALDELETION}; # # #PROCEDURE CI3X1; #BEGIN &NUM(F1, 0, TEMPSTRING); &P(CONCAT(':CI31', T'WAS CLEAR', ':335MES1'); )L('KNEW', 'he knew'); )L('PRACT', 'he believed it was practically certain'); )L('KNOW', 'he knew')EMPSTRING)); &CASE F1 OF )1, 2, 3, 4 :; )5: ,BEGIN /IF F3 <> 1 THEN 2BEGIN 5OBJECTION( DEFENSE ); ; )L('HOPE', 'he hoped'); )L('PURPOSE', 'it was his purpose'); )L('OBJECT', 'it was his conscious object'); ) )SUBSTITUTION5DELETION('ONLY', ':C315EX1'); 2END; /ALTERNATEMULTIPLECHOICE( [1,2,5,9], [5], ':315EXP'); ,END; &END {CASE}; #END {CI3X1}('CLEAR', '', ''); )L('DESIRE', 'his desire'); )L('HOPE', 'his hope'); )L('PURPOSE', 'his purpose'); )L('OBJECT', 'his conscJ /OBJECTION( PROSECUTION ); /DELETION( 'OR THAT HIS KICK WOULD CAUSE SEVERE INJURY', /':342EXP'); ,END; )3: ,BEGIN /OBJECT[I] )ELSE ,BEGIN /OK := TRUE; /WRONG; /ANSPTR := 1; /P(':WORDSB1'); /P(KBD); /P(':WORDSB2'); /P(S [ANSPTR]); /P(':WORDION( PROSECUTION ); /SPECIALDELETION('OR', 'BURGLARY', ':343EXP'); / /ALTERNATEMULTIPLECHOICE( [1,2,3,4,9], [2,4], ':343EXP')SB3'); /P(S [ANSPTR]); /P(':WORDSB4'); ,END {IF}; &END {WRONGDELETION}; & & &PROCEDURE TRYINSERTION; & &VAR )J: INTEGE; ,END; &END {CASE}; #END {CI3X4};    BEGIN #CI3X1; #CI3X2; #CI3X3; #CI3X4;  END {SETUPPROBLEM}; ) ) )  PROCEDUR; )LIMIT: INTEGER; & &BEGIN )OK := FALSE; )ASKCR(''); )J := ANSPTR + 1; )LIMIT := ANSPTR + SUBLINES [I] + 2; )REPEAT RE CUREDEFECTS;  #PROCEDURE DOWORDDELETION; #BEGIN &ASKCR(':WORDEL'); &ERASEPAGE; &IF KM(S [1]) THEN )BEGIN ,CORRECT; ,J := J + 2; )UNTIL (J > LIMIT) OR KM(S [J]); ) )IF J < LIMIT THEN ,BEGIN /OK := TRUE; /CORRECT; /P(':WORDSB1'); /P(S [,P('/Correct. '); )END &ELSE )BEGIN ,WRONG; ,P(CONCAT('/"', KBD)); ,ASKCR(':WORDEL1'); ,ERASEPAGE; ,IF KM(S [1]) THEN J + 1]); /P(':WORDSB6'); /P( EXPLANATION ); /P(':WORDSB7'); /WAIT; /ERASEPAGE; ,END )ELSE ,WRONG; &END {TRYINSERTION}; /BEGIN 2CORRECT; 2P('/Correct. '); /END ,ELSE /BEGIN 2WRONG; 2P(':WORDEL2'); 2P( CONCAT(' ', S [1], '."')); /END {IF};# # #BEGIN &OK := FALSE; &ANSPTR := 1; &I := 0; &ASKCR(':WORDSUB'); &ERASEPAGE; &REPEAT )I := I + 1; )IF LENGTH(S [AN )END {IF}; &P(S [2]); &WAIT; &ERASEPAGE; #END {DOWORDDELETION}; # # # #PROCEDURE DOSPECIALWORDDELETION; #BEGIN &ASKCSPTR]) >= LENGTH(S [ANSPTR+1]) THEN ,IF KM(S [ANSPTR]) THEN /CORRECTDELETION ,ELSE /IF S [ANSPTR+1] <> '' THEN 2IF KM(S [ANR(':WORDEL'); &ERASEPAGE; &IF EM(CONCAT(S [1], '|', S [2])) THEN )BEGIN ,CORRECT; ,P('/Correct. '); )END &ELSE )BEGIN SPTR+1]) THEN 5BEGIN 8P(S [ANSPTR+2]); 8WAIT; 8CORRECTDELETION; 5END 2ELSE 5WRONGDELETION )ELSE ,IF KM(S [ANSPTR+1]) TH,WRONG; ,P(CONCAT('/"', KBD)); ,ASKCR(':WORDEL1'); ,ERASEPAGE; ,IF EM(CONCAT(S [1], '|', S [2])) THEN /BEGIN 2CORRECT; 2EN /BEGIN 2P( S[ANSPTR+2]); 2WAIT; 2CORRECTDELETION; /END ,ELSE /IF KM(S [ANSPTR]) THEN 2CORRECTDELETION /ELSE 2WRONGDP('/Correct. '); /END ,ELSE /BEGIN 2WRONG; 2P(':WORDEL2'); 2P( CONCAT(' ', S [1], S[2], '."')); /END {IF}; )END {IF}; ELETION; &UNTIL OK; & & &TRYINSERTION; &IF NOT OK THEN )BEGIN ,P(':WORDSB1'); ,P(KBD); ,P(':WORDSB8'); ,TRYINSERTION; &P(S [3]); &WAIT; &ERASEPAGE; #END {DOSPECIALWORDDELETION}; &   #PROCEDURE DOWORDSUBSTITUTION; # #VAR &OK: BOOLEAN; ,IF NOT OK THEN /BEGIN 2P(':NOREC'); 2P(':WORDSB9'); 2P( EXPLANATION ); 2P(':WRDSB10'); 2P(S [ANSPTR]); PLECHOICE( [1,2,3,9], [3], ':336EXP'); ,END; &END { CASE }; #END {CI3X3}; # # #PROCEDURE CI3X4; #BEGIN &IF F4 <> 0 THEN &I: INTEGER; &ANSPTR: INTEGER; # # &PROCEDURE CORRECTDELETION; &BEGIN )OK := TRUE; )CORRECT; )ERASEPAGE; )P(':WORDSB0')BEGIN ,NUM(F4, 0, TEMPSTRING); ,P(CONCAT(':CI34', TEMPSTRING)); )END; &CASE F4 OF )0, 1:; )2: ,BEGIN ); &END {CORRECTDELETION};   &PROCEDURE WRONGDELETION; &BEGIN )IF I < SUBCALLED THEN ,ANSPTR := ANSPTR + 3 + SUBLINES K |', TEMPSTRING)); /END ,ELSE /IF (I IN ANSWERS) AND NOT (I IN KBDANSWERS) THEN 2BEGIN 5WRONG; 5P(CONCAT('/|:MULTWG1|', TEM{WDF}. 2 2 2P(':WRDSB11'); 2P(S [ANSPTR + 4]); 2P(':WRDSB12'); 2WAIT; 2ERASEPAGE; /END; )END; #END {DOWORDSUBSTITUTION}; , # #PRPSTRING)); 2END /ELSE 2IF (I IN KBDANSWERS) AND NOT (I IN ANSWERS) THEN 5BEGIN 8WRONG; 8P(CONCAT('/|:MULTWG2|', TEMPSTRINGOCEDURE DOMULTIPLECHOICE; # #VAR ©ANSWERS: CHOICESET; &KBDANSWERS: CHOICESET; &PERM: SERIES; &CARD: CHOICERANGE { card)); 5END; )END {FOR}; &WAIT; #END {DOMULTIPLECHOICE}; # #  BEGIN #IF DEFECTS > 1 THEN &FORMAT := CHOOSE; # #CASE FORMinality of set choices }; &I: CHOICERANGE; &FOUND: BOOLEAN; &COMPLETELYWRONG: BOOLEAN; # # &PROCEDURE PROCESSSETELEMENT; AT OF &CHOOSE: )DOMULTIPLECHOICE; &REPLACE: )DOWORDSUBSTITUTION; &DELETETEXT: )DOWORDDELETION; &DELETESPECIAL: &BEGIN )IF I IN CHOICES THEN ,BEGIN /CARD := CARD + 1; /IF I IN COPYANSWERS THEN 2ANSWERS := ANSWERS + [CARD]; /NUM(CARD, )DOSPECIALWORDDELETION; #END {CASE};  END {CUREDEFECT}; ) )  BEGIN #START; #TFILE('WDFT'); #INITILIZE; #REPEAT &REWIN0, TEMPSTRING); /P(CONCAT('/', TEMPSTRING, '. ')); /NUM(I, 0, TEMPSTRING); /P(CONCAT(':MULT', TEMPSTRING)); ,END {IF}; &END; &REPEAT )SELECTFRAGMENTS; &UNTIL NOT PICKED [F1, F2, F3, F4]; & &PICKED [F1, F2, F3, F4] := TRUE; &SETUPPROBLEM; # &AD {PROCESSSETELEMENT}; & #BEGIN ©ANSWERS := ANSWERS; &ANSWERS := []; &SETPERM(MAXCHOICES - 1, PERM); &RANDP(FOUND, I, SKCR('/Is the foregoing objectionable?'); &ERASEPAGE; &IF KM('Y') = ( PROSECUTION OR DEFENSE ) THEN )BEGIN ,CORRECT; ,P('/CPERM); &CARD := 0; &WHILE FOUND DO )BEGIN ,PROCESSSETELEMENT; ,RANDP(FOUND, I, PERM); )END {WHILE}; ) &I := MAXCHOICES; orrect. The instruction is '); ,IF NOT ( PROSECUTION OR DEFENSE ) THEN /P('not '); ,P('objectionable.'); )END &ELSE )BEGI&PROCESSSETELEMENT; &P('/'); ) &REPEAT )AT( 12, 1); )ERASELINE; )AT( 13, 1); )ASK(''); )KBDANSWERS := []; N ,WRONG; ,P('/Wrong. The instruction is '); ,IF NOT ( PROSECUTION OR DEFENSE ) THEN /P('not '); ,P('objectionable.'); )E)CRACK([',', ' '], FOUND); )WHILE FOUND DO ,BEGIN /GETNUMBER(I, FOUND); /IF FOUND AND (I > 0) AND (I <= CARD) THEN 2KBDANSND; ) &IF PROSECUTION <> DEFENSE THEN )BEGIN ,P('/The instruction is too favorable to:'); ,P('/ a. the prosecution'); WERS := KBDANSWERS + [I]; /CRACK([',', ' '], FOUND); ,END {WHILE}; )COMPLETELYWRONG := ( ANSWERS - KBDANSWERS ) = ANSWERS; ),P('/ b. the defense.'); ,ASKCR(''); ,ERASEPAGE; ,IF KM('A') = PROSECUTION THEN /BEGIN 2CORRECT; 2P('/Correct. '); /IF COMPLETELYWRONG THEN ,BEGIN /WRONG; /P(':MULTWNG'); ,END; &UNTIL NOT COMPLETELYWRONG; & &AT( 13, 1); &FOR I := 1 TO CEND ,ELSE /BEGIN 2WRONG; 2P('/Wrong. '); /END; / ,P('The instruction is too favorable to the '); ,IF PROSECUTION THEN ARD DO )BEGIN ,NUM(I, 0, TEMPSTRING); ,IF (I IN ANSWERS) AND (I IN KBDANSWERS) THEN /BEGIN 2CORRECT; 2P(CONCAT('/|:MULTCOR/P('prosecution.') ,ELSE /P('defense.'); )END; & &IF DEFECTS > 0 THEN )CUREDEFECTS; &SCORESTUDENT; #UNTIL FALSE;  END L åååååååååååååååååååååååå