`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߮HSYSTEM.STARTUPfT SYSTEND.CODEVfCMATHTH 7& SYSTEM.APPLEVf&Q SYSTEM.PASCALVfQsSYSTEM.LIBRARYfڭstSYSTEM.MISCINFOtvSYSTEM.CHARSETfvx PET.CHARSETVfx SYSTEM.CODEVfꭎINTROr;Vf蠏 LESSON.TEXTVf&꽌ɪɖ'*&%&,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 áޢá ~תޢޢޢ0&~ʈƅFyʈƅ}ʈƍƎƋƊЌإL2d|e~28ʈƅyʈƅƉ` LŁ|}ƅLE||怦}ʚH恺~8ʈƅ  ILL, LLL,E0LL1 L ILL,ELL1 LEe8刅刪ʈʈ|} ŀ}|ƀL~HHL,~HH~HHHHHHL,~ʈƅFHHHH恥HL,0~}ʈƅ0I愊iʈؚH恥LŁ|} ƅL ~8刅剅<8ȱ` 5l 5 l 5lhzh{hƁhhhƁ}eʆƀƀ|ʊe~8偅z{lzhhhhhh8冐 0 h HHHL,LwIL,h hrsʈ .ł( Ł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 24<& צ š š۾.ˡצ([šܕ!!(š۾:ˡ١.TEXTת .CODEת!!ȡ(ܾܾ š!!8倅偪ʈƅ})H揥>ʈƅ ~擥  抦|ɥ8包~ƅLII懩&&u`hh HHHHHL,} ei|ʽ 8襁i}ƅ|L,hƀhhh8hohlhXhhhFffff80)ƅܥ#FfII懥HHL,Lwhhh [NA4'á +-Í-09Ȅ0ݡߑ ع      z Z   :    ( tV8z <|  uh[NA4'á +-Í-09Ȅ0ݡߑ ع     ݕ 0 . ݑ0 ݕݕ ؂ ɡ  |,  &  * عteVG8  ) ͉݂ġ ݂$ $ $ȡ%  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>  z Z   :    ( tV8z <| "PROCEDURE SETCHAIN(TYTLE:STRING); "PROCEDURE SETCVAL(VAL:STRING); "PROCEDURE GETCVAL(VAR VAL:STRING); "PROCEDURE SWAPON; "PROCEDURE SWAPOFF; "PROCEDURE SWAPGPON; "  IMPLEMENTATION X E >? 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>  Z4تP+,+,ȡ+++V 0 Z Z^ Z ><0 Zl    ڪP."ˡ[̄$ʄ$N.ʄ$M ń.ʄ$M  ʄ$̄$.ʄ$M .ʄ$M Y@'  ǯ?Ǭ?ǰ?Ǯ?ǩ?áǫ?Ǭ?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 'Z!? (Z$? )Z'?| *Z+?+L +Z.?l ,Z1?ս -Z5?D .Z8?& /Z;?: 0Z>?> 1ZA?4 2ZD?v 3ZF?  4ZI? 5ZL?Xs 6ZO? 7ZQ? 8ZT?; 9ZV?% :ZY? ;Z[?Lo <Z]?г =Z_? >Zb? ?Zd?  @Zf?] AZh? BZ 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       hhhHH h )# " `' & 8 ! 0%ee8` !  e e8"#088$ % 0%ee8`$ %  e e8&'08HHL<  y B  ""##8&$iT8&UU !  U"# UT`+%$Y)!p h hhhhhhhhhhH8 )%HHH`5>hhh)hh h h h hhhhhhhhh 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|?aSETPORT @=P l=7MAKEPORT|=P 7 ==L1TURTLEGR)RTCHEA=GA440 BS|== "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 w*>`@`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.TEX-+*ġڏ+ ,+ ,+ˡ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 , """,2"2, >"< ,22,"""    ****"""&""""" ,22," $,2""""""6**"""" ,2"">>((*|V  N v@NEWMATH PETSTUFFPROCESSMMTHUNIT INITMATHFINDRESTQUITMATHENDSCREEGOSUB900QUERY PARSE :؛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"$[ٛ~á~צ} ( bȡ Bȡ 2 {^@$Bd.'ȡ ȡǿ؏'ġ؏ġǿ؏6 تP+,+,ȡ+ ++V 0 ث ٹ  ؏  ؏ ؏  ؏   ǿǿǿ  ȡ ȡȡٛٛ,@@ @\  ǿ  ȡ & 0    0- ټ00-/0-á -..///.ټZڪP-0- -Z8ڳ aA,ڪP""ˡ0R6ڪ̀ʀšʀʀ ʀ 6ُǿ ('ǿ ڪP.-//p0 Q!See Your Instructor."Press Ctrl-Reset To ReStart Again!!DP 5342 6 7(KR   תPᥑ Pf0VJ\ 1ë Pإ Pإ Pإ Pإ Pإ P1Ú(THIS Program Cannot Be Run At This Time334434SP |)'|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 Serviceڦ ת 9,108  ::wv10x6vwצ intro.textˡUצintroˡ3צCan't find introductionצ :lesson.textˡp H ` ȡ %8 L^ .`R tP̀̀ʀʀȡ.ʀ(Cƀƀʀ̀ǖ @ \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  תPPf0VJP |)|HDDDDDDRRRRRRRRRRRRRRR~h % MASTERYqPxd́́ʁʁȡ|ʁ)תPʁ́Ĺ́ǿ |)צ|HRRRRRR~CLAS II MATHP|)́Ɓ|)PƁצ Lesson-YƁƥ]ƁƪP<|)צ-|HDDDDDDDDRRRRRRR~PROGRAM TERMINATED BY USER.P|)צ.|HDDDDDDDDDDRRRRRRRR~PLEASE RECORD YOUR SCORE.P|),|HDDDDDDDDDDDDRRRRRRRRRR~REMOVE THE DISKETTEתP|)צ6|HDDDDDDDDDDDDDDRRRRR~AN^uHM4  `"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 á  wwԄ>yyեyyyy쩐צ+Data file error -- blank used as terminator &áӝš&ND TURN OFF THE APPLE COMPUTER.PvB́́ʁʁȡ,|ʁ)צ|ʁ)ʁ́Ĺ[́́ʁʁȡ,|ʁ)צ|ʁ)ʁ́Ĺ|)צ |) [jbrx )PƁצ Lesson-YƁƥ šӭ'צ-|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ƁƥZ |RRR~COPY THE PROBLEM AND MULTIPLY.% 78420# {&}& |RR~{&}& |RRRR~{&}& |DRR~{&}& |DRRRR~{&}& |RRRRRRRRRRRRRRRU~{V}|D~{CCCCC}|LUI~0|N~% 086115,# |DDDRRRR~{&}& |DRRI~2|NR~0|DDLLL~{&}& |DDD~{&}& |U~{&}& |DDDLLLL~{&}& |DDDLL~{&}& |DDDL~{&}& |DDDDDDRRR~PRESS BU~{&}& |DRR~{&}& |DRRRR~{&}& |RRRRRRRRRRRRRRRU~{V}|D~{CCCCC}|LUI~0|N~% 0522449,# |DDDRRRR~{&}& |DRRI~5|NR~0|DDLLL~{&}& |URR~{&}& |DDD~{&}& |U~{&}& |DDDLLLL~{&}& |DDDLL~{&}& |DDDL~{&}& |DDDDDDDRRR~PRESS BUTTON 1 TO CONTINUE.^ |DDRRRRRRRRRR~784 {V} 20 = ?% LY BY 8._ |UUUUUUURRRRRRRRRRRRRRRRRRI~8|NR~0% 848234,@ |DDDRR~8& |URR~4& |DDD~8& |U~2& |DDDLLLL~3& |DDDLL~4& |DDDL~,& |DDDDDDDRRR~PRESS BUTTON 1 TO CONTINUE.^ |DDRRRRRRRRRR~985 {V} 50 = ?% Z |RRR~COPY THE PROBLEM. THEN MULTIPLY.% 98550# {&}& |RR~{&}& |RRRRRRRRRRRRRR~436 {V} 80 = ?% Z |RRR~COPY THE PROBLEM. THEN YOUR COM-_  |DRRR~PUTER WILL FINISH IT.% 43680# {&}& |RR~{&}& |RRRR~{&}& |DRR~{&}& |DRRRR~{&}& |RRRRRRRRRRRRRRRU~{V}|D~{CCCCC}|LUI~0|N~% 0@ |DDDRRRR~0& Z |RRR~NEXT YOUR COMPUTER WILL_  |DRRR~MULTIP|RRRRRRRRRRRRRRRU~{V}|D~{CCCC}|LUI~0|ND~% Z |RRR~BRING DOWN THE ZERO.% 0# |DDDRRR~{&}& Z |RRR~NOW MULTIPLY BY 9._ |UUUUUUURRRRRRRRRRRRRRRRRI~9|NR~0% 5467,# |DDDR~{&}& |UR~{&}& |DDDLLL~{&}& |DDDL~{&}& |DDDLL~{&}& |DDDDDDDRRR~PRESS BUTTON 1 TO CONTINUE.^ |DDRRRRRRRRRRRRRI~7|NR~0% 9432,# |DDDR~{&}& |UR~{&}& |DDDLLL~{&}& |DDDL~{&}& |DDDLL~{&}& |DDDDDDDRRR~PRESS BUTTON 1 TO CONTINUE.^ |DDRRRRRRRRRRR~75 {V} 90 = ?% Z |RRR~COPY THE PROBLEM.% 7590# |R~{&}& |RRR~{&}& |DR~{&}& |DRRR~{&}& CONTINUE.^ |DDRRRRRRRRRRR~47 {V} 70 = ?% Z |RRR~COPY THE PROBLEM.% 4770# |R~{&}& |RRR~{&}& |DR~{&}& |DRRR~{&}& |RRRRRRRRRRRRRRRU~{V}|D~{CCCC}|LUI~0|ND~% Z |RRR~FILL THE ONES PLACE WITH A ZERO.% 0# |DDDRRR~{&}& Z |RRR~NOW MULTIPLY BY 7 TENS._ |UUUUUUURRRR NO ONES IN THE MULTI-_ |DRRR~PLIER, SO FILL THE ONES PLACE WITH_ |DRRR~A ZERO.% 0# |DDDRRR~{&}& Z |RRR~NOW MULTIPLY BY 6 TENS._ |UUUUUUURRRRRRRRRRRRRRRRRI~6|NR~0% 8137,# |DDDR~{&}& |UR~{&}& |DDDLLL~{&}& |DDDL~{&}& |DDDLL~{&}& |DDDDDDDRRR~PRESS BUTTON 1 TO|UUUUUUURRRRRRRRRRRRRRRRRI~1|NR~0% 27@ |DDDR~7& |DDDL~2& |DDDDDDDRRR~PRESS BUTTON 1 TO CONTINUE.^ |DDRRRRRRRRRRR~63 {V} 60 = ?% Z |RRR~COPY THE PROBLEM.% 6360# |R~{&}& |RRR~{&}& |DR~{&}& |DRRR~{&}& |RRRRRRRRRRRRRRRU~{V}|D~{CCCC}|LUI~0|ND~% Z |RRR~THERE ARER~1& |DRRR~0& |RRRRRRRRRRRRRRRU~{V}|D~{CCCC}|LUI~0|ND~% Z |RRR~THERE ARE NO ONES IN THE MULTI-_ |DRRR~PLIER, SO YOUR COMPUTER FILLS THE_  |DRRR~ONES PLACE WITH A ZERO.% 0@ |DDDRRR~0& Z |RRR~NOW YOUR COMPUTER WILL_  |DRRR~MULTIPLY BY 1 TEN._ OLUMNS._  |dR~RULE 3: WRITE DOWN THE NUMBER YOU_ |RRRRRRRRRR~CARRY._  |DR~RULE 4: USE A COMMA FOR LARGE NUMBERS._ |DR~PRESS BUTTON 1 TO CONTINUE.^ |DDRRRRRRRRRRR~27 {V} 10 = ?% Z |RRR~WATCH YOUR COMPUTER_  |DRRR~COPY THE PROBLEM.% 2710@ |R~2& |RRR~7& |D |dR~THERE ARE SOME RULES TO FOLLOW WHEN_  |dR~MULTIPLYING WHOLE NUMBERS. THEY ARE:_  |ddR~RULE 1: WRITE DOWN THE 'TIMES' SIGN_  |rrrrrrrrrR~TO HELP YOU REMEMBER TO MUL-_  |RRRRRRRRRR~TIPLY._  |dR~RULE 2: KEEP ALL NUMBERS IN STRAIGHT_  |rrrrrrrrrR~C#@^S_%Z &  |hddddddddrrrrrrrrr~PRESCRIPTION LEARNING_  |ddrrrrrrrrrrrr~MULTIPLICATION_  |ddrrrrrrrrrrrrrrr~LESSON 4_  |ddddddrr~COPYRIGHT 1980 REVISED 1984%  |cRRRRRRRRRR~RULES OF MULTIPLICATION_  |RRRRRRRRrr~{77777777777777777777777}_ TTON 1 TO CONTINUE.^ |DDRRRRRRRRRR~356 {V} 40 = ?% Z |RRR~COPY THE PROBLEM AND MULTIPLY.% 35640# {&}& |RR~{&}& |RRRR~{&}& |DRR~{&}& |DRRRR~{&}& |RRRRRRRRRRRRRRRU~{V}|D~{CCCCC}|LUI~0|N~% 0422214,# |DDDRRRR~{&}& |DRRI~4|NR~0|DDLLL~{&}& |URR~{&}& |DDD~{&}& |U~{&}& |DDDLLLL~{&}& |DDDLL~{&}& |DDDL~{&}& |DDDDDDRRR~PRESS BUTTON 1 TO CONTINUE.^ |DDRRRRRRRRR~643 {V} 500 = ?% Z |RRR~COPY THE PROBLEM. THEN WATCH% |DRRR~YOUR COMPUTER FINISH IT.% 643500# {&}& |RR~{&}& |RRRR~{&}& |D~{&}& |DRR~{&}& |DRRRR~{&}& |RRRRRRRRRD  کɩ  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 |RRRRRRRRRRRRRRRU~{V}|D~{CCCCC}|LUI~0|N~% 00277412,# |DDDRRRR~{&}& |DRRI~0|NR~0|DDLLL~{&}& |DI~8|NR~0|DDLLL~{&}& |URR~{&}& |DDDLL~{&}& |U~{&}& |DDDLLLLLL~{&}& |DDDLLLL~{&}& |DDDL~{&}& |DDDDDDRRR~PRESS BUTTON 1 TO CONTINUE.S  ~{&}& |URR~{&}& |DDDLL~{&}& |DDDLLLLLL~{&}& |DDDLLLL~{&}& |DDDL~{&}& |DDDDDDDDDRRR~PRESS BUTTON 1 TO CONTINUE.^ |DDRRRRRRRRR~159 {V} 800 = ?% Z |RRR~COPY THE PROBLEM AND MULTIPLY.% 159800# {&}& |RR~{&}& |RRRR~{&}& |D~{&}& |DRR~{&}& |DRRRR~{&}& |D~{&}& |DRR~{&}& |DRRRR~{&}& |RRRRRRRRRRRRRRRU~{V}|D~{CCCCC}|LUI~0|N~% Z |RRR~THERE ARE NO ONES OR TENS IN THE_ |DRRR~MULTIPLIER. BRING THE ZEROS DOWN._ |DRRR~THEN MULTIPLY BY 3 HUNDREDS.% 0072521,# |DDDRRRR~{&}& |DRRI~0|NR~0|DDLLL~{&}& |DI~3|NR~0|DDLLLULTIPLY BY 7 HUNDREDS.% 537157,# |DI~7|NR~0|DDLLL~{&}& |URR~{&}& |DDDLL~{&}& |U~{&}& |DDDLLLLLL~{&}& |DDDLLLL~{&}& |DDDL~{&}& |DDDDDDDRRR~PRESS BUTTON 1 TO CONTINUE.^ |DDRRRRRRRRR~719 {V} 300 = ?% Z |RRR~COPY THE PROBLEM.% 719300# {&}& |RR~{&}& |RRRR~{&}&825700# {&}& |RR~{&}& |RRRR~{&}& |D~{&}& |DRR~{&}& |DRRRR~{&}& |RRRRRRRRRRRRRRRU~{V}|D~{CCCCC}|LUI~0|N~% Z |RRR~THERE ARE NO ONES OR TENS IN THE_ |DRRR~MULTIPLIER. FILL BOTH PLACES% |DRRR~WITH ZEROS.% 00# |DDDRRRR~{&}& |DRRI~0|NR~0|DDLLL~{&}& Z |RRR~NOW MRRRRRRU~{V}|D~{CCCCC}|LUI~0|N~% 00511232,@ |DDDRRRR~0& |DRRI~0|NR~0|DDLLL~0& |DI~5|NR~0|DDLLL~5& |URR~1& |DDDLL~1& |U~2& |DDDLLLLLL~3& |DDDLLLL~2& |DDDL~,& |DDDDDDDDRRR~PRESS BUTTON 1 TO CONTINUE.^ |DDRRRRRRRRR~825 {V} 700 = ?% Z |RRR~COPY THE PROBLEM.% 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:צ >? 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>  Z4تP+,+,ȡ+++V 0 Z Z^ Z ><0 Zl    ڪP."ˡ[̄$ʄ$N.ʄ$M ń.ʄ$M  ʄ$̄$.ʄ$M .ʄ$M Y@'  ǯ?Ǭ?ǰ?Ǯ?ǩ?áǫ?Ǭ?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)|RRRRRRRRRRRRRRRU~{V}|D~{CCCCC}|LUI~0|N~% 00277412,# |DDDRRRR~{&}& |DRRI~0|NR~0|DDLLL~{&}& |DI~8|NR~0|DDLLL~{&}& |URR~{&}& |DDDLL~{&}& |U~{&}& |DDDLLLLLL~{&}& |DDDLLLL~{&}& |DDDL~{&}& |DDDDDDRRR~PRESS BUTTON 1 TO CONTINUE.S  Percent correct  % Number correct  צ Total questions  Fá +<<<< Partial Score >>>>듡BPȡ  ؽ 'Z!? (Z$? )Z'?| *Z+?+L +Z.?l ,Z1?ս -Z5?D .Z8?& /Z;?: 0Z>?> 1ZA?4 2ZD?v 3ZF?  4ZI? 5ZL?Xs 6ZO? 7ZQ? 8ZT?; 9ZV?% :ZY? ;Z[?Lo <Z]?г =Z_? >Zb? ?Zd?  @Zf?] AZh? BZ 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       hhhHH h )# " `' & 8 ! 0%ee8` !  e e8"#088$ % 0%ee8`$ %  e e8&'08HHL<  y B  ""##8&$iT8&UU !  U"# UT`+%$Y)!p h hhhhhhhhhhH8 )%HHH`5>hhh)hh h h h hhhhhhhhh 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|?aSETPORT @=P l=7MAKEPORT|=P 7 ==L1TURTLEGR)RTCHEA=GA440 BS|== "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 w\\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?\\&-+*ġڏ+ ,+ ,+ˡ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 G G sX(CXXsX(C..š&.7ǖ .7.9X-Y áá  XXX%ǿǿ %ǿ ǿ . * &F  N^uHLY BY 8._ |UUUUUUURRRRRRRRRRRRRRRRRRI~8|NR~0% 848234,@ |DDDRR~8& |URR~4& |DDD~8& |U~2& |DDDLLLL~3& |DDDLL~4& |DDDL~,& |DDDDDDDRRR~PRESS BUTTON 1 TO CONTINUE.^ |DDRRRRRRRRRR~985 {V} 50 = ?% Z |RRR~COPY THE PROBLEM. THEN MULTIPLY.% 98550# {&}& |RR~{&}& |RRRRRRRRRRRRRR~436 {V} 80 = ?% Z |RRR~COPY THE PROBLEM. THEN YOUR COM-_  |DRRR~PUTER WILL FINISH IT.% 43680# {&}& |RR~{&}& |RRRR~{&}& |DRR~{&}& |DRRRR~{&}& |RRRRRRRRRRRRRRRU~{V}|D~{CCCCC}|LUI~0|N~% 0@ |DDDRRRR~0& Z |RRR~NEXT YOUR COMPUTER WILL_  |DRRR~MULTIP|RRRRRRRRRRRRRRRU~{V}|D~{CCCC}|LUI~0|ND~% Z |RRR~BRING DOWN THE ZERO.% 0# |DDDRRR~{&}& Z |RRR~NOW MULTIPLY BY 9._ |UUUUUUURRRRRRRRRRRRRRRRRI~9|NR~0% 5467,# |DDDR~{&}& |UR~{&}& |DDDLLL~{&}& |DDDL~{&}& |DDDLL~{&}& |DDDDDDDRRR~PRESS BUTTON 1 TO CONTINUE.^ |DDRRRRRRRRRRRRRI~7|NR~0% 9432,# |DDDR~{&}& |UR~{&}& |DDDLLL~{&}& |DDDL~{&}& |DDDLL~{&}& |DDDDDDDRRR~PRESS BUTTON 1 TO CONTINUE.^ |DDRRRRRRRRRRR~75 {V} 90 = ?% Z |RRR~COPY THE PROBLEM.% 7590# |R~{&}& |RRR~{&}& |DR~{&}& |DRRR~{&}& CONTINUE.^ |DDRRRRRRRRRRR~47 {V} 70 = ?% Z |RRR~COPY THE PROBLEM.% 4770# |R~{&}& |RRR~{&}& |DR~{&}& |DRRR~{&}& |RRRRRRRRRRRRRRRU~{V}|D~{CCCC}|LUI~0|ND~% Z |RRR~FILL THE ONES PLACE WITH A ZERO.% 0# |DDDRRR~{&}& Z |RRR~NOW MULTIPLY BY 7 TENS._ |UUUUUUURRRR NO ONES IN THE MULTI-_ |DRRR~PLIER, SO FILL THE ONES PLACE WITH_ |DRRR~A ZERO.% 0# |DDDRRR~{&}& Z |RRR~NOW MULTIPLY BY 6 TENS._ |UUUUUUURRRRRRRRRRRRRRRRRI~6|NR~0% 8137,# |DDDR~{&}& |UR~{&}& |DDDLLL~{&}& |DDDL~{&}& |DDDLL~{&}& |DDDDDDDRRR~PRESS BUTTON 1 TO|UUUUUUURRRRRRRRRRRRRRRRRI~1|NR~0% 27@ |DDDR~7& |DDDL~2& |DDDDDDDRRR~PRESS BUTTON 1 TO CONTINUE.^ |DDRRRRRRRRRRR~63 {V} 60 = ?% Z |RRR~COPY THE PROBLEM.% 6360# |R~{&}& |RRR~{&}& |DR~{&}& |DRRR~{&}& |RRRRRRRRRRRRRRRU~{V}|D~{CCCC}|LUI~0|ND~% Z |RRR~THERE ARER~1& |DRRR~0& |RRRRRRRRRRRRRRRU~{V}|D~{CCCC}|LUI~0|ND~% Z |RRR~THERE ARE NO ONES IN THE MULTI-_ |DRRR~PLIER, SO YOUR COMPUTER FILLS THE_  |DRRR~ONES PLACE WITH A ZERO.% 0@ |DDDRRR~0& Z |RRR~NOW YOUR COMPUTER WILL_  |DRRR~MULTIPLY BY 1 TEN._ OLUMNS._  |dR~RULE 3: WRITE DOWN THE NUMBER YOU_ |RRRRRRRRRR~CARRY._  |DR~RULE 4: USE A COMMA FOR LARGE NUMBERS._ |DR~PRESS BUTTON 1 TO CONTINUE.^ |DDRRRRRRRRRRR~27 {V} 10 = ?% Z |RRR~WATCH YOUR COMPUTER_  |DRRR~COPY THE PROBLEM.% 2710@ |R~2& |RRR~7& |D |dR~THERE ARE SOME RULES TO FOLLOW WHEN_  |dR~MULTIPLYING WHOLE NUMBERS. THEY ARE:_  |ddR~RULE 1: WRITE DOWN THE 'TIMES' SIGN_  |rrrrrrrrrR~TO HELP YOU REMEMBER TO MUL-_  |RRRRRRRRRR~TIPLY._  |dR~RULE 2: KEEP ALL NUMBERS IN STRAIGHT_  |rrrrrrrrrR~C#@^S_%Z &  |hddddddddrrrrrrrrr~PRESCRIPTION LEARNING_  |ddrrrrrrrrrrrr~MULTIPLICATION_  |ddrrrrrrrrrrrrrrr~LESSON 4_  |ddddddrr~COPYRIGHT 1980 REVISED 1984%  |cRRRRRRRRRR~RULES OF MULTIPLICATION_  |RRRRRRRRrr~{77777777777777777777777}_ ~{&}& |DRR~{&}& |DRRRR~{&}& |RRRRRRRRRRRRRRRU~{V}|D~{CCCCC}|LUI~0|N~% 0522449,# |DDDRRRR~{&}& |DRRI~5|NR~0|DDLLL~{&}& |URR~{&}& |DDD~{&}& |U~{&}& |DDDLLLL~{&}& |DDDLL~{&}& |DDDL~{&}& |DDDDDDDRRR~PRESS BUTTON 1 TO CONTINUE.^ |DDRRRRRRRRRR~784 {V} 20 = ?% Z |RRR~COPY THE PROBLEM AND MULTIPLY.% 78420# {&}& |RR~{&}& |RRRR~{&}& |DRR~{&}& |DRRRR~{&}& |RRRRRRRRRRRRRRRU~{V}|D~{CCCCC}|LUI~0|N~% 086115,# |DDDRRRR~{&}& |DRRI~2|NR~0|DDLLL~{&}& |DDD~{&}& |U~{&}& |DDDLLLL~{&}& |DDDLL~{&}& |DDDL~{&}& |DDDDDDRRR~PRESS BU&mastery, n: integer; & !procedure score; #begin %str (qu, tq); &s[2] := concat ('|HDDRRRRRR~TOTAL NUMBER OF QUESTIONS : ',tq); %str (tc, tqc); &s[3] := concat ('|HDDDDRRRRRR~TOTAL CORRECT : ',tqc); %if qu > 0 then mastery := ((100 * tc) div qu); normal, 0); %readline (termstring); %termstring := concat (' ', termstring); %index := 0; %tc := 0; %qu := 0; %qc := 0; %nq := 0; %border; #end; {init}   segment procedure endscreen; "var tq, tqc, ma: string; &s: array [1..8] of string; iption Learning Service'); $ repeat until false; &end; # if fontread (':pet.charset') <> 0 then begin &writeln ('Having trouble reading font'); &writeln ('Call Prescription Learning Service'); % repeat until false; &end; %initturtle; %cursor (|RRRRRRRRRRRRRRRU~{V}|D~{CCCCC}|LUI~0|N~% 00277412,# |DDDRRRR~{&}& |DRRI~0|NR~0|DDLLL~{&}& |DI~8|NR~0|DDLLL~{&}& |URR~{&}& |DDDLL~{&}& |U~{&}& |DDDLLLLLL~{&}& |DDDLLLL~{&}& |DDDL~{&}& |DDDDDDRRR~PRESS BUTTON 1 TO CONTINUE.S  ~{&}& |URR~{&}& |DDDLL~{&}& |DDDLLLLLL~{&}& |DDDLLLL~{&}& |DDDL~{&}& |DDDDDDDDDRRR~PRESS BUTTON 1 TO CONTINUE.^ |DDRRRRRRRRR~159 {V} 800 = ?% Z |RRR~COPY THE PROBLEM AND MULTIPLY.% 159800# {&}& |RR~{&}& |RRRR~{&}& |D~{&}& |DRR~{&}& |DRRRR~{&}& |D~{&}& |DRR~{&}& |DRRRR~{&}& |RRRRRRRRRRRRRRRU~{V}|D~{CCCCC}|LUI~0|N~% Z |RRR~THERE ARE NO ONES OR TENS IN THE_ |DRRR~MULTIPLIER. BRING THE ZEROS DOWN._ |DRRR~THEN MULTIPLY BY 3 HUNDREDS.% 0072521,# |DDDRRRR~{&}& |DRRI~0|NR~0|DDLLL~{&}& |DI~3|NR~0|DDLLLULTIPLY BY 7 HUNDREDS.% 537157,# |DI~7|NR~0|DDLLL~{&}& |URR~{&}& |DDDLL~{&}& |U~{&}& |DDDLLLLLL~{&}& |DDDLLLL~{&}& |DDDL~{&}& |DDDDDDDRRR~PRESS BUTTON 1 TO CONTINUE.^ |DDRRRRRRRRR~719 {V} 300 = ?% Z |RRR~COPY THE PROBLEM.% 719300# {&}& |RR~{&}& |RRRR~{&}&825700# {&}& |RR~{&}& |RRRR~{&}& |D~{&}& |DRR~{&}& |DRRRR~{&}& |RRRRRRRRRRRRRRRU~{V}|D~{CCCCC}|LUI~0|N~% Z |RRR~THERE ARE NO ONES OR TENS IN THE_ |DRRR~MULTIPLIER. FILL BOTH PLACES% |DRRR~WITH ZEROS.% 00# |DDDRRRR~{&}& |DRRI~0|NR~0|DDLLL~{&}& Z |RRR~NOW MRRRRRRU~{V}|D~{CCCCC}|LUI~0|N~% 00511232,@ |DDDRRRR~0& |DRRI~0|NR~0|DDLLL~0& |DI~5|NR~0|DDLLL~5& |URR~1& |DDDLL~1& |U~2& |DDDLLLLLL~3& |DDDLLLL~2& |DDDL~,& |DDDDDDDDRRR~PRESS BUTTON 1 TO CONTINUE.^ |DDRRRRRRRRR~825 {V} 700 = ?% Z |RRR~COPY THE PROBLEM.% U~{&}& |DDDLLLL~{&}& |DDDLL~{&}& |DDDL~{&}& |DDDDDDRRR~PRESS BUTTON 1 TO CONTINUE.^ |DDRRRRRRRRR~643 {V} 500 = ?% Z |RRR~COPY THE PROBLEM. THEN WATCH% |DRRR~YOUR COMPUTER FINISH IT.% 643500# {&}& |RR~{&}& |RRRR~{&}& |D~{&}& |DRR~{&}& |DRRRR~{&}& |RRRRRRRRRTTON 1 TO CONTINUE.^ |DDRRRRRRRRRR~356 {V} 40 = ?% Z |RRR~COPY THE PROBLEM AND MULTIPLY.% 35640# {&}& |RR~{&}& |RRRR~{&}& |DRR~{&}& |DRRRR~{&}& |RRRRRRRRRRRRRRRU~{V}|D~{CCCCC}|LUI~0|N~% 0422214,# |DDDRRRR~{&}& |DRRI~4|NR~0|DDLLL~{&}& |URR~{&}& |DDD~{&}& |%str (mastery, ma); &s[4] := concat ('|HDDDDDDRRRRRRRRRRRRRRR~',ma, '% MASTERY'); #end; {score} # #begin {endscreen} $for n := 1 to 8 do  s[n] := ''; $mastery := 0; $score; $fill (0, max_x, 0, max_y, black); $s[1] := '|HRRRRRRRRRRRRRRR~CLAS II MATH'; $if keyboard^ in ['y','Y'] then %s[5] := '|HDDDDDDDDRRRRRRR~PROGRAM TERMINATED BY USER.'; $s[6] := '|HDDDDDDDDDDRRRRRRRR~PLEASE RECORD YOUR SCORE.'; $S[7] := '|HDDDDDDDDDDDDRRRRRRRRRR~REMOVE THE DISKETTE'; $S[8] := '|HDDDDDDDDDDDDDDRRRRR~AN)cursor (right, 2); )printstring (' '); (end; $end; {addon1} $ #procedure addon2; %var n: integer; %begin 'cursor (up, 2); 'for n := 1 to 10 do begin )cursor (right, 23); )printstring (' '); (end; %end;tring) do begin ,moveto (112, max_y - 72); ,printstring (cstring [n]); ,unitclear (1); ,wait (200); +end; 'end; {goto300} ' #procedure addon1; %var n: integer; %begin 'cursor (home, 0); 'cursor (down, 17); 'for n := 1 to 5 do begin ect); .end; -end; % until (ch = correct) or (trial >= 2); *if ch = correct then qc := qc + 1; *if trial > 0 then nq := nq + 1; )end; (crlf &end; {goto200} & $procedure goto300; &var n: integer; &begin (getarray; (for n := 1 to length (esin ['%'..'=']; ,cursor (left, 1); ,wchar (ch); ,wait (100); ,if ch <> correct then begin 0trial := trial + 1; 0cursor (rubout, 1); 0wait (100); 0cursor (complement, 1); 0wait (100); .end; ,if trial >= 2 then begin .cursor (left, 1); wchar (corr$begin &getarray; &unitclear (1); &for n := 1 to length (estring) do begin *nq := nq + 1; *trial := 0; *correct := estring [n]; *moveto (112, max_y - 72); *writestring (cstring [n]); *repeat begin ,{ unitclear (1); } ,repeat read (ch) until ch r; $begin &estring := line; &for n := 1 to length (estring) do begin *readline (temp); *cstring [n] := copy (temp, 1, length (temp) - 1); *end; &wait (150); #end; {getarray} # "procedure goto200; $var trial, n: integer; (ch, correct: char; ) 0until len (pstring) > 0; /caps (pstring); /if pstring = estring 2then reward 2else punish; -end; $end; {addat} # "procedure printa; $begin &printstring (line); #end; {printa} % "procedure getarray; $var temp: string [255]; $ n: intege(27)]; %end; {fra7at} % #procedure add8at; %var pstring: string; %begin 'if estring = '08' (then begin /repeat get (keyboard) 0until keyboard^ in ['1', chr(27)]; .end (else begin /qu := qu + 1; /pstring := ''; /repeat 0input ('', pstring, 40(if estring <> '8' (then begin .qu := qu + 1; .unitclear (1); .repeat get (keyboard) .until keyboard^ in ['1'..'3']; # if keyboard^ = estring [1] /then reward /else punish; -end (else repeat get (keyboard) .until keyboard^ in ['1',chrSORRY, YOU ARE INCORRECT.'); %end; {punish} % #procedure gosub300 (first, last: integer); %var n: integer; %begin 'for n := first to last do (begin *printstring (cstring [n]); *crlf (end $end; {gosub300} $ # procedure fra7at; &begin or m := 0 to 6 do begin )gotoxy (m * 11, n * 2); )write ('GREAT!!'); )end; 'tc := tc + 1; 'textmode; 'unitclear (1); 'wait (500); 'grafmode; 'cursor (clear, 0); $end; {reward} # #procedure punish; %begin 'cursor (clear, 0); 'printat (2, 0, ' &until keyboard^ in ['y','Y','n','N']; %if keyboard^ in ['y','Y'] &then endit; #end; {query} ! !segment procedure parse (line: midstring); #var ch: char; % #procedure reward; %var n, m: integer; %begin 'page (output); 'for n := 0 to 11 do (f&then if nq > 0 then gosub900; %empty := true; #end; {endit} # "begin {query} ${ if terminator in [4, 10, 11] 'then fill (0, max_x, 0, max_y, black); } %printat (2, 23,'DO YOU WISH TO TERMINATE NOW? (Y/N)'); %unitclear (1); %repeat get (keyboard)D TURN OFF THE APPLE COMPUTER.'; $for n := 1 to 8 do %if s[n] <> '' then writestring (s[n]); " end; {endscreen} #  procedure gosub900; forward;  segment procedure query; ! !procedure endit; #begin %if terminator in [3,4] {addon2}   begin {parse} #{ writeln (line); } #terminator := pos (copy (line, length (line), 1), termstring) - 1; #delete (line, length (line), 1); #{ writeln ('parsing terminator'); } " "if terminator in [0..14] #then $case terminator of $ %0: begin )writeln ('Data file error -- blank used as terminator'); (end; %1: goto200; %2: goto300; %3: begin *printa; *unitclear (1); +repeat get (keyboard) ,until keyboard^ in ['1',chr(27)]; + if keyboard^ = chr(27) ,then begin 2query; 2if em {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^ tc + 1; (end; %nq := 0; %qc := 0; #end; {gosub900} ! "begin {main} # init; $repeat # readline (inline); $if len (inline) > 0 %then parse (inline); # until empty; #close (infile); #endscreen;  repeat get (keyboard) $until false;  end. on2; {fra10 club @15000} 'end {case} %else 'writeln ('terminator not found'); !end; {parse} ! procedure gosub900; %var n: integer; %begin 'qu := qu + 1; 'if nq > 0 then begin (n := ((100 * qc) div nq); (if n > 75 then tc :=.end; {case10, 11} (12: begin { per3 club @15000} -fill (23 * 7, 37 * 7, max_y, max_y - 8, black); -fill (2 * 7, 37 * 7, max_y - 9, max_y - 8 * 4, black); ,end; (13: addon1; {fra4 diamond @8093} (14: addthen gosub300 (0, index) 2else begin 8gosub300 (0, 1); 8if terminator = 10 9then fra7at 9else add8at; 8 if keyboard^ = chr(27) 9then begin ?query; 8 if empty then exit (parse); >end; 8gosub300 (2, index); 7end; {else} 4index := 0; + 1; *end; & 10, 11: begin {fra7 @ @130} {add8 @ @130} 0cstring [index] := line; 0repeat readline (estring) 1until len (estring) > 0; 0unitclear (1); 0if estring = '7' 1then wait (150); 1if (estring = '7') or (estring = '9') 2 @8093} ,fill (7, max_x -8, 8, 71, black); ,cursor (home, 0); ,cursor (down, 15); *end; {diamond} '8: fill (7, 14 * 7, 8, 71, black); {div6 club @10000} '9: begin {fra7 % @120} +cstring [index] := line; +index := index3query; & if empty then exit (parse); + end; +end; '5: printa; {div6 leftarrow @400} '6: begin {div6 % @500} ,printa; ,wait (500); ,end; '7: begin {div6 diamondpty then exit (parse); 1end; * if nq > 0 then gosub900; *border; )end; &4: begin {div6 heart @150} *printa; *unitclear (1); +repeat get (keyboard) ,until keyboard^ in [chr(27),'1']; +if keyboard^ = chr(27) ,then begin 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