`L i=L\Ʃx ? N'i  ͭЅ?0ȱ Ѕ?iȱi lԠԠ͠ԠϠŠͮŠ SYSTEM.APPLE   L$JLјJ 8彐.mĿ"Š>?( X֮ˍL հ˩($8` Ґh Hǹxbhx Nb`8Ύa߽0|ϩHhHh ӈ ө ө ӘVYԦΝYԮaߝꪽԦ ө  Ͱ()I يJJJ(jǩF؅G(  ֈ k( F G  Wjee0 Ю $Ӱb4 xbdfbH dߩ`Ǚx kh k@(LYҭH͍h (ͥpi)ͥˤ˹HH(x h(`~Ȍ``,hhh )hJ¥jJJhhihhhJi֍hhhh b\8ſƅhx Щ&'H(f'ꮭ'eƍ8ƅб ĘHH`fߠ d߮ڭSYSTEM.STARTUPfT SYSTEND.CODEVfCLASMTH 7& SYSTEM.APPLE&Q SYSTEM.PASCALQRSYSTEM.MISCINFORTSYSTEM.CHARSETTV PET.CHARSETVfVWINTROrCWm LESSON.TEXTz{wm SYSTEM.CODEꭃSYSTEM.LIBRARY&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xH&x'8*7Ixix&&  ') + &п x) ++`FG8`0($ p,&") (jJJ>L+ "?I>  N `  ` x V Nx .x- z `V0^*^*>` aI꽌ɪVɭ&Y&&Y& 꽌ɪ\8`& ө ө ө ӽ`Hh`Q꽌ɪɖν*Ͻ%ϙEΈ 꽌ɪ`8` Hh݌`  $(,048<@DHLPTX\`dhlptx|Հ؈䤨谴~X~YiTiUR콥S8\ȥ]\]VWlX ƎRSL~ȱȱŎRRLdҠX LdҠX PQȑLdҠXX XY 0 L_X~~8傅~8~~~78Ƈ8񆅚ȥ񆅛\[HZHl\0 LdN8Ƈ8񆅈񆅉@:8񆅈(8 8Z[ 8Z[LѠP i tiuLht i~i8~8`hh ߦ~ h0 L3 L3lvLRLX/ L 8L ߦ~ hI=+ L ߤ~襈I= ƈ LȄHHLLhh ~LhhV~W\]XiXY~8傅 !THEN TO TYPE UNTIL USES 1UNIT 2VAR WHILE WITH WNTO END ELSE EXTERNAL5FOR FUNCTION FILE .FORWARD "GOTO IF IN )IMPLEMEN4INTERFAC3LABEL MOD 'NOT &OF OR (PROCEDURPACKED +PROGRAM !REPEAT RECORD -SET *SEGMENT ܅܅ȱՈƐ2i ȱȱȩȥȩȑȑH~H`'Pޱ[ޱݱ݄ޏޚޥ޺ޱ"AL߱ݱݱ@#AND 'ARRAY ,BEGIN CASE CONST DO DIV 'DO` ۑȑآL ّ 0 ;ܩJ;* ۠؈ȩؠ#в   :>BGڇښڢکڬh~hhhhhqq a{8 ȱ{a0:A[_ ؕԈqȱi`H$)A[hIH80(hI`i(8(hI`J) )i i`HH8(iPH D۠'(hH ۩ hhehLDۍ۠'O`J>L80 %,M8$LgLhhhhhhhhץHH` )`,10 )?ILڢY` l܅k܅lм`|H D۠ D۠'È B h`@ ֠ ֭0`+` ڥHH B MڥhhLDۦ ڐ`,10` ` ` ` ۤO`) 2 ֭0` ֹ)` ( `) $ HЄ ֹJ` MȽ`H ؠ H h`@`   ٢` َ` ֭`38 0P`8 0 DۥHH)> `0* x)` EHh`LL٠(MC3 `H ؠ h ~؍,,`lQ`) ũ Ȣ`JJJJ ϱ` $p0*O# =ؤ =آ`H ؠLf ֊H h ɢ)L ,10U0I ,109,c$0 A[ $P0Ji)jj%UIЂ )?LI@a Hb c0  hH ׎h$L hhh 靱`hhh(`hhhhhhϐ8 (ֹH ֥ +ֹP b)*Ȫ`FG8`0($ p,&"VU>)Q>jj``P@J I*I `8Hh` 7HHH*L^F0 ِ9 aLgץ")j> 8`Ί aՍxՍՍՍե>?Ռ8T8ՌWuՌvՠ ýI꽌ɪ꽌ɭ蠪ϮәVE]ӾV]H)]ӾV]ԙ)]ӾT]ԙ)]ӦΨ 8$hU>`ȅbSϭb߅83IbߐibŅ QHPH PȱPP꽥QLdҠ RhPhQLH RR8~S~\ȱ~]X i RHLiR~ȱRV~ ~VWRTȱRURXȱRYRRR콆SLdҠ8񚅆񚅇`ȱL8~ȥ~e~ȱ~e~8ƇƎ`3[[`3[[`\Z][ 8\Z][`Lх~ e~ HHH> ]>HBC\8倅\]偅]  " ]H\HHHAH@H > ޽ Insert boot disk with SYSTEM.PASCAL on it, then press RETURN# SYSTEM.PASCAL is not version 1.2#lhLhx hmDŽ ) W 9LK " W 8ƛ 58Ƈ8\񆅖ȥ]񆅗8񆅖Ɨ8 ƗLPQ L楆8Ƈ8񆅔ȥ񆅕8Ƈ iiL奖 㥘 㥔 㭭ххІ 51-l l Ɗgƈд** 6`V QRTWHHlRHHlT Эhh a0+&00 1حB/C0@A "!歪筫䭬)aVV#$6 </\z FLLIEHJh**F`F$Lө ޽޾ HHHH`HHHHHH  < `) ,1P `*0 򭋍8TU 8X再Y凍TVlLXiXYXiXY HHXYX olhh)X0 eXXYLLeT~eU~8~X~YLdҩHHL^ҠXHXHL?飨RHRHL^Ҡ UѥRehnSeio nHnHLLҠ UѥRehnSeioni n%D[abHT%LXiXYX h&i` hi`RlSml~ȱlm~l``Z罅[潩`޽~@<8潍罅Z\]b[      ཀྵlN{`j5ۓ{Wv*ܞמ]َPqҜـٯU]l7{ӳBVݿӧݙy1ڇ 8R-zLDүH@P 8^L^һһһһһһһһһһһһһһһһ****************|yyyyyyy ҹHH`=`LLLLL)LHL&L)LLKLLLXLLXLLL\v]w]|\ v\w] RPRRSQRR @RȭAR)[ [Zqʊ qŐ`8H<8H\Ni iIHHAH@H GH#FF) l GGԬهП8ƋȱHHHH`HHHHHH  < @>~?aƁ)ɠG#ooHnHLLҠ UѥRehnSeio hnhnLLèPHPHL^Ҡ UѥPehnQeio nHnHLLҠ UѥPehnQeioni nooHnHLLҠ UѥPehnQeio hnhnLLҠX qѠ Uѥhelniemo nHnHL?ҠX qѠ Uѥhelniemoni nooHnHL?ҠX qѠ Uѥhelniemo hnhnL?ҠX Uѽeh~ei~H~HL?ҠX Uѽeh~eih~h~L?ҠX UѽeheiHHL?h~hȱ~H~HL^h~hhh~ȥL^ҠXȘ ~X)XYXHXHXe~XYLdҠX~ 8倐~hrhsrHrHƁƂ6&06ˡ6áƁ8:9" &8(2ȡ3'*3 ?3 2-bi ö A(7ȡ &ǀǏȡ &6!0ACOPYRIGHT 1979,1980,1983 APPLE COMPUTER, INC. ALL RIGHTS RESERVED4 8(TB &" PASCALSYUSERPROGFIOPRIMSPRINTERRINITIALIGETCMD FILEPROC 0~E~~~Ղ0LސLh)~hh)h~Lީ vhhh~hE0Ł~ŀ/1'0+!h~hh~hHHL^hHHL^ҩ%vHHL^hhh h膀e ň8内e~l8吨Lߤ 0 vXLLyL+L<   UFifhL8ޠ Uhhh~hXYhLdޱ~р~iLްLLވhhuޅvޅh~h~wޅ~xޅ~р ȱ~р~р %v HHLLҩHHLLҢh~E内凅Lݥ) fj~) fj8~݅݅HHHH9݅9݅HH~ HHHiHL^ҩHHL^ҩHHL?? hh&ŎLL0eeƎLLҥ8包Ŏ 8吪8吪ƌLLhh&eȹȹp)1)fjjj)?~Ōe~9 pHHL^ҦpHHL^ @hhHHHHhhhhLݥ)L8ȥL^hhh heȄ Ȅ~l ۦ8e h9 0 ʚL^ ۦņ hI9ʚL^ ņ0 hʚL^҅~Ƃ~eʥƂFHHL^ҠX hh &heheHHHHeHHL?hhhhhhȱ80 iff =݅=HHL^h~hhhhh ݅%~~݅%80~~i ~&&hhȱI%~I%YHXHXXYeXXYLdhrhshthuXs&trȑtLLҠrrtLUٱrtLLLѺ~~LL^Ҡ UhehheiHHLLҠ UhehheiHHLLhh Uѥi h&L٥hi 0ץheheHHLLҠXX` of"f fofn8no8&&`ffofn&&`hhhh ץIiIiHHL^hhhh ץHHL^h~hhhE0Ń)ŀ!0E0~łL^LXYXXYYHXHLXYHHL^hIihIiHHL^h~hhh8~HHL^ҩonff nenoeofofnff`hh0 hhLhh"IiIiIiIi 0ץHHL^ҺHHLWנnoLѥIiIi攥IiIiƔ8吥呰 X&XeYei无8XYLdҥXiXYLd h~hhh~&Zȥ[Ze~Z[e[8\Z][LLL h~hZ~ȥ[~LLh~h~Zȱ~[潩LLҩlLhh0HHL^ҨIiIiHHL^h~hhhe~eLLLѠX~e~e~tu~L1hththhLLh~hhe~~heH~HL^hhh~hhe~~he~L^hrhshthu ULh~hhh%H%~HL^h~hhhH~HL^hhIHIHL^ҩXXhhQX0XŗiX`0\XE0XLXŖC?8X(צPress CONTROL-RESETGb Íáɡ 럚肚X  šš ë  q7 "ˡ,8 )á á áWˡ á Dš 4áÄ 4w4]ץ11á4\1šV42233z 3042221é42é1Ä2*á444ń55P.TEXTׯ]צ.CODEJ.BACKׯ7צ.INFO$.GRAFׯצ.23aĩ3zȄ 23aA22š*á?%áצ:22ȡá;2á!2ȡ5252š[ץ22š2222ȡ2š5252á~ éÍ~  , Ą쓡"á  :"ë á 쓡ת$Pצצ22ȡ5233 ȡ 11"2COMPDEBU2162LINKANDGr21J2LINKDEBU31^2 ASSOCPRO~K21r2 SYSFILE xD23ASSMBLER@G2COMPILER22EDITOR LN22FILER B4^422LINKER *=<22DATEREC 43MONTH r3N3D3N3:l :.hzpL d | :\0T1 IBADFORM\0h1ISTRGOVFJ0\0|1CMDSTATE4x71\2HALTINIT<1DEBUGCALL311UPROGNOU1x411UPROGUOK311SYSPROG NL211COMPONLY6212COMPANDGJ2˄ `1 b (   d˯7 H ġ  *@#@,A$BBBZCC"DrDDEFtFGdGGG.InIIIfJJ0JKzxM20 ńȄ!~Í`~W ˡ!  ,ȫ$* "ë넡,~ *Í2~ š š K6"á61 ɚ V %ɡšɡš  PꟚšw#ńE z @šQȡ2 š:X f Ą ɡ 낫š ꓡ1š땫Ě@6"á1ꓡ삫Ú ȡ*ńȄ4šáRתPńȄ ,ń.áš蕿1á5   Q lȡ>š 쾿  / Zá " *0ˡ oɡa   áá0š  %4á-ë0zY 000á'5á 0z00 rT\  ɡ'áצ-32768 ^ 逫-ġ>o00ń vJ& "ˡ  J    00áQP 0á0 é000+-ÍFOTO /T! ȡ   צ0H"4$$$&ˡ 4 46%ˡ 4Jˡ 45ˡ+&ȡ 4& t&$&F'Type to continue) & ,Í ˫T \(&:0:azȄaA:!۞ۂۂەߓh  ! "ˡ ɡ!  ! "ˡ ߡ š  ńá4 á,á"  ܢۚ>ب"́$ʁ$ ʁ$ ʁ$ ʁ$ʁ$!"ʁ$ʁ$ʁ$ʁ$FZ   ނ ń1 áނ š   šš$    ġނš  šš!۞ۂۂەߓS  ! "ˡ.! "ˡ ߡ á( ::87CONSOLE1:7SYSTERM2:7GRAPHIC3:7PR P:NEWC/C.CODE:6REMOUT8PSb.:=b4/#b:a@:%aF:`L!I`R[/`X)`2 4j P:NEWC/C.CODEDEDEKYKK.2 4k/P/NEWC/C.CODE.CODE8FNo user programתP8F0ERM2:7GRAPHIC3:7PRINTER6:5REMIN7:6REMOUT8E/KY Kh Pt.PE87CONSOLE187CONSOLE1:7SYSTERM2:7GRAPHIC3:7PRINTER6:5REMIN7:6REMOUT8P IYIL: P/.P> Eá.0::8SWAPFIB OJ8NL7SYVID 3?DKVID $Z3zL;THEDATE 3CDEBUGINF[LD STATE 1EPL :FIPOT Mo$M  FILLER DMEHצE#  9 *,.02468:E&*E$ á"ˡ"& E ##&Eá 9'89:߂ɡ F b6} š.ö}Ä-D76!~?\FצPut in :P?FP'then press RETURN *o# ~8W8Eˡ.$  š t@4,á/š ġ 4,+á"š ġ Z |5?š?ˡ?ء "ˡ6ߕނˡ   d쓡  1צS# أ , P# أ צ, I# أ \2צ Exec err #   á, J3 l/E8:Eá *0  šˡ 퓄 Ä퓡w š   ɍL  "ˡ./~6\-}ˡ2Error reading exec file-, } .}ˡ2Error writing exec file-}ë 쓡ת!!9 D*驁&F+}迶Ŷ} / š/áá-`,3# , , ,/)~áë  ÄÄȄĄMȄtiȡF ōɍ ō ȍ  dč "쓡r D ́$ʁ$ ʁ$ ʁ$ ʁ$ʁ$!"ʁ$ʁ$ʁ$ʁ$FZ   ނ ń1 áނ š   šš$ צUnknown run-time error-צValue range error-צNo proc in seg-table-Exit from uncalled procת-Stack overflowת-צInteger overflow-Divide by zeroת-צNIL pointer reference-צProgram interrupted by user-MayתצJunJulתצAug Sepת צOct Novת צDec ???תצ??????ת6!צ  HצTתP%%@99ˡ  7 :9CONSOLE:ת(:9צSYSTERM:(8:98 6øצ???JanתצFebMarתצApr1٦׷)צ: ܢܢH d    0&תת.ת??? *SYSTEM.WRK.TEXTײ& צ*SYSTEM.WRK.CODE ,CONSOLEצSYSTERMGRAPHICצPRINTERREMINצREMOUT{B77::9988:9  6 ۪*ʁd ضá0?ʁd*SYSTEM.STARTUPת(߫7́%́eʁ%ʁeȡlضʁ%ʁbQ́fƁfʁdƁfƁ&ʁ% Ɓf(ߡʁ% ʁbʁ%́bʁ%́%;??ٟá'C "á ~٤  :SYSTEM.ASSMBLERת :SYSTEM.COMPILERת :SYSTEM.EDITORת :SYSTEM.FILERת צ:SYSTEM.LINKERƁ&<́b́cʁcȡ~ؤ́dʁdתʁdس0ʁdʁd؞&"áޢʁޢʁʁޢʁޢʁޢʁޢ88ʁ  תʁޢʁʁޢ́Ɓ߲Ɓ߲ Ɓߪʁޢˡdتٞ&ʀ=ʀ* ʀ́ʁݢGʁݢHʁݢIʁݢ%O tƀ&́ʁݢʁʁݢʁݢ%́޲8ʁޢʁޢʁޢʁޢʁޢ ʁޢʁޢ ʁޢ ʁޢ ʁޣ  ʁޢʁݢ́ʁޢʁ٢ š٢ ٢٢ 4$88ؗ(/88ؗ(tDoo odoo'z*SYSTEM.MISCINFOתPƀƀnown ProFile errorת-/(hT?+sKצ IO error: -צUnimplemented instruction-צFloating point error-String overflowת-yProgrammed HALTת-aProgrammed break-pointת-BצCodespace overflow-' oZ>s]@;-.Le not open-צbad input format-disk write protectedת-צillegal block #-צillegal buffer address-w!must read a multiple of 512 bytesת-Munknown ProFile errorת-/(hT?+sKצ IO error: -צUnimplemented instruction-צFloating point error-String overflowת-yProgrammed HALTת-aProgrammed break-pointת-BצCodespace overfloת-file not foundת-צ dup dir entry-צfile already open-צ file not open-צbad input format-disk write protectedת-צillegal block #-צillegal buffer address-w!must read a multiple of 512 bytesת-MunkצSystem IO error-צ unknown cause- parity (CRC)ת-צillegal unit #-illegal IO requestת-צdata-com timeout-vol went off-lineת-file lost in dirת-צ bad file name-צno room on vol- vol not found'Version 1.2 of SYSTEM.PASCAL cannot runצ)with a non-1.2 version of the interpreter@9988(The 64K version of SYSTEM.PASCAL cannot )run with the 128K version of SYSTEM.APPLE7:::% š tWelcome ?, to Apple II Pascal 1.2Based on UCSD Pascal II.1צCurrent date is C -C_ 7 š, š%צSYSTEM.WRK.CODEsSYSTEM.WRK.CODE׷Fš5צ.CODE.  "*SYSTEM.WRK.CODE[*]To what codefile? (׷O,á<$88š8(8X+,,"ˡ צ Can't open ,   áث 7(צ&,á(+(.TEXT888Ä8 "ˡ$ Can't find ::9 ƀ:ײ9 ƀ:צSYSTEM.SWAPDISK&:(7,צR   88(áצ Assemblingצ Compiling...á999':::צ::&:(áAssembleCompileצ what text?  Ɓ]&/ , ۤ  áۤ  !~!!f!צ*V! ""!"צ:" "ۤ  ۤ    áۤ  ink firstƁ2ƀ¼:.Conflict between intrinsic and user segment(s)ƀ¼*SYSTEM.LIBRARY , Can't load required intrinsic(s)Yƀ¼/#Required intrinsic(s) not available2 0ڡ;ƀ ˡ.  is not version 1.2ړ22H"áצIllegal file nameNo file  ́ṕqʁq́rʁrˡ  צ not codeʁq2ʁr"ˡצ Bad block #ݢ`ڤá Zx ȡ2ݤˡ"ޢ`ݤۼ: T ڪƁ Ɓ "á9̂.ʁ ʁ"ˡ  Ɓ Ɓ Vj  ߪPˍ? P ˡآڤ á Cá>آآ*Í k vޢ ȡSڤ ˡ@۳-ܢ0ۤ ڳ@@YyÍ, 4ۢڤ ɡš2ڪP-19:!1ׯ)Illegal filenamenTȡۤˡ áڢڢ-C ;;ȡצPascal system size is 64K;;ȡצ'Copyright Apple Computer 1979,1980,1983Copyright U.C. Regents 1979%צSystem re-initializedV 59 v"pv">   F  tWelcome ?, to Apple II Pascal 1.2Based on UCSD Pascal II.1צCurrent date is C -C-C ;;ȡצPascal system size is 64K;;ȡצ'Copyright Apple Computer 1979,1980,1983Copyright U.C. Regents 1979%צSystem re-initializedá.צNested exec commands illegal"צError opening execd 6~}6 "ء HPKצExecuteצ what fileצ? Pšš+00.0.0ȡ#+.//a/zȄ +./ ..+EXEC/ׯjVP+"á(.}P+ ! Jf%צ:ݓۤ  dÄÍ"ߢ ˄"ɡۤ  dáߢ  dá ߢ C#ޣC˄ ߢ C ߢ ۤ ߢޣ ޣߢ ޣޢ ޢۤ ޢ áޢá ~תޢޢޢ0ˡ) ! 767䚹 :V\28˄ޢߢšáޢ ޣ ߢ  dޣޢޣޣߢ  dÍÍޢˡ ݓۤ ۤ Ä˄~ݤ ת   ١  n ١ á9 ٓ/! !!١á ~ݤݚ ˄ܟń ١á  ޤ wš  iá Ä,ޤ  ɡ"áޤ lܟġMáš7 ܂ۻݪ d #(   !š Í 7ÄU ǐɄ:6ń~66! šá٢.ٕ۶š ڸ۸۶ š۸ ڸ:   ȡQ  ȡ   ȡ? ȡ  ġ  á ڢڢڢڣ ڣ ١ڢ ڣ ڣ١ ڢڣڣ ڣ áڣڣġ ڢڣڣ hڢ ڢ١ڢ!ڣڣ ڢ!ڣڣ ڢÄڣ &ڢ ڣ ڢ! ڢ!ڣڣ ڢڢ ڣڢÄڢ  ϶ U not allowedup-Há6OK7AX0NP3 "gC(,. C ^(Pv 2 Z *')%?áSFצ=Command: U(ser restart, I(nitialize, H(alt, S(wap, M(ake execP')% 6!,j3쓡 צ Linking...ˡ& Restarting...á(צ*SYSTEM.STARTUP %áá 6   HˡFצCCommand: E(dit, R(un, F(ile, C(omp, L(ink, X(ecute, A(ssem, ? [1.2]P')%?áSFצ=Command: U(ser restart,צ , change it?)צNew terminator:} ȡ/,-Z N:98:9á/)*SYSTEM.ATTACH   áning, programs using GET or PUT to disk will be very slow New exec name:(šR.%+(]ˡ([8]+("á%צ Terminator=lose and disk get and put procedures swappedצOld swapping level is  צ%New swapping level (ESCAPE to exit): ض,0Í1Í2Íسs2ø1öRצ Z`X\X áޢá ~תޢޢޢ0N^uwM8 , """,2"2, >"< ,22,"""    ****"""&""""" ,22," $,2""""""6**"""" ,2"">>((*|*>`@`0  0`@@@@@@@>>>>>6`Ac66cA6666**>>    ((*|@`px|~*U*U*U*U````````U*U*U?````````xxxxxxxxxxpppppppp@@@@@@xxxxxxxx6>60HH06>>*>**"*6">""> $88>>>>>>*? ><>{:>.#!#.1!1. ?!$ .11.!!!#    ****"""""""## .11.# >$.1!!! !!!6**""! ! .1!!? ? <5)"!!!?! """"!!"""""???!!9!!!!?!!!8!  !?!!!--3!!!1)%#!!!!!!!!.)!!!! !!! !>!!!!!! !!!!3--!!!!! !!"""?  ? "??( <12#.) *>*> ?  !#-1!> ? !!  !? ?!!!?!!!! >!!   !6>60HH06>>*>**"*6">""> $88>>>>>>*? ><>{:>.ת&תת(%Ɓ.񄓡9&   P ? ءצ*SYSTEM.WRK.TEXTצ*SYSTEM.WRK.CODEצ*SYSTEM.LST.TEX24<& צ š š۾.ˡצ([šܕ!!(š۾:ˡ١.TEXTת .CODEת!!ȡ(ܾܾ š!! 3. WALL@ 8 |D~NOW KEY YOUR ANSWER.# # |D~ THE SECOND ANSWER IS RIGHT. THERE IS# ONLY 1 BRICK IN EACH BRICK, SO IT'S# NOT THE WORD 'BRICK'.@ 2 WE DON'T KNOW HOW MANY BRICKS OR ROWS# THERE ARE IN A WALL, SO IT'S NOT THE# WORD 'WALL'.@ 7 WEICKLAYER USES 63 BRICKS IN EACH# ROW FOR ONE WALL OF A HOUSE. HOW MANY# BRICKS WILL BE USED IN THE FIRST 5# ROWS?# |D~ WHAT WORD|DLLLL~{####}|U~ STANDS FOR THE GROUP WITH# A CERTAIN NUMBER OF THINGS IN IT?# |D~ 1. BRICKS# 2. ROW# # PAT YOURSELF ON THE BACK!@ 1 |D~ EVERY MULTIPLICATION PROBLEM HAS A# GROUP WITH A CERTAIN NUMBER OF THINGS# IN THAT GROUP.# |D~ ALWAYS FIND THAT NUMBER FIRST.# |D~ LET'S LOOK AT OUR PROBLEM AGAIN.@ 7 PRESS BUTTON 1 TO CONTINUE.# # |C~ A BR# ROW FOR ONE WALL OF A HOUSE. HOW# MANY BRICKS WILL BE USED IN THE FIRST# 5 ROWS?# |DD~ 1. 315|DDLLLLLLL~2. 318|DDLLLLLLL~3. 68@ 8 |D~NOW KEY YOUR ANSWER.# # |D~ THE FIRST ANSWER IS CORRECT. DID YOU# ADD OR MULTIPLY? IF YOU MULTIPLIED, 28 * {V} 7 * THIS WAY!|U~# 28 * {CCC} *|U~# 28 * 196 *|U~# + 28 * *|U~# {CCCC} *********|U~# 196@ 8 |D~PRESS BUTTON 1 TO CONTINUE.# # |C~ A BRICKLAYER USES 63 BRICKS IN EACHE ADDED ARE !# ! THE SAME, YOU MULTIPLY.|DLLLLLLLLL~{########}|URRRRRRRRRRRR~!# ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !# |D~ *********|U~# 28 * *|U~# 28 * 28 * DO IT|U~# 28 * *|U~# RE IS 'ALTO-# GETHER'.# ? ? ? ? ? ? ? ? ? ? ? ? ?# ? HOW DO YOU KNOW WHICH ONE TO USE ?# ? ? ? ? ? ? ? ? ? ? ? ? ?@ 8 |D~PRESS BUTTON 1 TO CONTINUE.# # |CD~ ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !# ! WHEN THE NUMBERS TO BAN BECAUSE IT'S FASTER.@ 7 PRESS BUTTON 1 TO CONTINUE.# # |C~ YOU ALREADY KNOW THAT WE USE ADDITION# TO FIND HOW MUCH THERE IS 'ALTOGETH-# ER'.# SINCE MULTIPLICATION IS JUST 'FAST# ADDITION', WE ALSO USE MULTIPLICATION# TO FIND OUT HOW MUCH THE|D~ MULTIPLICATION IS REALLY A FASTER# WAY OF ADDING.# WHY DO PEOPLE DRIVE A CAR TO A# STORE ONLY 2 BLOCKS AWAY INSTEAD OF# WALKING? BECAUSE IT'S FASTER.@ 7 |D~ YOU SHOULD TRY TO USE MULTIPLICA-# TION INSTEAD OF ADDITION WHENEVER YOU# CD FIND THE ANSWER BY ADDING# 6 + 6 + 6 + 6 + 6# OR|DLL~{##}|U~ WE COULD MULTIPLY 6 {V} 5.# WHICH METHOD IS FASTER?@ 7 PRESS BUTTON 1 TO CONTINUE.# # |C~ DID YOU SAY THAT MULTIPLYING 6 {V} 5# IS FASTER? YOU'RE RIGHT!@ 8 . 11@ 8 |D~NOW KEY YOUR ANSWER.# # |D~ THE SECOND ANSWER IS RIGHT. HOW DID# YOU FIND THE ANSWER TO THE QUESTION?@ 2 |DD~ THERE ARE REALLY TWO|DLLL~{###}|U~ WAYS TO FIND# THE ANSWER. BOTH WAYS ARE CORRECT,# BUT ONE IS FASTER.@ 7 |D~ WE COUL_ |D~PRESS BUTTON 1 TO CONTINUE.# # |CD~ DURING THE SUMMER GAIL BABY-SITS# FOR HER NEIGHBOR. SHE BABY-SITS 6# HOURS EACH DAY, 5 DAYS A WEEK.# |DD~ HOW MANY HOURS DOES GAIL SPEND BABY-# SITTING EACH WEEK?# |D~ 1. 25|DDLLLLLL~2. 30|DDLLLLLL~3 ! S_% #@  |hddddddddrrrrrrrrr~PRESCRIPTION LEARNING_  |ddrrrrrrrrrrrr~MULTIPLICATION_  |ddrrrrrrrrrrrrrrr~LESSON 8_  |ddddddrr~COPYRIGHT 1980 REVISED 1984%  |cDDDDDRRRRRRR~THIS LESSON WILL EXPLAIN_  |DRRRRRR~HOW TO SOLVE WORD PROBLEMS. DO|DLL~{##}|U~ KNOW, HOWEVER, THAT THERE ARE# 63 BRICKS IN 1 ROW.# |D~ THE KEY WORD IS 'EACH' -- '63 BRICKS# IN EACH|DLLLL~{####}|U~ ROW.'@ 7 PRESS BUTTON 1 TO CONTINUE.# # |C~ ONCE YOU HAVE FOUND OUT HOW MANY ARE# IN EACH GROUP, FIND OUT HOW MANY# GROUPS THERE ARE.# |D~ IN OUR PROBLEM WE NEEDED TO KNOW HOW# MANY BRICKS ARE IN 5 ROWS (GROUPS).# |DD~ 63 {CC}>TELLS HOW MANY IN EACH GROUP# {V} 5 {CC}>TELLS HOW MANY GROUPS# |U~ {CCC}# |U~ 315 {CC}>TELLS HOW MANY ALTOGETHER@ 8 |D~PRESS |D~PRESS BUTTON 1 TO CONTINUE.# # |CDD~ JIM TYPES 46 WORDS PER MINUTE. AT# THIS RATE HOW MANY WORDS CAN HE TYPE# IN HALF AN HOUR ?# |DDD~ 1. 23# 2. 2760# 3. 1380@ 8 |D~NOW KEY YOUR ANSWER.# # |D~ THE THIRD ANSWER IS THE CORRECT 52 {C}> WEEKS IN A YEAR# {V} 7 {C}> CARS SOLD EACH WEEK# |U~ {CCC}# |U~ 364 {C}> CARS SOLD IN ONE YEAR# |DDD~ YOU CAN TURN MULTIPLICATION# |D~ PROBLEMS AROUND TO MAKE THEM# |D~ EASIER.@ 8 W MANY WEEKS ARE IN A YEAR?@ 7 THERE ARE 52 WEEKS IN A YEAR.# |DD~ 7 {C}> CARS SOLD EACH WEEK# {V} 52 {C}> WEEKS IN A YEAR# |U~ {CCCC}# |U~ 364 {C}> CARS SOLD IN 1 YEAR# |D~ OR...@ 7 PRESS BUTTON 1 TO CONTINUE.# # |CD~ AR DEALER SELLS AN AVERAGE# OF 7 CARS A WEEK, HOW MANY CARS WILL# HE SELL IN A YEAR?# |DD~ 1. 350# 2. 364# 3. 336@ 8 |D~NOW KEY YOUR ANSWER.# # |D~ THE SECOND ANSWER IS CORRECT. DID# YOU FIND THE 'HIDDEN' QUESTION?@ 2 |D~ HO|D~ TO FIGURE OUT HOW MUCH MONEY YOU# |D~ HAVE, YOU PROBABLY MULTIPLIED 4 {V} 10# |D~ AND 4 {V} 5 WITHOUT EVEN THINKING ABOUT# |D~ IT.@ 8 DID YOU KNOW THAT YOU WERE DOING# A 'HIDDEN' PROBLEM?@ 7 |D~PRESS BUTTON 1 TO CONTINUE.# # |CDD~ IF A C |D~ QUESTIONS.# |DDD~ THERE ARE LOTS OF TIMES YOU USE MUL-# |D~ TIPLICATION WITHOUT EVEN THINKING A-# |D~ BOUT IT.@ 8 |D~PRESS BUTTON 1 TO CONTINUE.# # |C~ LET'S SAY YOU HAVE SOME CHANGE# |D~ WHICH INCLUDES 4 DIMES AND 4 NICKELS.# MOTHER EARNS|DLLLLLLLLLL~EACH MONTH# |U~ {V} 12 {C}>MONTHS IN 1 YEAR# |U~ {CCCC}|DLLLLL~$4200 {C}>HOW MUCH PATTY'S MOTHER EARNS# |U~ IN 1 YEAR@ 7 PRESS BUTTON 1 TO CONTINUE.# # |CDD~ MANY TIMES PROBLEMS DO HAVE 'HIDDEN'# ANSWER.# # |D~ THE SECOND ANSWER IS CORRECT.# SOMETIMES PROBLEMS HAVE A 'HIDDEN'# QUESTION. BEFORE YOU COULD WORK THIS# PROBLEM YOU HAD TO KNOW HOW MANY# MONTHS ARE IN A YEAR. NOW YOU CAN WORK# THE PROBLEM.@ 2 $ 350 {C}>HOW MUCH PATTY'S CORRECTLY?@ 7 PRESS BUTTON 1 TO CONTINUE.# # |CDD~ PATTY'S MOTHER HAS A PART-TIME JOB# AND EARNS $350 A MONTH. HOW MUCH DOES# HER MOTHER EARN IN ONE YEAR?# |DD~ 1. $3500# 2. $4200# 3. NOT SURE HOW TO WORK IT@ 8 |D~NOW KEY YOUR MILES SUE CAN# TRAVEL ON 1 GALLON OF GAS@ 1 {V} 11 {CC}> HOW MANY GALLONS OF GAS# {$$$} THE TANK WILL HOLD@ 7 352 {CC}> NUMBER OF MILES SUE CAN# DRIVE ON A FULL TANK OF GAS# |D~ DID YOU DESCRIBE EACH NUMBER# AS?# AS YOU WORK THE PROBLEM WRITE# DOWN WHAT EACH NUMBER STANDS# FOR, INCLUDING THE ANSWER.# |D~ 1. 352# 2. 353# 3. 452@ 8 |D~NOW KEY YOUR ANSWER.# # |D~ THE FIRST ANSWER IS CORRECT.# |D~ 32 {CC}> NUMBER OF MANY THERE ARE ALTOGETHER WHEN THERE# ARE SEVERAL GROUPS OF THE SAME SIZE.@ 7 PRESS BUTTON 1 TO CONTINUE.# # |C~ SUE CAN DRIVE 32 MILES ON A GALLON# OF GAS. IF HER CAR HAS AN ELEVEN-# GALLON TANK, HOW FAR CAN SHE DRIVE ON# A FULL TANK OF G|D~NOW KEY YOUR ANSWER.# # |D~ THE THIRD ANSWER IS CORRECT.# |DD~ 30 {CC}> NUMBER OF CANS IN 1 BOX# {V} 24 {CC}> NUMBER OF BOXES# |U~ {CCCC}# |U~ 720 {CC}> NUMBER OF CANS ALTOGETHER@ 3 |DD~ WE USE MULTIPLICATION TO FIND HOW#BUTTON 1 TO CONTINUE.# # |CD~ DAN STOCKS SHELVES IN A SUPERMARKET.# ONE DAY HE STOCKED 24 BOXES OF CANNED# GOODS. EACH BOX CONTAINED 30 CANS.# HOW MANY CANS DID DAN STOCK THAT DAY?# |DD~ 1. 30# 2. 54# 3. 720@ 8 ONE.# |D~ THE 'HIDDEN' QUESTION WAS 'HOW# MANY MINUTES ARE IN HALF AN HOUR?'@ 3 THERE ARE 30 MINUTES IN HALF AN HOUR.# |D~ 46 {C}> WORDS TYPED PER MINUTE# {V} 30 {C}> MINUTES# |U~ {CCCC}# |U~ 1380 {C}> WORDS TYPED IN A HALF HOUR# |DD~ NOW TRY THIS ONE !@ 7 PRESS BUTTON 1 TO CONTINUE.# # |C~ VANESSA EARNS $ 3 AN HOUR. IF# SHE WORKS 35 HOURS A WEEK, HOW MUCH# WILL SHE EARN IN A YEAR ?# |D~ (THINK THROUGH THE PROBLEM AND WATCH# OUT FOR THE HIDDEN QUESTIONS.)@ ȡٛٛ,@@ @\  ǿ  ȡ & 0    0- ټ00-/0-á -..///.ټZڪP-0- -Z8ڳ aA,ڪP""ˡ0R6ڪ̀ʀšʀʀ ʀ 6ُǿ ('ǿ ڪP.-//p0 QV  N v@NEWMATH PETSTUFFPROCESSMMTHUNIT INITMATHFINDRESTQUITMATHENDSCREEGOSUB900QUERY PARSE OXES# |U~24 IN 2 DOZEN. {CCC}# |U~ 792 - DONUTS@ 7 PRESS BUTTON 1 TO CONTINUE.# # @ 8  FORE YOU CAN FIND OUT HOW MANY DONUTS# WERE SOLD, YOU NEED TO KNOW HOW MANY# DONUTS ARE IN A BOX.# THE HIDDEN QUESTION WAS 'HOW MANY# IS A DOZEN?'@ 1 |D~THERE ARE 12 {C}> 24 - DONUTS IN A BOX# |U~IN 1 DOZEN,# |U~SO THERE ARE {V} 33 - B TAINS 2 DOZEN DONUTS. ON A TYPICAL# DAY THEY WILL SELL 33 BOXES. HOW MANY# DONUTS WILL BE SOLD ?# ( READ THE QUESTION CAREFULLY. )# |D~ 1. 792# 2. 396# 3. 660@ 8 NOW KEY YOUR ANSWER.# # |D~ THE FIRST ANSWER IS CORRECT. BE-# EARNED IN 1 WEEK# "{V} 52 {C}> WEEKS IN A YEAR# |U~ {CCCC}# |U~ $5460 {C}> MONEY EARNED IN 1 YEAR@ 7 |D~PRESS BUTTON 1 TO CONTINUE.# # |C~ THE SWEET TOOTH BAKERY SELLS A LOT# OF DONUTS BY THE BOX. EACH BOX CON-# WEEK'S SALARY@ 8 |D~PRESS BUTTON 1 TO CONTINUE.# # |C~ THE HIDDEN QUESTION WAS 'HOW MANY# WEEKS ARE IN A YEAR?'# R E M E M B E R ?@ 8 |D~ NOW WE'RE READY TO FIND OUT HOW# MUCH VANESSA WILL MAKE IN 1 YEAR.# |D~ $ 105 {C}> MONEY AR, YOU# NEEDED TO KNOW HOW MUCH SHE EARNS IN# 1 WEEK.# THE PROBLEM DID NOT GIVE US THAT# INFORMATION, SO THAT WAS OUR 'HIDDEN'# STEP.# '35 {C}> HOURS WORKED IN 1 WEEK# ( &$ 3 {C}> WAGE PER HOUR# |U~ {CCC}# |U~ $ 105 {C}> ONE|DD~ THIS PROBLEM HAD A 'HIDDEN' QUES-# TION AND 2 STEPS. PLUS, ONE OF THE# STEPS WAS A HIDDEN QUESTION.# |DD~ LET'S LOOK MORE CLOSELY !@ 7 PRESS BUTTON 1 TO CONTINUE.# # |C~ BEFORE YOU COULD FIGURE OUT HOW# MUCH VANESSA EARNED IN A YE 8 |D~ 1. $ 105# 2. $ 5460# 3. $ 5780@ 7 |D~NOW KEY YOUR ANSWER.# # |D~ THE SECOND ANSWER IS CORRECT.# |D~ IF YOU GOT THIS ANSWER RIGHT,# YOU DESERVE 2|DL~{#}|U~ PATS ON THE BACK.@ 2 6 تP+,+,ȡ+ ++V 0 ث ٹ  ؏  ؏ ؏  ؏   ǿǿǿ  ȡ ȡ bȡ Bȡ 2 {^@$Bd.'ȡ ȡǿ؏'ġ؏ġǿ؏wȡ𩐣w؛pǿH(C&۳?d ˡ d d ġ čáš ȡ6צ$ #Y tw08ׯ!:תPצ(Pšw.`R twyP̀ẁʀʀȡ.ʀ(Cƀƀʀ̀ǖ @ \  ȡ5ȡ# צGREAT!!&  XO r'SORRY, YOU ARE INCORRECT.4w8?&wá !See Your Instructor."Press Ctrl-Reset To ReStart Again!!DP  (KR  תPPf0VJ\ 1ë Pإ Pإ Pإ Pإ Pإ P1Ú(THIS Program Cannot Be Run At This Time!See Your Instructor."Press Ctrl-Reset To ReStart Again!!DP 5342 6 7(KR   תPᥑ Pf0VJ:؛1ë8 Pإ: P᥅3إ: P᥅4إ: P᥅xإ: P᥅1إ: P᥅043291Ú9(THIS Program Cannot Be Run At This TimePީ5Pޛ6Pޛ7Pۡޛ1ޛ0P8ޛ1ޛ0 Pީ3Pީ4PPPP Pإ: P᥅5:؛6P:؛7PPȡ$ ˡۛ+B D   51ȡ ȡڛ6 bD   53 ȡ PܓޛNޛP9ޛFȡۛ( P dá%..P. Ǡ.Pk š1..צ .Q. ǡ.P5ġ0..צ .R. Ǣ.P..ȡۛ ڥ Pšȡ .٪P --á--š/,-.,.ȡ,0-,,,)X ^P ..P. Ǡ.P..ȡۛ `ܞ }-ń!-- -á K-P-á    -š-PF 0>`zR<`&d|6(تš$|á{á/ <تت'*6ڪPVVPVǠV-תP 2"Ah ٛ0WQKE?93-CU& 3 +=/C"$[ٛ~á~צ} ( H ` ȡ %8 L^ .`R tP̀̀ʀʀȡ.ʀ(Cƀƀʀ̀ǖ @ \ڦ ת 9,108  ::wv10x6vwצ intro.textˡUצintroˡ3צCan't find introductionצ :lesson.textˡp šӭ'צ-|I~ DO YOU WISH TO TERMINATE NOW? (Y/N) |N~&@@DDDDDDRRRRRRRRRR~REMOVE THE DISKETTEתP|)צ6|HDDDDDDDDDDDDDDRRRRR~AND TURN OFF THE APPLE COMPUTER.PvB́́ʁʁȡ,|ʁ)צ|ʁ)ʁ́Ĺ[́́ʁʁȡ,|ʁ)צ|ʁ)ʁ́Ĺ|)צ |) [jbrx )PƁצ Lesson-YƁƥšdKš8RRRRRR~PROGRAM TERMINATED BY USER.P|)צ.|HDDDDDDDDDDRRRRRRRR~PLEASE RECORD YOUR SCORE.P|),|HDDDDDDDDDDDDRRRRRRRRRR~REMOVE THE DISKETTEתP|)צ6|HDDDDDDDDDDDDDDRRRRR~AND TURN OFF THE APPLE COMPUTER.PvB́́ʁʁȡ,|ʁ)צ|ʁ)ʁ́Ĺ[́́ʁʁȡ,|ʁ)צ|ʁ)ʁ́Ĺ|)צ |) [jbrx )PƁצ Lesson-YƁƥ]ƁƪP<|)צ-|HDDDDDDDDRRRRRRR~PROGRAM TERMINATED BY USER.P|)צ.|HDDDDDDDDDDRRRRRRRR~PLEASE RECORD YOUR SCORE.P|),|HDDDDDDDDDDDDRRRRRRRRRR~REMOVE THE DISKETTEתP|)צ6|HDDDDDDDDDDDDDDRRRRR~AP |)|HDDDDDDRRRRRRRRRRRRRRR~h % MASTERYqPxd́́ʁʁȡ|ʁ)תPʁ́Ĺ́ǿ |)צ|HRRRRRR~CLAS II MATHP|)́Ɓ|)PƁצ Lesson-YƁƥ334434SP |)'|HDDRRRRRR~TOTAL NUMBER OF QUESTIONS : 'SwP*P |)|HDDDDRRRRRR~TOTAL CORRECT : *mPš ũ4š34 5(CyHF@^>:  "$&(*,.02468:<F@%^ҩxčҫѭ!y צ"Call Prescription Learning Serviceө9]vX w,x69x:wv10x:צ systend.coden ҩxɄ@áyҥyy֥yyyy2#@_(CyHF@^>:  "$&(*,.02468:<F@%^ҩxčҫѭ!y צ"Call Prescription Learning Service,wvԓ ѫҥyҥ֥yyyyy% צ|C~ xˡҩxɄ@áyҥyy֥yyyy2#@_# Having trouble reading lesson fileצ"Call Prescription Learning Serviceצ :pet.charsetˡhHaving trouble reading fontצ"Call Prescription Learning Service**צ *Q*P,M{ F v10x6vwצ intro.textˡUצintroˡ3צCan't find introductionצ :lesson.textˡp# Having trouble reading lesson fileצ"Call Prescription Learning Serviceצ :pet.charsetˡhHaving trouble reading fontצ"Call Prescription Learning ServiceND TURN OFF THE APPLE COMPUTER.PvB́́ʁʁȡ,|ʁ)צ|ʁ)ʁ́Ĺ[́́ʁʁȡ,|ʁ)צ|ʁ)ʁ́Ĺ|)צ |) [jbrx )PƁצ Lesson-YƁƥwwԄ>yyեyyyy쩐צ+Data file error -- blank used as terminator &áӝš&Z   :    ( tV8z <|hvhwhhxylxNj+Nvwlv")@ LY-09Ȅ0ݡߑ ع      z  &  * عteVG8  )   uh[NA4'á +-ÍNTEGER[36]) /END; ' " "PROCEDURE FREADDEC(VAR F: FIB; VAR D: STUNT; L: INTEGER); "PROCEDURE FWRITEDEC(VAR F: FIB; D: DECMAX; RLENG: INTEGER); "  IMPLEMENTATION X E EDURE DECOPS; "EXTERNAL; " "PROCEDURE FWRITEDEC(*VAR F: FIB; D: DECMAX; RLEN12]); 15:(W5:INTEGER[16]); 16:(W6:INTEGER[20]); 17:(W7:INTEGER[24]); 18:(W8:INTEGER[28]); 19:(W9:INTEGER[32]); 110:(W10:INTEGER[36]) /END; ' " "PROCEDURE FREADDEC(VAR F: FIB; VAR D: STUNT; L: INTEGER); "PROCEDURE FWRITEDEC(VAR F: FIB; D: DECMAX; RLENG: INTEGER); "  IMPLEMENTATION L N E @d $ "TYPE DECMAX = INTEGER[36]; STUNT = RECORD CASE INTEGER OF 12:(W2:INTEGER[4]); 13:(W3:INTEGER[8]); 14:(W4:INTEGER[12]); 15:(W5:INTEGER[16]); 16:(W6:INTEGER[20]); 17:(W7:INTEGER[24]); 18:(W8:INTEGER[28]); 19:(W9:INTEGER[32]); 110:(W10:I n 4ZLONGINTIPASCALIOCHAINSTUTURTLEGRTURTLEGRQUICKSTUQUICKSTU   `"A"G (CyЩwwԄ(CywХwš&w7ǖ w7w9 I á  ȡ(C ,y wȡ%pǿH(C& - B0.   wwԄyyšԝӍӓ9͞áӝ G G (CyЩwwԄ(CywХwš&w7ǖ w7w9 I á  á$ӝ,š ,Е,Y%ǿǿ %ǿ ǿ / * %GD;%S+((terminator not found*.Uӝš&áӝ G G (CyЩwwԄ(CywХwš&w7ǖ w7w9 I á  8刅剅<8ȱ` 5l 5 l 5lhzh{hƁhhhƁ}eʆƀƀ|ʊe~8偅z{lzhhhhhh8冐 0 h HHHL,LwIL,h hrsʈ .ł( Ł|} ŀ}|ƀL~HHL,~HH~HHHHHHL,~ʈƅFHHHH恥HL,0~}ʈƅ0I愊iʈؚH恥LŁ|} ƅL ~݂ġ ݂$ $ $ȡ%  0 ފ$čV   .ˡ:  Eɡ  -ݑ š 0 0 ߿`ġ(   ݂. ݕ ؂݂3  >ۓɡ ؼ݀$ ؼݞ$ۡܡ ؼ" Bɍ -   $ $ ݞ$' ݑ$ $݂ō $   "á +-Í-09Ȅؼ 0.á@09Ȅؼ0ݞ$09ȄjeEÍɍEáޢݣޢÄá ޣ Ą.1 ޣ Ąݣ ˡRݣ &ݢ ݢݢ!ݣ "ˡRݣ ˄ݢ!ۂ"ˡ+ݢݢݢˡݢݢ ۚݢ    ݂܂F      ޏݏ@܏ޏ@ݏ܏ޏݏ܏܏ ݏ ܏  ݢPROCEDURE FWRITEREAL(VAR F: FIB; X: REAL; W, D: INTEGER); "PROCEDURE FREADDEC(VAR F: FIB; VAR D: STUNT; L: INTEGER); "PROCEDURE FWRITEDEC(VAR F: FIB; D: DECMAX; RLENG: INTEGER); "FUNCTION SUPER_MOD(A,B : INTEGER) : INTEGER; "FUNCTION SUPER_DIV(A,B : INTEGER) : INTEGER; "  IMPLEMENTATION L N E @dNTEGER[36]) /END; ' " "PROCEDURE FSEEK(VAR F: FIB; RECNUM: INTEGER); PROCEDURE FREADREAL(VAR F: FIB; VAR X: REAL); "PROCEDURE FWRITEREAL(VAR F: FIB; X: REAL; W, D: INTEGER); "PROCEDURE FREADDEC(VAR F: FIB; VAR D: STUNT; L: INTEGER); "PROCEDURE FWR $ "TYPE DECMAX = INTEGER[36]; STUNT = RECORD CASE INTEGER OF 12:(W2:INTEGER[4]); 13:(W3:INTEGER[8]); 14:(W4:INTEGER[12]); 15:(W5:INTEGER[16]); 16:(W6:INTEGER[20]); 17:(W7:INTEGER[24]); 18:(W8:INTEGER[28]); 19:(W9:INTEGER[32]); 110:(W10:Ihhƀhh-ȑhhƀ 0ȑƀ0hJJJJ 0ȑ) 0ȑƀĆLL,tq1+%ZTNlb3 `\[TOG@;:3(  T[Fc>8 ND Z1> HHHHHL,} ei|ʽ 8襁i}ƅ|L,hƀhhh8hohlhXhhhFffff80)ƅܥ#FfII懥HHL,Lwhhh8倅偪ʈƅ})H揥>ʈƅ ~擥  抦|ɥ8包~ƅLII懩&&u`hh&~ʈƅFyʈƅ}ʈƍƎƋƊЌإL2d|e~28ʈƅyʈƅƉ` LŁ|}ƅLE||怦}ʚH恺~8ʈƅ  ILL, LLL,E0LL1 L ILL,ELL1 LEe8刅刪ʈʈ ݕ 0 . ݑ0 ݕݕ ؂ ɡ  |,  &  * عteVG8  )   uh[NA4'á +-Í-09Ȅ0ݡߑ ع    ǯ?Ǭ?ǰ?Ǯ?ǩ?áǫ?Ǭ?0 ٢ؚڢؚڢٚ ۚܢښܢٚܢؚɡšܢɡܢǿšܢǿɡܢɡܢ; $PROCEDURE CHARTYPE(MODE: INTEGER); " "IMPLEMENTATION $endc}  " SETC SHORT := FALSE}  X E CHAR); $PROCEDURE WSTRING(S: STRING); $PROCEDURE CHARTYPE(MODE: INTEGER); " "IMPLEMENTATION $endc}  " SETC SHORT := FALSE}  URTLEY: INTEGER; $FUNCTION TURTLEANG: INTEGER; $FUNCTION SCREENBIT(X,Y: INTEGER): BOOLEAN; $PROCEDURE DRAWBLOCK(VAR SOURCE; ROWSIZE,XSKIP,YSKIP,WIDTH,HEIGHT, 8XSCREEN,YSCREEN,MODE: INTEGER); $PROCEDURE WCHAR(CH: CHAR); $PROCEDURE WSTRING(S: STRING) MOVETO(X,Y: INTEGER); $PROCEDURE PENCOLOR(PENMODE: SCREENCOLOR); $PROCEDURE TEXTMODE; $PROCEDURE GRAFMODE; $PROCEDURE FILLSCREEN(FILLCOLOR: SCREENCOLOR); $PROCEDURE VIEWPORT(LEFT,RIGHT,BOTTOM,TOP: INTEGER); $FUNCTION TURTLEX: INTEGER; $FUNCTION T $TYPE $ SCREENCOLOR=(none,white,black,reverse,radar, 3black1,green,violet,white1,black2,orange,blue,white2); $ $PROCEDURE INITTURTLE; $PROCEDURE TURN(ANGLE: INTEGER); $PROCEDURE TURNTO(ANGLE: INTEGER); $PROCEDURE MOVE(DIST: INTEGER); $PROCEDURE0TRšزTRPزTPR, *BZC.CODEDEDEKYKK.2 4k/P/NEWC/C.CODE.CODE@ˡצ)Version 1.2 of the Chainstuff unit cannot+run with a non-1.2 version of SYSTEM.PASCAL تPšH++H0تPRšT+R+PTPC/C.CODEDEDEKYKK.2 4k/P/NEWC/C.CODE.CODE "PROCEDURE SETCHAIN(TYTLE:STRING); "PROCEDURE SETCVAL(VAL:STRING); "PROCEDURE GETCVAL(VAR VAL:STRING); "PROCEDURE SWAPON; "PROCEDURE SWAPOFF; "PROCEDURE SWAPGPON; "  IMPLEMENTATION X E   z Z   :    ( tV8z <| [NA4'á +-Í-09Ȅ0ݡߑ ع      z Z   :    ( tV8z <|l    ڪP."ˡ[̄$ʄ$N.ʄ$M ń.ʄ$M  ʄ$̄$.ʄ$M .ʄ$M Y@'  4تP+,+,ȡ+++V 0 Z Z^ Z ><0 Z 0&!"   #"  ` ` `SN-(' . hhhhhhHH `  y HH8H8  hhhL .+ rhh hehehehe8`)    L)ˢ   â LE % %  )  `8`&e epɀj f f&e e pɀjff %) % )`% L=`0(%$ $ @' &   cY}zeNEDh0h1hhhhh.h/h,h-h*h+h(h)(ȱ(*ȱ*,ȱ,.ȱ. HH1H0H(ȹ(*ȹ*,ȹ,.ȹ.`   ""##  )`%) E J j 8  e e  `(J 8 e  ` Z Z< $ %$PQ $  ߩ $ Li`t^L` T$Q%P)Q I L`#JI`'  I` I0ݩ(0/,",i8i#Hiihifi`i,i,3iPII4ifH8H hIiH h hL8Iif áSYSTEM.CHARSET  @! @4` - G`` 8`*UH)JJh & & f)4#i J  h 2  ɡh h  h . آآآǿآآǿآآD ǻٚ SYSTEM.CHARSET!ٹا ZZا Zا Zا ZZfا ZZا Z:ا Zا ZZb8  ؂  ɡh h QZ|?ٽ RZ}?4 SZ~? TZ~? UZ? VZ?[` WZ?& XZ?ؽ YZ?  ZZ?2  Z Zá.ٹ#ؑi?޽ CZk?7 DZm?[ EZn? FZp? GZr?  HZs?yx IZt?hн JZv?D KZw?F LZx?Re MZy?Pp NZz?g OZ{?K PZ|?aI? 5ZL?Xs 6ZO? 7ZQ? 8ZT?; 9ZV?% :ZY? ;Z[?Lo <Z]?г =Z_? >Zb? ?Zd?  @Zf?] AZh? BZ 'Z!? (Z$? )Z'?| *Z+?+L +Z.?l ,Z1?ս -Z5?D .Z8?& /Z;?: 0Z>?> 1ZA?4 2ZD?v 3ZF?  4Z>? Z>ca Z>*r Z>aq Z>^ Z>9 Z? Z?ٽ Z?ƨ !Z ?vm "Z?F' #Z?ս $Z?y %Z? &Z?1>н ZC>oc ZT> Zf>Y Zw>g Z>탽 Z>K  Z>ȱ Z>z7 Z>ٰ Z>? Z>| Z>}̽ Z>  ZHHL<  y B  ""##8&$iT8&UU !  U"# UT`+%$Y)!p h hhhhhhhhhhH8 )%HHH`5>hhh)hh h h h hhhhhhhhhhhhHH h )# " `' & 8 ! 0%ee8` !  e e8"#088$ % 0%ee8`$ %  e e8&'08D  کɩ  HGGDˍǨ LABNET ERROR!!!צ$Place the Red Disk in the disk driveצand press CONTROL-RESET.HGG,+,ȡ%HGG++++HGGHGGGGG HGG˫V  ٩ɩ  0HGGGGG HGG˫OGGGGG8 FGG HGGHGGGGG HGG˫  تP+BGB B BQ x^STARTUP CONTROLLPROCESSMINIT GETINFO -+*ġڏ+ ,+ ,+ˡMۿš,+۞á, , ,۞ۂB,+ ܂š š,+܂+ۂ++*ħ  ,,% x0 ؑ, *+dȡ.ٛ ٛٛaA6 FڪP.TEXT-""š-RH-+*ġڏ+ ,+ ,+ˡMۿš,+۞á, , ,۞ۂB,+ ܂š š,+܂+ۂ++*ħ -,.ُؑ, *+dȡ.ٛ ٛٛaA6 FڪP.TEXT-""š-RHithin buffer *) &Buffer: PACKED ARRAY [ 0..BufLen ] of CHAR;(* block buffer *)  (* MM *) readlncnt : INTEGER; $ $  procedure readline (var inline: longstring);  function openfile (filename: string): integer;   implementation E  "const BufSize = 1024; (BufLen = 1023; ( "type longstring = string[255]; " "var &empty: boolean; &infile: file;  NotNulls: 0..BufSize; (* Num of non-null chars *) &BufIndex: 0..BufSize; (* Index wSETPORT @=P l=7MAKEPORT|=P 7 ==L1TURTLEGR)RTCHEA=GA440 BS|== zjZ QH?\V n x x(,np< $8L. ~  L  DRIVE <<<FNAM =SETSINE1<<SETSINE2SETDEFAU=e*e+)*)fjfjfj+*fjfjfj8 8)eeL )` (J(F ((Lee L  )LT I1LT )QLT       HGGPšPȡ!ڛHGGڂ)diCTצ  ȡ'GG܊Gܛۿ48Ä8Äس@GGŚ^ xhhhhhhhhHHHH`(hhhhhhHH`$hhhh HH`$^4 \6$ צ$Place the Red Disk in the disk driveצand press CONTROL-RESET.HGG TENDIT CONTROLLPROCESSMSENDINFO STAND ALONE.듡K 01' V *,, STARTUP.CODEAPDISKSTARTUP.TEXT STARTUP.CODECODE[*]TE:SYSTEM.SWAPDISK0dd( (dצ( PdP8$ ת$  צ system.code !RUN STAND ALONE.듡K 01' V *,, STARTUP.CODEAPDISKSTARTUP.TEXT STARTUP.CODECODE[*]TE:SYSTEM.SWAPDISKKK듡צ PROGRAM ID: [SENDING ID TO LABNET.צ PLEASE WAIT.8[8צLABNET IS NOT ACTIVE!!PRESS ANY KEY TO RUN MNOV02A STARTUP.CODEz6 ʪz|z6 NOb6 *,, STARTUP.CODEAPDISKSTARTUP.TEXT STARTUP.CODECODE[*]TE:SYSTEM.SWAPDISKצintroá PintroתbNbXb[ ת [CM-X p ԍ֍br r b^br MNO`b6 6 ^``Pb6 r  !DP    (KR  תPPLhX0T$ ؾؾ1ë إ إ إ إ إ  1Ú(THIS Program Cannot Be Run At This Time!See Your Instructor."Press Ctrl-Reset To ReStart Again!ۡ10 10 ީީ  إ  ؾ ؾ ؾ1ë  إ إ  إ Mإȡ! ˡ) @ D   51ȡ  ȡھ2 XD   53 ȡ  ܓNPFީ ީ ީ & P dá%..P.Ǡ.Pk š1..צ .Q.ǡ.P5ġ0..צ .R.Ǣ.P..ȡ۾ ڥPšȡ .٪P --á--š.,-.,.ȡ,0-,,,'X\P ..P.Ǡ.P..ȡ۾ ^ȡHGGPšPȡ!ڛHGGڂ)diCTצ  ȡ'GG܊Gܛۿ48Ä8Äس@GGŚ^ x`<GGB BPOGGGGG8 GGGG BHGGHGGGGG HGG˫ȡ 018Dצ$Place the RED DISK in the disk driveצand press any key. lease record your scores:צ Percent correct  % Number correct  צ Total questions  Fá +<<<< Partial Score >>>>듡BPȡ  إ!1áSending scores to Labnet.צPlease wait ... Labnet is not active.צPlease record your scores:צ !DP    (KR w תPNwPLhX0T$ ؾؾ1ë إ إ إ إ NNإ N 1Ú(THIS Program Cannot Be Run At This Time!See Your Instructor."Press Ctrl-Reset To ReStart Again!ۡ10 10 ީީ  Nإ N ؾ ؾ ؾ1ë  Nإ NNإ N Nإ NMNإȡ! ˡ) @ D   51ȡ  ȡھ2 XD   53 ȡ  ܓNPFީ ީ ީ & P dá%..P.wǠ.Pk š1..צ .Q.wǡ.P5ġ0..צ .R.wǢ.P..ȡ۾ ڥwPšȡ .٪P --á--š.,-.,.ȡ,0-,,,'X\P ..P.wǠ.P..ȡ۾ ^ȡss CONTROL-RESET.HGGHGGȡ!ڛHGGڂ)\aEVצ  ȡ'GG܊Gܛۿ48Ä8Äس@GGŚ^ xhhhhhhhhHHHH`(hhhhhhHH`$hhhh HH`$`^ \6& צ$Place the Red Disk in the disk driveצand press CONTROL-RESET.HGGHGGȡ!ڛHGGڂ)\aEVצ  ȡ'GG܊Gܛۿ48Ä8Äس@GGŚ^GGG HGG˫D  کɩ  HGGDˍǨ  LABNET ERROR!!!צ$Place the Red Disk in the disk driveצand pre  تP+,+,ȡ%HGG++++HGGHGGGGG HGG˫V  ٩ɩ  0HGG Percent correct  % Number correct  צ Total questions  Fá +<<<< Partial Score >>>>듡BPȡ  ع(  0::l`  DISK in the disk driveצand press any key. lease record your scores:צ "const BufSize = 1024; (BufLen = 1023; ( "type longstring = string[255]; " "var empty: boolean; &infile: file;  NotNulls: 0..BufSize; (* Num of non-null chars *) &BufIndex: 0..BufSize; (* Index withn(j LEAN; $FUNCTION RANDOM: INTEGER; $PROCEDURE RANDOMIZE; $PROCEDURE NOTE(PITCH,DURATION: INTEGER); $FUNCTION RemStatus (channel : RSChannel) : RStatType; $ "IMPLEMENTATION X E EDURE TTLOUT(* SELECT: INTEGER; DATA: BOOLEAN *); $EXT$hhhhhh9.:.;.<0(0(099JH;HHH`Z310/$ T?@AB ?UB`2hhhhhhhhH)HHH`)J) D* کHH  ),`#d`L+L10`LELK뭕 JF8ȹe8ИL`Lø{{ttmnghab\\WWRRMNIIEEAA=>::673401..+,))&'$%"# !hhhhhhh)hpdHHHH`4hhhhhhhi)hH`HHH`0hhhJhh)*XhHH`"hhhhhhH! \L HHH`<hhhhhhHHLM0ON KEYPRESS: BOOLEAN; $FUNCTION RANDOM: INTEGER; $PROCEDURE RANDOMIZE; $PROCEDURE NOTE(PITCH,DURATION: INTEGER); $FUNCTION RemStatus (channel : RSChannel) : RStatType; $ "IMPLEMENTATION X E EDURE TTLOUT(* SELECT: INTEGER; DATA: BOOLEAN *); $EXTUNCTION BUTTON(SELECT: INTEGER): BOOLEAN; $PROCEDURE TTLOUT(SELECT: INTEGER; DATA: BOOLEAN); $FUNCTION KEYPRESS: BOOLEAN; $FUNCTION RANDOM: INTEGER; $PROCEDURE RANDOMIZE; $PROCEDURE NOTE(PITCH,DURATION: INTEGER); $FUNCTION RemStatus (channel : RSChannel) : RStatType; $ "IMPLEMENTATION N E $ $TYPE &RStatType = (RStatBusy, RStatReady, RStatOffline); " RSChannel = (RSOutput, RSInput); " $FUNCTION PADDLE(SELECT: INTEGER): INTEGER; $FUNCTION BUTTON(SELECT: INTEGER): BOOLEAN; $PROCEDURE TTLOUT(SELECT: INTEGER; DATA: BOOLEAN); $FUNCTI Number correct  צ Total questions  Fá +צ<<<< Partial Score >>>>צ( Insert the RED DISK into the drive."& ,:6 H צ LABNET is down!Record your scores:צ Percent correct  % Number correct  צ Total questions  Fá +צ<<<< Partial Score >>>>צ( Insert the RED DISK into the drive.צ Press CONTROL-RESET. H צ LABNET is down!Record your scores:צ Percent correct  % Percent correct  % Number correct  צ Total questions  Fá +<<<< Partial Score >>>>듡BPȡ  in buffer *) &Buffer: PACKED ARRAY [ 0..BufLen ] of CHAR;(* block buffer *) $  procedure readline (var inline: longstring);  function openfile (filename: string): integer;   implementation E Í k vޢ̝,,.ُؑ, *+dȡ.ٛ ٛٛaA6 FڪP.TEXT,""š,RHצ :lesson.textˡp# Having trouble reading lesson fileצ"Call Prescription Learning Serviceצ :pet.charsetˡhHaving trouble reading fontצ"Call Prescription Learning Service |-ń!-- -á J-P-á    -š-PF 2@b|T>b(f~6تš$|á{á/ <تت'*6ڪPVVPVǠV-תP& 2"Ah ٛ0WQKE?93-CU& 3 +=/C"$[ٛ~á~צ} ( bȡ Bȡ 2 {^@$Bd.'ȡ ȡǿ؏'ġ؏ġǿ؏6 تP+,+,ȡ+ ++V 0 ث ٹ  ؏  ؏ ؏  ؏   ǿǿǿ  ȡ ȡȡٛٛ,@@ @\  ǿ  ȡ & 0    0- ټ00-/0-á -..///.ټZڪP-0- -Z8ڳ aA,ڪP""ˡ0R6ڪ̀ʀšʀʀ ʀ 6ُǿ ('ǿ ڪP.-//p0 A ^ fINTERP PETSTUFFINIT ENDSCREEQUERY PARSE ,+*ġڏ+ ,+ ,+ˡMۿš,+۞á, , ,۞ۂB,+ ܂š š,+܂+ۂ++*ħ  l$ .ُؑ, *+dȡ.ٛ ٛٛaA6 FڪP.TEXT,""š,RH,+*ġڏ+ ,+ ,+ˡMۿš,+۞á, , ,۞ۂB,+ ܂š š,+܂+ۂ++*ħ ^^**צ *^Q*PX[\]ZG V ˡآڤ á Cá>آآ*Í k vޢ̩\SP |)'|HDDRRRRRR~TOTAL NUMBER OF QUESTIONS : 'SwP[*P |)|HDDDDRRRRRR~TOTAL CORRECT : *mP\š[\ ŶP |)צ|HDDDDDDRRRRRRRRRRRRRRR~\\Zšd]ZKš[[Z]8z0.00š0  Do!A  G G sX(CXXsX(C..š&.7ǖ .7.9X-Y áá  XXX%ǿǿ %ǿ ǿ . * &F  R*((terminator not found*.VflFx &á  Zš&á   G G sX(CXXsX(C..š&.7ǖ .7.9X-Y áá  XXX%ǿǿ %ǿ ǿ . * &F  YY쩐Yצ+Data file error -- blank used as terminator &á  Zš&á     .ȡ%pǿHs(C& ,@ ȡ0צ 8 P  ȡ %8 تFF^sʀ(Cƀƀʀ̀ǖ @ \.ȡZZ.؛pǿHs(C&۳?d ˡ d d ġ čá]]šZZ.á #Y t.08ׯ!:\\תPצ(Pš..`R t.P̀.̀ʀʀȡ.Ͷ  ȡ5ȡ# צGREAT!![[&  XO r'SORRY, YOU ARE INCORRECT.4ȡs(C ,.8?\\& hצ % MASTERYqPx*́́ʁʁȡ|ʁ)תPʁ́Ĺ́ǿ |)צ|HRRRRRRRRRRRRRRR~CLAS II MATHP<|)צ-|HDDDDDDDDRRRRRRR~PROGRAM TERMINATED BY USER.P|)צ.|Y Zš'צ-|I~ DO YOU WISH TO TERMINATE NOW? (Y/N) |N~&@@D ʁʁȡ,|ʁ)צ|ʁ)ʁ́Ĺ7  hצ % MASTERYqPx*́́ʁʁȡ|ʁ)תPʁ́Ĺ́ǿ |)צ|HRRRRRRRRRRRRRRR~CLAS II MATHP<|)צ-|HDDDDDDDDRRRRRRR~PROGRAM TERMINATED BY USER.P|)צ.|HDDDDDDDDDDRRRRRRRR~PLEASE RECORD YOUR SCORE.P|),|HDDDDDDDDDDDDRRRRRRRRRR~REMOVE THE DISKETTEתP|)צ6|HDDDDDDDDDDDDDDRRRRR~AND TURN OFF THE APPLE COMPUTER.Ṕ́ʁʁȡ,|ʁ)צ|ʁ)ʁ́Ĺ7 hצ % MASTERYqPx*́́ʁʁȡ|ʁ)תPʁ́Ĺ́ǿ |)צ|HRRRRRRRRRRRRRRR~CLAS II MATHP<|)צ-|HDDDDDDDDRRRRRRR~PROGRAM TERMINATED BY USER.P|)צ.|G G sX(CXXsX(C..š&.7ǖ .7.9X-Y áá  XXX%ǿǿ %ǿ ǿ . * &F  N^uw# PAT YOURSELF ON THE BACK!@ 1 |D~ EVERY MULTIPLICATION PROBLEM HAS A# GROUP WITH A CERTAIN NUMBER OF THINGS# IN THAT GROUP.# |D~ ALWAYS FIND THAT NUMBER FIRST.# |D~ LET'S LOOK AT OUR PROBLEM AGAIN.@ 7 PRESS BUTTON 1 TO CONTINUE.# # |C~ A BR# ROW FOR ONE WALL OF A HOUSE. HOW# MANY BRICKS WILL BE USED IN THE FIRST# 5 ROWS?# |DD~ 1. 315|DDLLLLLLL~2. 318|DDLLLLLLL~3. 68@ 8 |D~NOW KEY YOUR ANSWER.# # |D~ THE FIRST ANSWER IS CORRECT. DID YOU# ADD OR MULTIPLY? IF YOU MULTIPLIED, 28 * {V} 7 * THIS WAY!|U~# 28 * {CCC} *|U~# 28 * 196 *|U~# + 28 * *|U~# {CCCC} *********|U~# 196@ 8 |D~PRESS BUTTON 1 TO CONTINUE.# # |C~ A BRICKLAYER USES 63 BRICKS IN EACHE ADDED ARE !# ! THE SAME, YOU MULTIPLY.|DLLLLLLLLL~{########}|URRRRRRRRRRRR~!# ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !# |D~ *********|U~# 28 * *|U~# 28 * 28 * DO IT|U~# 28 * *|U~# RE IS 'ALTO-# GETHER'.# ? ? ? ? ? ? ? ? ? ? ? ? ?# ? HOW DO YOU KNOW WHICH ONE TO USE ?# ? ? ? ? ? ? ? ? ? ? ? ? ?@ 8 |D~PRESS BUTTON 1 TO CONTINUE.# # |CD~ ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !# ! WHEN THE NUMBERS TO BAN BECAUSE IT'S FASTER.@ 7 PRESS BUTTON 1 TO CONTINUE.# # |C~ YOU ALREADY KNOW THAT WE USE ADDITION# TO FIND HOW MUCH THERE IS 'ALTOGETH-# ER'.# SINCE MULTIPLICATION IS JUST 'FAST# ADDITION', WE ALSO USE MULTIPLICATION# TO FIND OUT HOW MUCH THE|D~ MULTIPLICATION IS REALLY A FASTER# WAY OF ADDING.# WHY DO PEOPLE DRIVE A CAR TO A# STORE ONLY 2 BLOCKS AWAY INSTEAD OF# WALKING? BECAUSE IT'S FASTER.@ 7 |D~ YOU SHOULD TRY TO USE MULTIPLICA-# TION INSTEAD OF ADDITION WHENEVER YOU# CD FIND THE ANSWER BY ADDING# 6 + 6 + 6 + 6 + 6# OR|DLL~{##}|U~ WE COULD MULTIPLY 6 {V} 5.# WHICH METHOD IS FASTER?@ 7 PRESS BUTTON 1 TO CONTINUE.# # |C~ DID YOU SAY THAT MULTIPLYING 6 {V} 5# IS FASTER? YOU'RE RIGHT!@ 8 . 11@ 8 |D~NOW KEY YOUR ANSWER.# # |D~ THE SECOND ANSWER IS RIGHT. HOW DID# YOU FIND THE ANSWER TO THE QUESTION?@ 2 |DD~ THERE ARE REALLY TWO|DLLL~{###}|U~ WAYS TO FIND# THE ANSWER. BOTH WAYS ARE CORRECT,# BUT ONE IS FASTER.@ 7 |D~ WE COUL_ |D~PRESS BUTTON 1 TO CONTINUE.# # |CD~ DURING THE SUMMER GAIL BABY-SITS# FOR HER NEIGHBOR. SHE BABY-SITS 6# HOURS EACH DAY, 5 DAYS A WEEK.# |DD~ HOW MANY HOURS DOES GAIL SPEND BABY-# SITTING EACH WEEK?# |D~ 1. 25|DDLLLLLL~2. 30|DDLLLLLL~3 ! S_% #@  |hddddddddrrrrrrrrr~PRESCRIPTION LEARNING_  |ddrrrrrrrrrrrr~MULTIPLICATION_  |ddrrrrrrrrrrrrrrr~LESSON 8_  |ddddddrr~COPYRIGHT 1980 REVISED 1984%  |cDDDDDRRRRRRR~THIS LESSON WILL EXPLAIN_  |DRRRRRR~HOW TO SOLVE WORD PROBLEMS.ICKLAYER USES 63 BRICKS IN EACH# ROW FOR ONE WALL OF A HOUSE. HOW MANY# BRICKS WILL BE USED IN THE FIRST 5# ROWS?# |D~ WHAT WORD|DLLLL~{####}|U~ STANDS FOR THE GROUP WITH# A CERTAIN NUMBER OF THINGS IN IT?# |D~ 1. BRICKS# 2. ROW# 3. WALL@ 8 |D~NOW KEY YOUR ANSWER.# # |D~ THE SECOND ANSWER IS RIGHT. THERE IS# ONLY 1 BRICK IN EACH BRICK, SO IT'S# NOT THE WORD 'BRICK'.@ 2 WE DON'T KNOW HOW MANY BRICKS OR ROWS# THERE ARE IN A WALL, SO IT'S NOT THE# WORD 'WALL'.@ 7 WEW MANY WEEKS ARE IN A YEAR?@ 7 THERE ARE 52 WEEKS IN A YEAR.# |DD~ 7 {C}> CARS SOLD EACH WEEK# {V} 52 {C}> WEEKS IN A YEAR# |U~ {CCCC}# |U~ 364 {C}> CARS SOLD IN 1 YEAR# |D~ OR...@ 7 PRESS BUTTON 1 TO CONTINUE.# # |CD~ AR DEALER SELLS AN AVERAGE# OF 7 CARS A WEEK, HOW MANY CARS WILL# HE SELL IN A YEAR?# |DD~ 1. 350# 2. 364# 3. 336@ 8 |D~NOW KEY YOUR ANSWER.# # |D~ THE SECOND ANSWER IS CORRECT. DID# YOU FIND THE 'HIDDEN' QUESTION?@ 2 |D~ HO|D~ TO FIGURE OUT HOW MUCH MONEY YOU# |D~ HAVE, YOU PROBABLY MULTIPLIED 4 {V} 10# |D~ AND 4 {V} 5 WITHOUT EVEN THINKING ABOUT# |D~ IT.@ 8 DID YOU KNOW THAT YOU WERE DOING# A 'HIDDEN' PROBLEM?@ 7 |D~PRESS BUTTON 1 TO CONTINUE.# # |CDD~ IF A C |D~ QUESTIONS.# |DDD~ THERE ARE LOTS OF TIMES YOU USE MUL-# |D~ TIPLICATION WITHOUT EVEN THINKING A-# |D~ BOUT IT.@ 8 |D~PRESS BUTTON 1 TO CONTINUE.# # |C~ LET'S SAY YOU HAVE SOME CHANGE# |D~ WHICH INCLUDES 4 DIMES AND 4 NICKELS.# MOTHER EARNS|DLLLLLLLLLL~EACH MONTH# |U~ {V} 12 {C}>MONTHS IN 1 YEAR# |U~ {CCCC}|DLLLLL~$4200 {C}>HOW MUCH PATTY'S MOTHER EARNS# |U~ IN 1 YEAR@ 7 PRESS BUTTON 1 TO CONTINUE.# # |CDD~ MANY TIMES PROBLEMS DO HAVE 'HIDDEN'# ANSWER.# # |D~ THE SECOND ANSWER IS CORRECT.# SOMETIMES PROBLEMS HAVE A 'HIDDEN'# QUESTION. BEFORE YOU COULD WORK THIS# PROBLEM YOU HAD TO KNOW HOW MANY# MONTHS ARE IN A YEAR. NOW YOU CAN WORK# THE PROBLEM.@ 2 $ 350 {C}>HOW MUCH PATTY'S CORRECTLY?@ 7 PRESS BUTTON 1 TO CONTINUE.# # |CDD~ PATTY'S MOTHER HAS A PART-TIME JOB# AND EARNS $350 A MONTH. HOW MUCH DOES# HER MOTHER EARN IN ONE YEAR?# |DD~ 1. $3500# 2. $4200# 3. NOT SURE HOW TO WORK IT@ 8 |D~NOW KEY YOUR MILES SUE CAN# TRAVEL ON 1 GALLON OF GAS@ 1 {V} 11 {CC}> HOW MANY GALLONS OF GAS# {$$$} THE TANK WILL HOLD@ 7 352 {CC}> NUMBER OF MILES SUE CAN# DRIVE ON A FULL TANK OF GAS# |D~ DID YOU DESCRIBE EACH NUMBER# AS?# AS YOU WORK THE PROBLEM WRITE# DOWN WHAT EACH NUMBER STANDS# FOR, INCLUDING THE ANSWER.# |D~ 1. 352# 2. 353# 3. 452@ 8 |D~NOW KEY YOUR ANSWER.# # |D~ THE FIRST ANSWER IS CORRECT.# |D~ 32 {CC}> NUMBER OF MANY THERE ARE ALTOGETHER WHEN THERE# ARE SEVERAL GROUPS OF THE SAME SIZE.@ 7 PRESS BUTTON 1 TO CONTINUE.# # |C~ SUE CAN DRIVE 32 MILES ON A GALLON# OF GAS. IF HER CAR HAS AN ELEVEN-# GALLON TANK, HOW FAR CAN SHE DRIVE ON# A FULL TANK OF G|D~NOW KEY YOUR ANSWER.# # |D~ THE THIRD ANSWER IS CORRECT.# |DD~ 30 {CC}> NUMBER OF CANS IN 1 BOX# {V} 24 {CC}> NUMBER OF BOXES# |U~ {CCCC}# |U~ 720 {CC}> NUMBER OF CANS ALTOGETHER@ 3 |DD~ WE USE MULTIPLICATION TO FIND HOW#BUTTON 1 TO CONTINUE.# # |CD~ DAN STOCKS SHELVES IN A SUPERMARKET.# ONE DAY HE STOCKED 24 BOXES OF CANNED# GOODS. EACH BOX CONTAINED 30 CANS.# HOW MANY CANS DID DAN STOCK THAT DAY?# |DD~ 1. 30# 2. 54# 3. 720@ 8 Y# GROUPS THERE ARE.# |D~ IN OUR PROBLEM WE NEEDED TO KNOW HOW# MANY BRICKS ARE IN 5 ROWS (GROUPS).# |DD~ 63 {CC}>TELLS HOW MANY IN EACH GROUP# {V} 5 {CC}>TELLS HOW MANY GROUPS# |U~ {CCC}# |U~ 315 {CC}>TELLS HOW MANY ALTOGETHER@ 8 |D~PRESS DO|DLL~{##}|U~ KNOW, HOWEVER, THAT THERE ARE# 63 BRICKS IN 1 ROW.# |D~ THE KEY WORD IS 'EACH' -- '63 BRICKS# IN EACH|DLLLL~{####}|U~ ROW.'@ 7 PRESS BUTTON 1 TO CONTINUE.# # |C~ ONCE YOU HAVE FOUND OUT HOW MANY ARE# IN EACH GROUP, FIND OUT HOW MAN 52 {C}> WEEKS IN A YEAR# {V} 7 {C}> CARS SOLD EACH WEEK# |U~ {CCC}# |U~ 364 {C}> CARS SOLD IN ONE YEAR# |DDD~ YOU CAN TURN MULTIPLICATION# |D~ PROBLEMS AROUND TO MAKE THEM# |D~ EASIER.@ 8 |D~PRESS BUTTON 1 TO CONTINUE.# # |CDD~ JIM TYPES 46 WORDS PER MINUTE. AT# THIS RATE HOW MANY WORDS CAN HE TYPE# IN HALF AN HOUR ?# |DDD~ 1. 23# 2. 2760# 3. 1380@ 8 |D~NOW KEY YOUR ANSWER.# # |D~ THE THIRD ANSWER IS THE CORRECT  {Unit with shortened Pet routines, provision for charset graphics}  {$setc apple := 2}  {$s+,v-} {turn swapping on, var checking off} unit petstuff;  { intrinsic code 26; }  {$c copyright Prescription Learning 1983}   interface "uses turtlegraphiOXES# |U~24 IN 2 DOZEN. {CCC}# |U~ 792 - DONUTS@ 7 PRESS BUTTON 1 TO CONTINUE.# # @ 8  FORE YOU CAN FIND OUT HOW MANY DONUTS# WERE SOLD, YOU NEED TO KNOW HOW MANY# DONUTS ARE IN A BOX.# THE HIDDEN QUESTION WAS 'HOW MANY# IS A DOZEN?'@ 1 |D~THERE ARE 12 {C}> 24 - DONUTS IN A BOX# |U~IN 1 DOZEN,# |U~SO THERE ARE {V} 33 - B TAINS 2 DOZEN DONUTS. ON A TYPICAL# DAY THEY WILL SELL 33 BOXES. HOW MANY# DONUTS WILL BE SOLD ?# ( READ THE QUESTION CAREFULLY. )# |D~ 1. 792# 2. 396# 3. 660@ 8 NOW KEY YOUR ANSWER.# # |D~ THE FIRST ANSWER IS CORRECT. BE-# EARNED IN 1 WEEK# "{V} 52 {C}> WEEKS IN A YEAR# |U~ {CCCC}# |U~ $5460 {C}> MONEY EARNED IN 1 YEAR@ 7 |D~PRESS BUTTON 1 TO CONTINUE.# # |C~ THE SWEET TOOTH BAKERY SELLS A LOT# OF DONUTS BY THE BOX. EACH BOX CON-# WEEK'S SALARY@ 8 |D~PRESS BUTTON 1 TO CONTINUE.# # |C~ THE HIDDEN QUESTION WAS 'HOW MANY# WEEKS ARE IN A YEAR?'# R E M E M B E R ?@ 8 |D~ NOW WE'RE READY TO FIND OUT HOW# MUCH VANESSA WILL MAKE IN 1 YEAR.# |D~ $ 105 {C}> MONEY AR, YOU# NEEDED TO KNOW HOW MUCH SHE EARNS IN# 1 WEEK.# THE PROBLEM DID NOT GIVE US THAT# INFORMATION, SO THAT WAS OUR 'HIDDEN'# STEP.# '35 {C}> HOURS WORKED IN 1 WEEK# ( &$ 3 {C}> WAGE PER HOUR# |U~ {CCC}# |U~ $ 105 {C}> ONE|DD~ THIS PROBLEM HAD A 'HIDDEN' QUES-# TION AND 2 STEPS. PLUS, ONE OF THE# STEPS WAS A HIDDEN QUESTION.# |DD~ LET'S LOOK MORE CLOSELY !@ 7 PRESS BUTTON 1 TO CONTINUE.# # |C~ BEFORE YOU COULD FIGURE OUT HOW# MUCH VANESSA EARNED IN A YE 8 |D~ 1. $ 105# 2. $ 5460# 3. $ 5780@ 7 |D~NOW KEY YOUR ANSWER.# # |D~ THE SECOND ANSWER IS CORRECT.# |D~ IF YOU GOT THIS ANSWER RIGHT,# YOU DESERVE 2|DL~{#}|U~ PATS ON THE BACK.@ 2 |DD~ NOW TRY THIS ONE !@ 7 PRESS BUTTON 1 TO CONTINUE.# # |C~ VANESSA EARNS $ 3 AN HOUR. IF# SHE WORKS 35 HOURS A WEEK, HOW MUCH# WILL SHE EARN IN A YEAR ?# |D~ (THINK THROUGH THE PROBLEM AND WATCH# OUT FOR THE HIDDEN QUESTIONS.)@ ONE.# |D~ THE 'HIDDEN' QUESTION WAS 'HOW# MANY MINUTES ARE IN HALF AN HOUR?'@ 3 THERE ARE 30 MINUTES IN HALF AN HOUR.# |D~ 46 {C}> WORDS TYPED PER MINUTE# {V} 30 {C}> MINUTES# |U~ {CCCC}# |U~ 1380 {C}> WORDS TYPED IN A HALF HOUR#cs; "const max_x = 279; (max_y = 191; (longestlength = 255; ( "type long = integer [8]; 'longeststring = string [longestlength]; " stringlength = 0..80; 'charset = set of char; 'contrl = (up, down, left, right, clear, home, normal, inverse, 1complement, flash, rubout, bell); 'xcord = 0..39; 'ycord = 0..24; 'bit = 0..7; 'byte = set of bit; 'charimage = packed array [0..7] of byte; " font = packed array [0..127] of charimage; "var mode: integer; $ charfile: file of font; 'curren"var n: integer; "begin $for n := 1 to len (st) do &st [n] := cap (st[n]) "end; {caps} "  function keypress {:boolean};   { from June 1983 Call -A.P.P.L.E., pg. 65, by Joel Buckley & Ron DeGroat}  type { bit = 0..7; %byte = set of bit; } %wor &then val := trunc (temp) &else val := 0 "end; {val} "  function cap {ch: char}{:char}; "begin $if ch in ['a'..'z'] &then cap := chr ( ord (ch) - (ord ('a') - ord ('A'))) &else cap := ch "end; {cap} "  procedure caps {var st:string}; ENGTH(STRG)); .END; (* IF *) (END; (* WHILE *) %IF NEGATIVE THEN (VALUE:= -VALUE; "END; (* OF EVALUATE *) &  function val {(line: string): integer}; "var temp: long; &tempint: integer; "begin " evaluate (line, temp, tempint); $if temp < maxintOT A DIGIT *) .BEGIN 1DONE:= TRUE; 1IF TMPCHR= '-' THEN 4IF NODIGITS THEN 7(* LEADING MINUS SIGN *) 7BEGIN :NEGATIVE:= NOT NEGATIVE; :DONE:= FALSE; 7END; (* IF *) .END; (* IF *) +IF NOT DONE THEN .BEGIN 1CURPOS:= CURPOS+ 1; 1DONE:= (CURPOS> L%NODIGITS:= TRUE; %VALUE:= 0; %DONE:= (LENGTH(STRG)= 0); %CURPOS:= 1; %WHILE NOT DONE DO (BEGIN +TMPCHR:= STRG[CURPOS]; +IF TMPCHR IN ['0'..'9'] THEN .BEGIN 1VALUE:= 10* VALUE+ ORD(TMPCHR)- 48; 1NODIGITS:= FALSE; .END +ELSE .(* CHARACTER IS N THE FIRST NON-NUMERIC #* CHARACTER IN STRG AS CURPOS. # from Apple Pascal Utility Library 'by Charles D. Eckhaus (c) 1981 #* #*) "VAR %DONE, %NEGATIVE, %NODIGITS (: BOOLEAN; %TMPCHR (: CHAR; "BEGIN (* EVALUATE *) %NEGATIVE:= FALSE; {:ycord}; "begin $cursory := (max_y - 7 - turtley) div 8 mod 24 "end; {cursory} " PROCEDURE EVALUATE(*STRG: STRING; VAR VALUE: LONG; VAR CURPOS: INTEGER*); "(* #* EVALUATE THE LEADING NUMERIC CHARACTERS OF STRG. #* RETURN VALUE AND THE POSITION OF}  procedure cursorxy {column: xcord; row: ycord}; "begin $moveto (7 * column mod max_x, max_y - 7 - 8 *( row mod 24) ) "end; {cursorxy} "  function cursorx {:xcord}; "begin $cursorx := turtlex div 7 mod 40 "end; {cursorx} "  function cursory $currentset := charfile^; $close (charfile); ${$i+} "end; {fontread}   function len {(line: longeststring): integer};  var L: integer; "begin $L := length (line); $if L > 0 &then len := L + scan (-L, <>' ', line[L]) &else len := 0 "end; {lenow: ycord); "function cursorx: xcord; "function cursory: ycord; "  implementation   function fontread {(name:string):integer};  begin ${$i-} $reset (charfile, name); $fontread := ioresult; $if ioresult <> 0 %then exit (fontread); string (line: longeststring); "procedure printstring (line: longeststring); "procedure printat (x: xcord; y: ycord; line: longeststring); "procedure input (prompt: string; var line: string; maxlen: stringlength);  procedure cursorxy (column: xcord; r); "procedure cursor (direction: contrl; count: integer); "procedure border; "procedure crlf; "procedure control (var line: longeststring); "procedure graphics (var line: longeststring); "procedure printit (var line: longeststring); "procedure write"procedure caps (var st:string); "function keypress: boolean; "procedure fill (l, r, b, t : integer; color : screencolor); "procedure wait (count: integer); "procedure wfchar (ch:char); "procedure wfstring (s: string); "procedure fontype (m: integertset: font; ' "function fontread (name: string):integer; "function len (line: longeststring): integer; "procedure evaluate (strg: string; var value: long; var curpos: integer); "function val (line: string): integer; "function cap (ch: char):char; d = packed array [0..1] of byte;   var memref: record case boolean of -true: (addr: integer); -false: (byte: ^word); +end; $rptr, wptr, conflags: byte; $  begin {keypress}  with memref do begin &addr := -16619; {console flags} &conflags := byte^[0]; {save flags} &byte^[0] := [6]; {set flush flag} &write (' '); {check console} &byte^[0] := conflags; {restore flags} & &addr := -16616; {buffer counters} &rptr := byte^[0]; {input} &wptr := byte^[1];  procedure printstring {line: longeststring}; "begin $writestring (line); $crlf "end; {printstring} "  procedure printat {x:xcord; y: ycord; line: longeststring}; "begin {printat} " cursorxy (x, y); $printstring (line) "end; {printat} " proceocedure writestring {line: string}; "begin " while length (line) > 0 do &begin (if line [1] = '|' then control(line) *else (if line [1] = '{' then graphics(line) *else (printit(line) &end; {do} "end; {writestring}  oint := pos ('}', line); &wfstring (copy (line, 2, point - 2)); &delete (line, 1, point) &{leave sirius graphics mode} $end; {graphics} " "procedure printit {var line: string}; $begin $ wchar (line[1]); &delete (line, 1, 1) $end; {printit}  pr 'C': cursor (clear, 0); *end; {case} & index := index + 1 &until line [index] = '~'; &delete (line, 1, pos ('~', line)) $end; {control} $ "procedure graphics {var line: string}; "var point: integer; $begin $ {enter sirius graphics mode} &p$begin &index := 2; &repeat (case cap(line [index]) of *'U': cursor (up, 1); 'D': cursor (down, 1); *'L': cursor (left, 1); 'R': cursor (right, 1); *'I': cursor (inverse, 0); 'N': cursor (normal, 0); *'H': cursor (home, 0); 0, max_y - 8 * n); (wchar (chr (127)) &end; $cursor (home, 0) "end; {border} "  procedure crlf; "begin $moveto (0, turtley - 8); $cursor (normal, 0) "end; {crlf}   procedure control {var line: string}; "var index: integer; &ch: char; n := 0 to 39 do wchar (chr (127)); $for n := 1 to 23 do &begin (moveto (max_x - 7, max_y - 8 * n); (wchar (chr (127)) &end; $for n := 39 downto 0 do &begin (moveto (7 * n, 0); (wchar (chr (127)) &end; $for n := 23 downto 1 do &begin (moveto (); 2wchar (' '); 2cursor (left, 1) 0end; {rubout} &bell: for n := 1 to count do begin 2write (chr (7)); 2cursor (flash, 50) 0end; {bell do} &end {case} "end; {cursor} "  procedure border; "var n: integer; "begin $cursor (clear, 0); $for2for n := 1 to count do wchar (chr (20)); 2cursor (normal, 1) 0end; {complement} &flash: for n := 1 to 2 do begin 4cursor (complement, 1); 4cursor (left, 1); 4wait (count); 2end; {flash} &rubout: for n := 1 to count do begin 2cursor (left, 1oveto (turtlex + 7 * count, turtley); &normal: fontype (10); &inverse: fontype (5); &home: moveto (0, max_y - 8); &clear: begin 2moveto (0, max_y - 8); 2fill (0, max_x, 0, max_y, black) 0end; {clear} &complement: 0begin 2fontype (3); ection: contrl; count: integer};  var n: integer; "begin {cursor} " case direction of &up: moveto (turtlex, turtley + 8 * count); &down: moveto (turtlex, turtley - 8 * count); &left: moveto (turtlex - 7 * count, turtley); &right: mstring {(s: string)}; "var n: integer; "begin {wfstring} $for n := 1 to length (s) do %wfchar (s [n]); "end; {wfstring} "  procedure fontype {(m: integer)}; "begin {fontype} $mode := m; $chartype (mode) "end; {fontype}   procedure cursor {dir$for n := 1 to count do &if keypress then exit (wait) "end;   procedure wfchar {(ch: char)}; "begin {wfchar} $drawblock (currentset [ord(ch)], 1, 0, 0, 7, 8, turtlex, turtley, mode); $moveto (turtlex + 7, turtley) "end; {wfchar} "  procedure wf {output} $end; {with} $ "keypress := (rptr <> wptr)  end; {keypress}   procedure fill ; "begin $viewport (l, r, b, t); $fillscreen (color); " viewport (0, max_x, 0, max_y) "end; {fill} "  procedure wait ;  var n: integer; "begin dure input {(prompt: string; var line: string; maxlen: stringlength)};  const ordBS = 8; &ordCR = 13; &  var temp: string; " "function append (var line: longeststring; ch: char; 8maxlen: stringlength; validchar: charset): boolean; $begin {append} &{$r-} &if (length (line) < maxlen) and (ch in validchar) (then begin *line [0] := chr (ord (line[0]) + 1); *line [length(line)] := ch; *append := true *end {if} (else append := false &{$r+} $end; {append} " "begin $writestring (concat (prom"procedure caps (var st:string); "function keypress: boolean; "procedure fill (l, r, b, t : integer; color : screencolor); "procedure wait (count: integer); "procedure wfchar (ch:char); "procedure wfstring (s: string); "procedure fontype (m: integertset: font; ' "function fontread (name: string):integer; "function len (line: longeststring): integer; "procedure evaluate (strg: string; var value: long; var curpos: integer); "function val (line: string): integer; "function cap (ch: char):char; 1complement, flash, rubout, bell); 'xcord = 0..39; 'ycord = 0..24; 'bit = 0..7; 'byte = set of bit; 'charimage = packed array [0..7] of byte; " font = packed array [0..127] of charimage; "var mode: integer; $ charfile: file of font; 'currencs; "const max_x = 279; (max_y = 191; (longestlength = 255; ( "type long = integer [8]; 'longeststring = string [longestlength]; " stringlength = 0..80; 'charset = set of char; 'contrl = (up, down, left, right, clear, home, normal, inverse,  {Unit with shortened Pet routines, provision for charset graphics}  {$setc apple := 2}  {$s+,v-} {turn swapping on, var checking off} unit petstuff;  { intrinsic code 26; }  {$c copyright Prescription Learning 1983}   interface "uses turtlegraphiKEYPRESSFILL 'N^  begin {initialization}  end.  p) = 1 4then begin 6cursor (right, length (line)); 6cursor (rubout, length (line)); 6end; {if} 2wchar (keyboard^) 2end {if} 0else cursor (bell, 1); $ end; {if} $until eoln (keyboard); $if length (temp) > 0 &then line := temp "end; {input} .delete (temp, length (temp), 1); .cursor (rubout, 1); .if length (temp) = 0 0then begin 2writestring (line); 2cursor (left, length (line)) 2end; {if} /end {if} ,else .if append (temp, keyboard^, maxlen, [' '..'~']) 0then begin 2if length (tempt, line)); $cursor (left, length (line)); $temp := ''; $unitclear (1); $repeat &repeat cursor (flash, 50) (until keypress; &get (keyboard); &if not eoln (keyboard) (then begin *if (ord (keyboard^) = ordBS) and (length (temp) > 0) ,then begin ); "procedure cursor (direction: contrl; count: integer); "procedure border; "procedure crlf; "procedure control (var line: longeststring); "procedure graphics (var line: longeststring); "procedure printit (var line: longeststring); "procedure writestring (line: longeststring); "procedure printstring (line: longeststring); "procedure printat (x: xcord; y: ycord; line: longeststring); "procedure input (prompt: string; var line: string; maxlen: stringlength);  procedure cursorxy (column: xcord; r$for n := 1 to count do &if keypress then exit (wait) "end;   procedure wfchar {(ch: char)}; "begin {wfchar} $drawblock (currentset [ord(ch)], 1, 0, 0, 7, 8, turtlex, turtley, mode); $moveto (turtlex + 7, turtley) "end; {wfchar} "  procedure wf {output} $end; {with} $ "keypress := (rptr <> wptr)  end; {keypress}   procedure fill ; "begin $viewport (l, r, b, t); $fillscreen (color); " viewport (0, max_x, 0, max_y) "end; {fill} "  procedure wait ;  var n: integer; "begin gs := byte^[0]; {save flags} &byte^[0] := [6]; {set flush flag} &write (' '); {check console} &byte^[0] := conflags; {restore flags} & &addr := -16616; {buffer counters} &rptr := byte^[0]; {input} &wptr := byte^[1]; d = packed array [0..1] of byte;   var memref: record case boolean of -true: (addr: integer); -false: (byte: ^word); +end; $rptr, wptr, conflags: byte; $  begin {keypress}  with memref do begin &addr := -16619; {console flags} &confla"var n: integer; "begin $for n := 1 to len (st) do &st [n] := cap (st[n]) "end; {caps} "  function keypress {:boolean};   { from June 1983 Call -A.P.P.L.E., pg. 65, by Joel Buckley & Ron DeGroat}  type { bit = 0..7; %byte = set of bit; } %wor &then val := trunc (temp) &else val := 0 "end; {val} "  function cap {ch: char}{:char}; "begin $if ch in ['a'..'z'] &then cap := chr ( ord (ch) - (ord ('a') - ord ('A'))) &else cap := ch "end; {cap} "  procedure caps {var st:string}; ENGTH(STRG)); .END; (* IF *) (END; (* WHILE *) %IF NEGATIVE THEN (VALUE:= -VALUE; "END; (* OF EVALUATE *) &  function val {(line: string): integer}; "var temp: long; &tempint: integer; "begin " evaluate (line, temp, tempint); $if temp < maxintOT A DIGIT *) .BEGIN 1DONE:= TRUE; 1IF TMPCHR= '-' THEN 4IF NODIGITS THEN 7(* LEADING MINUS SIGN *) 7BEGIN :NEGATIVE:= NOT NEGATIVE; :DONE:= FALSE; 7END; (* IF *) .END; (* IF *) +IF NOT DONE THEN .BEGIN 1CURPOS:= CURPOS+ 1; 1DONE:= (CURPOS> L%NODIGITS:= TRUE; %VALUE:= 0; %DONE:= (LENGTH(STRG)= 0); %CURPOS:= 1; %WHILE NOT DONE DO (BEGIN +TMPCHR:= STRG[CURPOS]; +IF TMPCHR IN ['0'..'9'] THEN .BEGIN 1VALUE:= 10* VALUE+ ORD(TMPCHR)- 48; 1NODIGITS:= FALSE; .END +ELSE .(* CHARACTER IS N THE FIRST NON-NUMERIC #* CHARACTER IN STRG AS CURPOS. # from Apple Pascal Utility Library 'by Charles D. Eckhaus (c) 1981 #* #*) "VAR %DONE, %NEGATIVE, %NODIGITS (: BOOLEAN; %TMPCHR (: CHAR; "BEGIN (* EVALUATE *) %NEGATIVE:= FALSE; {:ycord}; "begin $cursory := (max_y - 7 - turtley) div 8 mod 24 "end; {cursory} " PROCEDURE EVALUATE(*STRG: STRING; VAR VALUE: LONG; VAR CURPOS: INTEGER*); "(* #* EVALUATE THE LEADING NUMERIC CHARACTERS OF STRG. #* RETURN VALUE AND THE POSITION OF}  procedure cursorxy {column: xcord; row: ycord}; "begin $moveto (7 * column mod max_x, max_y - 7 - 8 *( row mod 24) ) "end; {cursorxy} "  function cursorx {:xcord}; "begin $cursorx := turtlex div 7 mod 40 "end; {cursorx} "  function cursory $currentset := charfile^; $close (charfile); ${$i+} "end; {fontread}   function len {(line: longeststring): integer};  var L: integer; "begin $L := length (line); $if L > 0 &then len := L + scan (-L, <>' ', line[L]) &else len := 0 "end; {lenow: ycord); "function cursorx: xcord; "function cursory: ycord; "  implementation   function fontread {(name:string):integer};  begin ${$i-} $reset (charfile, name); $fontread := ioresult; $if ioresult <> 0 %then exit (fontread); string {(s: string)}; "var n: integer; "begin {wfstring} $for n := 1 to length (s) do %wfchar (s [n]); "end; {wfstring} "  procedure fontype {(m: integer)}; "begin {fontype} $mode := m; $chartype (mode) "end; {fontype}   procedure cursor {direction: contrl; count: integer};  var n: integer; "begin {cursor} " case direction of &up: moveto (turtlex, turtley + 8 * count); &down: moveto (turtlex, turtley - 8 * count); &left: moveto (turtlex - 7 * count, turtley); &right: m.delete (temp, length (temp), 1); .cursor (rubout, 1); .if length (temp) = 0 0then begin 2writestring (line); 2cursor (left, length (line)) 2end; {if} /end {if} ,else .if append (temp, keyboard^, maxlen, [' '..'~']) 0then begin 2if length (tempt, line)); $cursor (left, length (line)); $temp := ''; $unitclear (1); $repeat &repeat cursor (flash, 50) (until keypress; &get (keyboard); &if not eoln (keyboard) (then begin *if (ord (keyboard^) = ordBS) and (length (temp) > 0) ,then begin &{$r-} &if (length (line) < maxlen) and (ch in validchar) (then begin *line [0] := chr (ord (line[0]) + 1); *line [length(line)] := ch; *append := true *end {if} (else append := false &{$r+} $end; {append} " "begin $writestring (concat (promdure input {(prompt: string; var line: string; maxlen: stringlength)};  const ordBS = 8; &ordCR = 13; &  var temp: string; " "function append (var line: longeststring; ch: char; 8maxlen: stringlength; validchar: charset): boolean; $begin {append} procedure printstring {line: longeststring}; "begin $writestring (line); $crlf "end; {printstring} "  procedure printat {x:xcord; y: ycord; line: longeststring}; "begin {printat} " cursorxy (x, y); $printstring (line) "end; {printat} " proceocedure writestring {line: string}; "begin " while length (line) > 0 do &begin (if line [1] = '|' then control(line) *else (if line [1] = '{' then graphics(line) *else (printit(line) &end; {do} "end; {writestring}  oint := pos ('}', line); &wfstring (copy (line, 2, point - 2)); &delete (line, 1, point) &{leave sirius graphics mode} $end; {graphics} " "procedure printit {var line: string}; $begin $ wchar (line[1]); &delete (line, 1, 1) $end; {printit}  pr 'C': cursor (clear, 0); *end; {case} & index := index + 1 &until line [index] = '~'; &delete (line, 1, pos ('~', line)) $end; {control} $ "procedure graphics {var line: string}; "var point: integer; $begin $ {enter sirius graphics mode} &p$begin &index := 2; &repeat (case cap(line [index]) of *'U': cursor (up, 1); 'D': cursor (down, 1); *'L': cursor (left, 1); 'R': cursor (right, 1); *'I': cursor (inverse, 0); 'N': cursor (normal, 0); *'H': cursor (home, 0); 0, max_y - 8 * n); (wchar (chr (127)) &end; $cursor (home, 0) "end; {border} "  procedure crlf; "begin $moveto (0, turtley - 8); $cursor (normal, 0) "end; {crlf}   procedure control {var line: string}; "var index: integer; &ch: char; n := 0 to 39 do wchar (chr (127)); $for n := 1 to 23 do &begin (moveto (max_x - 7, max_y - 8 * n); (wchar (chr (127)) &end; $for n := 39 downto 0 do &begin (moveto (7 * n, 0); (wchar (chr (127)) &end; $for n := 23 downto 1 do &begin (moveto (); 2wchar (' '); 2cursor (left, 1) 0end; {rubout} &bell: for n := 1 to count do begin 2write (chr (7)); 2cursor (flash, 50) 0end; {bell do} &end {case} "end; {cursor} "  procedure border; "var n: integer; "begin $cursor (clear, 0); $for2for n := 1 to count do wchar (chr (20)); 2cursor (normal, 1) 0end; {complement} &flash: for n := 1 to 2 do begin 4cursor (complement, 1); 4cursor (left, 1); 4wait (count); 2end; {flash} &rubout: for n := 1 to count do begin 2cursor (left, 1oveto (turtlex + 7 * count, turtley); &normal: fontype (10); &inverse: fontype (5); &home: moveto (0, max_y - 8); &clear: begin 2moveto (0, max_y - 8); 2fill (0, max_x, 0, max_y, black) 0end; {clear} &complement: 0begin 2fontype (3); p) = 1 4then begin 6cursor (right, length (line)); 6cursor (rubout, length (line)); 6end; {if} 2wchar (keyboard^) 2end {if} 0else cursor (bell, 1); $ end; {if} $until eoln (keyboard); $if length (temp) > 0 &then line := temp "end; {input}   begin {initialization}  end.   begin {initialization}  end.  p) = 1 4then begin 6cursor (right, length (line)); 6cursor (rubout, length (line)); 6end; {if} 2wchar (keyboard^) 2end {if} 0else cursor (bell, 1); $ end; {if} $until eoln (keyboard); $if length (temp) > 0 &then line := temp "end; {input} .delete (temp, length (temp), 1); .cursor (rubout, 1); .if length (temp) = 0 0then begin 2writestring (line); 2cursor (left, length (line)) 2end; {if} /end {if} ,else .if append (temp, keyboard^, maxlen, [' '..'~']) 0then begin 2if length (tem