`L i=L\Ʃx ? N'i  ͭЅ?0ȱ Ѕ?iȱi lԠԠ͠ԠϠŠͮŠ SYSTEM.APPLE   L$JLјJ 8彐.mĿ"Š>?( X֮ˍL հ˩($8` Ґh Hǹxhx N`8Ύ߽0|ϩHhHh ӈ ө ө ӘVYԦΝYԮߝꪽԦ ө  Ͱ()I يJJJ(jǩF؅G(  7ֈ k( F G  Xj0 Ю $Ӱ8 xH ߩ`Ǚx kh kL~ѩ@(LYLWҭH͍h (ͥpi)ͥˤ˹HH(x rh(`~Ȍ``hhh )hJ¥jJJhhihhhJi֍hhha [U8ſƅh)x h H('eƍ8ƅи ĘHH`ߠ ߮ TTST)P35r <5)P45r <5) REPORT.CODEvg DELETE.CODEvg SETUP.CODE<vgJ g<gSYSTEM.MISCINFODELETE.CODEFDELETE.CODEFTSTTSTTSTTSGRDBOOKW& SYSTEM.APPLEvg&O SYSTEM.PASCALvgiOPSYSTEM.MISCINFOP\SYSTEM.LIBRARYg\]CATEGORIES.DATAW]^GRADEBOOK.DATAgFW^dFORMATTER.DATAgdSYSTEM.STARTUPg©P25r <5&꽌ɪɖ'*&%&,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|Հ؈䤨谴T}iU・~R콥S~8vw\vȥ]vv\w]V𽥃WlXx |ƄRSL{ȱȱńRRLSҠXx ~~~~LSҠXx P~Qȑ~LSҠXxX XY |0 L\Xx t|ut}|=0 8|8|}8||ȥ}|MHLHlLSH|8|}8z|~{|@|:~8|~(~8 ~8~Z[ 8~Z[LѠP~ ~i jik|Lhj ~|it}iu8ttXutY|i h0 L LllL=LC/ L ߰8L ߦt~ hI=+ L ߤt~I= ~ LȄHHL;hh tuLhhVtWu\z]{XiXYt8xtut8xtu8tTERFAC3LABEL MOD 'NOT &OF OR (PROCEDURPROGRAM !PACKED +REPEAT RECORD -SET *SEGMENT !SEPARATE6THEN TO TYPE UNIT 2UNTIL USES 1VAR WHILE WITH ))))?)`vߗ߸)))@#AND 'ARRAY ,BEGIN CASE CONST DIV 'DO DOWNTO END ELSE EXTERNAL5FOR FILE .FORWARD "FUNCTION GOTO IF IMPLEMEN4IN )INe ~a{8 ~ȱa {8 LT0:A[_ ҕ~L+݈qȱi~8A ݅ȹ݅ȱ~Ɔ4i Lȱ|ȱ}|ȩȥ}ȩLݠȑȑ~uHtH`,BMcބޥHH8(iPH ۠'(hH'O'OhhmhLۭJL80%`M8$LLLhhhhhhhhץHH` ܩȑآL ܥ8ؘ ܩ؈ȩؠ#hthuhhhheȱÈ jh`@ fנ f׭0`L` CLL۠LۥHH j ڥhhLۦ vې` ۤOȄ`H$)A[hIH80(hI`i(L8(hI`LۥJ) )i i`¥ĥ`` - 9HL r 9 MȽ`H 9٠L rH $h`   -y6=CLjO808 0PLڥ8 0 ۥ``) ` )? Lvۢ 8` GڅFڅl```LۥH ۠' `H 9٠ hlQ`) թ` 9 Ȣ`JJJJ ϱ` r,p 0*P$ ۤ b ۢ`H - 9٠L r׊H 9h ɢ`) 2 r׭0` r׹)` ( `) ' r׹J)?L I@L3؊  L3؎,QLxת,c*A[ Lע0H)@hILө Ъhhh(`N`hhhhhhHH)> ` Yܠ0* )` r׮ ؎`(54#ƊgƈЪ 6`י ֙QRTW = Э*0 LqŐ`8Hh`HHH*@^]U)j7 [ )L3~ lJf)jjAUIL3ة0 $ڐ> L׈ ϐ8 (ֹH 7֥ +ֹP 7 7)*Ȫ`FG8`0($ p,&"VU>)Q>jj``P@J I*I `\xDŽ XׅІ X?;78H<8H  8`Ί aՍxՍՍՍե>?Ռ8T8ՌWuՌvՠ ýI꽌ɪ꽌ɭ蠪ϮәVE]ӾV]H)]ӾV]ԙ)]ӾT]ԙ)]ӦΨ 8$hU>`ȅSϭ߅83IߐiżQHPH ~P~ȱP~~P꽥QLSҠ RhPhQLE RR8tSut\ȱt]X i RHLfRtȱRuVt tVuWRTȱRU⦆RXȱRYRRR콆SLSҠ8|}`|ȱ|L8||tȥ}|utetȱtet|8|}Ƅ`t et HHH> o>HBtCu\8t\]u]\Z][ 8\Z][Lѥ]H\HuHtHAH@H > ޽Р SYSTEM.PASCAL Insert boot disk with SYSTEM.PASCAL on it, then press RESET#usthL'hح/0 !"opqr)VV#$6| 4 v$PASCALSYUSERPROGDEBUGGERPRINTERRINITIALIGETCMD FILEPROC 0LސLh)thh)htLީ lhvhwhthuEw0uwtv/1'u0+!hthuhthuHHLMhHHLMҩ%lHHLMhhh |~hve| z~~8|eztl8冨Lߤ 0 8`hh ߦt~LL'   UF_f^L#ޠ UhvhwhthuXY^LOޱtvtuvw_LްLL~hvhwv~`ޅvaޅwhthutbޅtcޅutvv ȱtvtv %l HHL;ҩHHL;ҢhtExx0tEtttx u|f}jtz) wzf{jv8vtw݅x݅yyHxHxyyHxHxu9݅xy9݅yyHxHxyt yHxHHviHLMҩHHLMҩHHL?? lXLLdeeƄL;ҥ8傅ń 8冪8冪ƂL;hh&eȹ|ȹ}f)1|)uf}|jjj)?tłetu9 fHHLMҦfHHLM @hhHHHHhzh{h|h}}Lݥ{)L8z|~{}Lݥ|)h |he|Ȅ~ Ȅtl ڦ|8|e| h9 0 ~ʚLM ڦ|| hI9~ʚLM |0| h~ʚLM҅ztzx{yxtezʥ|x}y~xF|}H|HLMҠX hh&ńL;0HxH{HzHezHHL.h|h}hzh{hxhyx~ȱx|80~~ iff~z ~=݅~=H~HLMhthuh|h}hzh{z ݅v%tt݅w%uu|80tuutvwwvi t&uv&whxhyx~ȱxvI%~t~wI%u~xȥxLMhhYLShhhihjhkXi&jhȑjL;ҠhhjL@ٱhjL;LѺtutLLMҠ Uhe^xhe_yxHxHL;Ҡ Uhe^he_HHL;hh Uѥ_ ^&L٥^_ ץhexheHxHL;ҠXXz{hh &hexhef"f fefd8de8&&`ffefd&&`hhhh ץIiIiHHLMhhhh ץHHLMhthuhvhwxyEw0wy)xv!y0uEy0yutxyLMLXYXXYYHXHLXYYHXHXXYeXXLMhthuhh8tuHHLMҩedff dedeeefefdff`hh0 hhL}hh"IiIiIiIi ץHHLMҺHHLBנdeLѥIiIi报IiIiƊ8冥凰 ` ei捠8XYLSҥXiXYLS hthuhvhwt&uZvȥ[vZetZ[eu[8\Z][LL; hthuZtȥ[tL;hthutZȱt[潩L;ҩlLhh0HHLMҨIiIiHHLMhthuhheteuHHLMhIihIiHHetjktLhjhjhhL;hthuhettheuuHtHLMhhhthuhettheuutLMhhhihjhk ULhthuhh%uH%tHLMhthuhhuHtHLMhhIHIHLMҩXXhhQX0XōiX`0\XE0XLXŌC?8XX&XeYe  Íáɡ 럚肚X  šš  ġš  šš!ꂚꂫꕫëS  ! "ˡ! "ˡ ë  qT8T "ˡUĄ쓡"á  :"ë á 쓡ת$ (   d˯7 H Pצצ22ȡ523 ,ȫ$* "ë넡, ~ *Í2~ š˄ `1 b~ éÍ~  , %ɡšɡš  PꟚšw#ńE z 0 ń Ȅ! ~Í`~W ˡ! !~q|3?Bp  v\EL "$&(*,.02468:<>@BDFHJLNPRBx-~}cy*צ LEXTOKEN IS: 02"KKKK@LLNOOTQ<< xH$V ,  9   &*$á09ō>##$ á> á>>á>낫š ꓡ5š땫Ě@6"á1ꓡ삫Ú š K6"á61 ɚ V @VBBChCfDEE>FFFhGGXHHH"JbJJתPńȄ ,ń.áš蕿@šQȡ2 š:X f Ą ɡ 쾿  .Tá " * ȡ*ńȄ4šáR há1á4   Q lMȡš ȡ뾿  + d>š oɡa   áá0Oš *š  4TzY 000á'4á 0z00 rT\  ɡ'áצ-32768 ^ 逫-ġ>o00ń0ˡ +á! "ˡ  +Uz    00áQP 0á0 é000+-Í-ë0 á1 š5    šš$ !邚邫镫ë퓡h  ! "ˡ ɡ!  ! "ˡf á3 á,  )á á ávˡ á cń# Ȅ ꚹ6áÄ7  .*3 ȡ 23aĩ3zȄ 23aA22š*á ?צ:22ȡá;2á!2ȡ5252š[ץ22š2222ȡ2š5252á4w4]ץ11á4\1šV42233z 3042221é42é1Ä2*á444ń55P.TEXTׯ]צ.CODEJ.BACKׯ7צ.INFO$.GRAFׯצ.FOTO8FNo user programתP8F0:::::&:(xáצAssembleצCompile what text? ( ׯ,á(+(צ.TEXT888Ä8E$ á"ˡ"& E ##&EáN R3b9Q[Ä-D8铡6!~? *~?=FצPut in :P?FP'Ǡȡ*EEתE&VX X9   /13579;=?E&* 5?š?ˡ?ء "ˡ6ߕނ߂ɡ F b6ب"́$ʁ$ ʁ$ ʁ$ ʁ$ʁ$!"ʁ$ʁ$ʁ$ʁ$FZ7OQ QQQRš.[öO3fj <4  šˡ 퓄 Ä퓡w š   ɍL  "ˡ.ˡ   d쓡 צ to continue) <! ȡ   צ0H" ġ  *@#3$$&ˡ 3 36% "ˡ$צ Can't find ::9 ƀצ:9 ƀ:SYSTEM.SWAPDISK&:(7,*SYSTEM.WRK.CODE[*]ת{צTo what codefile? ( צE,á2צ$̶8FNo debugger in systemתP8F6:::&:(xáצAssembleצCompile what text? ( ׯ,á(+(צ.TEXT888Ä8???תY6!  ת&צP%[VTUWX%Y7888% š tWelcome ?, to Apple II Pascal 1.1Based on UCSD Pascal II.18 6øYצ???JanתצFebMarתצAprMayתצJunJulתצAug Sepת צOct Novת צDec ???תצ?????? *SYSTEM.WRK.TEXTײ& צ*SYSTEM.WRK.CODE ,  7 :9CONSOLE:ת(:9YצSYSTERM:(8:99988:9  6 ۪1٦׷)צ: ܢܢH d    Y0&תת.ת Ɓf(ߡʁ% ʁbʁ%́bʁ%́%Y;??ٟá'C צCONSOLESYSTERMצGRAPHICPRINTERצREMINREMOUTz>77:: צ:SYSTEM.LINKERƁ&̨<́b ́cʁcȡ~ؤ́dʁdתʁd0ʁdʁd؞&"á*ʁd ضá0?ʁdצ*SYSTEM.STARTUP(߫7́%́eʁ%ʁeȡlضʁ%ʁbQ́fƁfʁdƁfƁ&ʁ%ʁݢʁݢʁʁݢʁݢʁݢʁݢ  ʁ تٞ&"á ~٤  :SYSTEM.ASSMBLERת :SYSTEM.COMPILERת :SYSTEM.EDITORת :SYSTEM.FILERתʀ=ʀ* ʀ́ʁܢGʁܢHʁܢIʁܢ%O tƀ&́ʁܢʁʁܢʁܢ%́ݲ ʁݢʁݢʁݢʁݢʁݢ ʁݢʁݢ ʁݢ ʁݢ ʁݣ  ʁݢʁܢ́ʁݢ٢ š٢ ٢٢ 4$  ؗ(/  ؗ(tDoo odoo'z*SYSTEM.MISCINFOתPƀƀerror: (צUnimplemented instruction(צFloating point error(uString overflowת(]Programmed HALTת(EProgrammed break-pointת(&nS5  oYC: *( vol not foundת(file not foundת(צ dup dir entry(צfile already open(צ file not open(צbad input format(disk write protectedת(bצillegal block #(Jצillegal buffer address(+$fO7  y^Hצ IO צ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צ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( "ˡ$צ Can't find ::9 ƀצ:9 ƀ:SYSTEM.SWAPDISK&:(7,*SYSTEM.WRK.CODE[*]ת{צTo what codefile? ( צE,á2צ$צCurrent date is C -C-C 99ȡצ"(C) Apple Computer Inc. 1979, 1980צ(C) U.C. Regents 1979%System re-initialized 6:rNP  צP%[VTUWX%Y7888% š tWelcome ?, to Apple II Pascal 1.1Based on UCSD Pascal II.1:(šR.%+(]ˡ([8]+(\"á%[צ Terminator=[צ , change it?)צNew terminator:[UO צ: ) Running...ء ء   Swapping is VonoffצToggle swapping? VVzNew exec name+00.0.0ȡ#+.//a/zȄ +./ ..+EXEC/ׯjUTVP+\"á(TS.OQ[QQP+  Hm% á.צNested exec commands illegal"צError opening execd Z6PO6 "ء PKצExecuteצ what fileצ? Pš7`  7 š+ š%SYSTEM.WRK.CODE׷sצSYSTEM.WRK.CODEFš5.CODEׯ.:(7,*SYSTEM.WRK.CODE[*]תצTo what codefile? ( צO,á<צ$88š8(8X+,,"ˡ  Can't open ,   áث what text? ( ׯ&,á (+(צ.TEXT888Ä8 "ˡ$צ Can't find ::9 ƀצ:9 ƀ:SYSTEM.SWAPDISK&Ʋڤ  R   88( áצ Assemblingצ Compiling...á999':::::&:(áצAssembleצCompilec(s) not available 1 \ @ ڤ  áڤ !~ e ת*U  !! !:!!ڤ  ڤ  áܡ #צMust L(ink firstƁ1ƀ:צ.Conflict between intrinsic and user segment(s)ƀצ*SYSTEM.LIBRARY ,צ Can't load required intrinsic(s)Nƀ/צ#Required intrinsi"ˡCۡ>"áIllegal file nameצNo file ́3́4ʁ4́5ʁ5ˡ  not codeʁ41ʁ5"ˡ Bad block #01Ɓ1aݡ9צ Linking...ݢ`ڤá Zxȡ2ݤˡ"ޢ`ݤۼ: TڪƁ Ɓ "á9̂.ʁ ʁ"ˡ  Ɓ Ɓ Vj ުPڶڳ@@YyÍ, 4ۢڤ ɡ$ڪP-19:!1ׯ)Illegal filenamenTޢ ȡSڤ ˡ@۳-ܢ0ۤ צCurrent date is C -C-C 99ȡצ"(C) Apple Computer Inc. 1979, 1980צ(C) U.C. Regents 1979%System re-initializedSȡU/U[,-Z N:98:9á.Y(Y*SYSTEM.ATTACH   áá'*SYSTEM.STARTUP % áá  6   ˡFצJCommand: E(dit, R(un, F(ile, C(omp, L(ink, X(ecute, A(ssem, D(ebug,? [1.1]P')%?áSF=Command: U(ser restart, I(nitialize, H(alt, S(wap, M(ake execתP')%W 6!W,z3(  O ?š š۾.ˡצ([šܕ!!(š۾:ˡ١.TEXTת .CODEת!!ȡ(ܾܾ š!!Ȅ!!P!x!P %',@@JBGD> Z`<@X áޢá ~תޢޢޢ024<& צ š š۾.ˡצ([šܕ!!(š۾:ˡ١.TEXTת .CODEת!!ȡ(ܾܾ š!!Ȅۤ  dÄÍ"ߢ ˄"ɡۤ  dáߢ  dá ߢ C#ޣC˄ ߢ C ߢ ۤ ߢޣ ޣߢ ޣޢ ޢۤ ޢ áޢá ~תޢޢޢ024<& צ ) ! 767䚹 :V@28˄ޢߢšáޢ ޣ ߢ  dޣޢޣޣߢ  dÍÍޢˡ ݓۤ ۤ Äݓۢת   ١  n ١ á9 ٓ/! !!١ˡá ~ݤݚ ˄ܟń ١á  ޤ wš  iá Ä,ޤ  ɡ"áޤ PġMáš7 ܂ۻݪ d #(   !š Í 7ÄU ǐɄ:6ń~66! šá٢.ٕ۶š ڸ۸۶ š۸ ڸ:   ȡQ  ȡ   ȡ? ȡ  ġ  á ڢڢڢڣ ڣ ١ڢ ڣ ڣ١ ڢڣڣ ڣ áڣڣš ڢڣڣ hڢ ڢ١ڢ!ڣڣ ڢ!ڣڣ ڢÄڣ &ڢ ڣ ڢ! ڢ!ڣڣ ڢڢ ڣڢÄڢ  쓡 Xצ Linking...  ˡ&צ Restarting...צ U not allowedxRpUT-Há6OKTU7AX0NNP3 "jC(,. C fpP @$ j4 6L $.1]P')%?áSF=Command: U(ser restart, I(nitialize, H(alt, S(wap, M(ake execתP')%W 6!W,z3쓡 Xצ Linking...  ˡ&צ Restarting...צ U not allowedxRpUT-Há6OKTU LONGINTIPASCALIO  ' "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);   IMPLEMENTATION $ "PROCEDURE FSEEK(*VAR F: FIB; RECNUM: INTEGER*); $LABEL 1; $VAR BYTE,B:L,VSNNNNNNNNNNNYO MIHA<4-('  AH3P|v:n ƅ|L,hƀhhh8hohlhXhhhFffff80)ƅܥ#FfII懥HHL,L5hhhhhƀhh-ȑhhƀ 0ȑƀ0hJJJJ 0ȑ) 0ȑƀĆL>ʈƅ ~~擥 ~ 抦|ɥ8包~ƅLlII懩&&u`hh HHHHHL,} ei|ʽ 8襁i}}ʈƍƎƋƊЌإLl2d|e~28ʈƅyʈƅƉ` DL?Ł|}ƅL\E||怦}ʚH恺8倅偪ʈƅ})H揥L\LlL,E0LL DL\ ILlL,ELL DL\Ee8刅刪ʈʈww&~ʈƅFyʈƅ~HHHHHHL,~ʈƅFHHHH恥HL,0~}ʈƅ0I愊iʈؚH恥LŁ|} ƅL\ ~~8ʈƅ  ILlL, DhƁ}eʆƀƀ|ʊe~8偅z{lzhhhhhh8冐 0 h HHHL,L5IL,h h'(ʈ D.ł( Ł|} ŀ}|ƀL;~HHL,~HHY   9    ' sU7z ;|hvhwhhxylxMz|vwlvl llhzh{hƁhh-۲z0ݡߑ ع      y  &  * عteVG8  )  T 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 L E M.SWAPDISK&:(7,צ*SYSTEM.WRK.CODE[*]To what codefil $ "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:IG LOCK,N: INTEGER; "BEGIN SYSCOM^.IORSLT := INOERROR; $IF F.FISOPEN THEN &WITH F,FHEADER DO (BEGIN BLOCK := 0; BYTE := FBLKSIZE; *IF (RECNUM < 0) OR NOT FSOFTBUF OR 2((DFKIND = TEXTFILE) AND (FRECSIZE = 1)) THEN ,GOTO 1; (*NO SEEK ALLOWED*) *IF FRECSIZE < FBLKSIZE THEN ,BEGIN N := FBLKSIZE DIV FRECSIZE; .WHILE RECNUM-N >= 0 DO 0BEGIN RECNUM := RECNUM-N; 2BYTE := BYTE+N*FRECSIZE; 2WHILE BYTE > FBLKSIZE DO 4BEGIN BLOCK := BLOCK+1; 6BYTE := BYTE-FBLKSIZE 4END 0END ,END; *WHILE RECNUM > 0 DO ,K :9 W :8н :$)* 77` ݌HhHh    V ꩖݌$ ݌     `Hh݌`80^݌Hh  ݌ - - -   EEHJh #h` \I꽌ɪVɭɖ0ɖ!ɖ 꽌ɪ\8`  꽌ɪɖ * % E зЮ꽌ɪФ`76$\8$9867I$i$88 8  :`+L!'L!i0L!8` $6JJJJ6 N$`)p##**LSׅ P$ #  :Ld i# ##L cLL L"%%L# j# #H#\_bRUXHKN>AD222P (RINTER:#5: &zHHFH< [S á  +'á,'ˡ++%HHLIIII<IIII2WNMES1.NAMESMES  ''Test fQuiz apHomeworkܣá CLASS PARTICIPATIONLab Report [TM E>6i 1st Quarter " 2nd QuarterSGAo 3RD QUARTER 4TH QUARTERN FINAL EXAM$ $ ݞ$' ݑ$ $݂ō $݂ġ ݂$ $ $ȡ%  0 ފ$čV   .ˡ:  Eɡ  -ݑ š 0 0 ߿`ġ(   ݂. ݕ ؂݂3  ݕ 0 . ݑ0 ݕ݂ ؂ ɡ  |, R -   $ $ ݞ$' ݑ$ $݂ō $݂ġ ݂$ $ $ȡ%  0 ފ$čV   .ˡ:  E.áBڲzؼ0ݞ$ڲzjeEÍɍEáޢ >ۓɡ ؼ݀$ ؼݞ$ۡܡ ؼ$ Dɍ -   "ˡ\ݣ ݣ šݢ ݣ ݢݣݣ ݣ ݣݣńݢݣݢݢݢˡݢݢ ۚݢܚ  / |á +-Í-ڲzؼ 0ݢݣޢÄɡ3ڕġ$ڕšš"šޣ Ąޣ ݣ ˡRݣ &ݢ ݢݢ!ݣ "ˡݣ ˄ݢ!ۂBEGIN RECNUM := RECNUM-1; .BYTE := BYTE+FRECSIZE; .WHILE BYTE > FBLKSIZE DO ' "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); , - - -`HJ݌h Hh݌`  8`0($ p,&"!Ls# L# ."%&8  Hh# j</8`# j# &0 &`%8`" %# j%8`  $LhB   V ꩖݌$ ݌     `Hh݌`80^݌Hh  ݌ - - -   EEHJh@/13579CEGIK"$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~#Press to exit this option.P & ń á͞Illegal file nameצNo more room on disk.No such disk or device.צ No such file.Disk is write protected.Disk read/write error.Z\^`bdfhjlnprtvxz|~)Press to continue, to quit....Í쥌u.%M "á"ڹצ I/O Error # :šRInsert disk named /צ:/./Please insert program disk.@}2"$&(*,.02468:<>@BDFHJLNPRTVX۪P uڞ"צ I/O Error #   opening .Illegal file name: .צPRINTER:>צ(There is no printer connected to slot 1.BBB B B B B GBBBBp  -;$N@ Ue2moMENU GRADESTUCURVESTUNAMESUNIGRADEUNIAVERAGEUREPORTUNBACKUP SETUPUNIDELETEUNTITLEPAGINITDATA BLANKBLANK:rGnavpa~`~arGaaaaa `zbavava@ ~ ~ avZ@ aavaea@ @ ava `ZZ@bBbBb̘`nMFil bvbbvbh~ ~ ~ .bv0b(&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xH&x'8*7Ixix&&  ') + &п x) ++`FG8`0($ p,&") (jJJ>L+ "?I>  N `  ` x V Nx .x- z `V0^*^*>` aI꽌ɪVɭ&Y&&Y& 꽌ɪ\8`&`L i=L\Ʃx ? N'i  ͭЅ?0ȱ Ѕ?iȱi lԠԠ͠ԠϠŠͮŠ SYSTEM.APPLE   L$J , - - -`HJ݌h Hh݌`  8`0($ p,&"!Ls# L# ."%&8  Hh# j</8`# j# &0 &`%8`" %# jń á $G T ڪP 2 -0š-á 0ō2`1313ȡP10- -10211- 2-0-`ġ Pצ QPٿR@š? Zȡ(˄+11ȡÍ.X ɡڨBFGHGHȡ.GGˡFGGF< RJ P QPaġ  eU$eUR  á áWP P Ww ڪP ɡ..P. Q.P---(-# - "0~WWáAFA- eU~ɡd צ' to try again, to give up. éÍá"á BR (~( צGRADEBOOK.DATAGRADEBOOK.DATAצCATEGORIES.DATACATEGORIES.DATA祀&"ëѥu$ p  T :*>Bt $left. Press return.| تP"ˡצ Can't find צ' to try again, to give up. éੌÍੌáu"áu BR (e~U( צGRADEBOOK.DATAGRAצ W &*2ع" %  )!-Rt (ɡk(ɡ]  bytes left. Press return.| تPu"ˡצ Can't finAFAFAٕAFAȡ AFFɡ2AFAAFAá AFFÍAFAAFAÄئ תPۿݹ+-   >  á1عڦ W0ת0צ@.0!0 .v ܣddá,  á צW P򥍢AAFAFAFAFˍ"AFš š 0=/4צThe file must be a text file.//00צ= ˄IThe file already exists. Destroy it.'DS | 8ѓ 0צ)0צPRINTER:-0ת0צCONSOLE:0PRINTER:ת File name: 0Ԫ0<0><>ȡ 0>ȡ P &$ɡš/P /P ɍ-XYXYȡXXȄf,  &צ (y Fȶ=== Fɡ>>P>צ Q>P>>ȡצP= &=á=á=8Af ۨB GKIH(OHOȡYH(ˡ;GGKKH(IIH(HHGš9KGMIGټMMM   ((Ķ(Ó(Í9(((( ġ$ J"or you can type your own category.צ Type when done.,..ȡ,-ٹצSet A (normally type of grade)qצ!Set B (normally reporting period)>Set C (spare: normall(ȡ7ڢ(ڢ(>   צ"Enter categories you expect to useצ$with this class. You can accept theצ"given category by pressing return,צ Jr., etc. toצbe included in student names.) ڦתڢ  ڢڢڢȡڢڢڢȡJڢdd ڢڢbe sure to&press the key after the first$name, and again after the last name.!(You must separate the names withצ$ rather than with toצ$permit middle initials,Xצ.CATS]Xצ.NAME]HXצ.GRAD]H^  أأأצ%When typing student names,  [[[$[[[[(\\ȡ ܡ  $/d^ |  L J [For a curved score of [ # the equivalent raw score is[c[˄  [[ [[[$[[[[(\\ȡ ܡ  $/Í0[[For a curved score of [ # the equivalent raw score is[c[˄  [[: Mean =YצStdDev =WYWצCurved: Mean =YצStdDev =WIs this curve correct?ܓ[ d \\ȇܕd š d ɡ(  ([[ȡ Check the curve?Curve these grades?[/[(/ / YWצRawצPress return to continue. pnnN2  ( áɄġ&ڕܕˡoá-pá  poצCrv RawopoEn( qn(ɡ5En(mmɄ _qmmqEn( oooġZop pp šEȡ$ -   Sorting...(ɡ( ߡá Z E٨(بB pomE(mmɄmmn(̀nʀȡEn(y unused)m<//ȡ,-M צu צ. M PM ׯ--Ä,Are these categories correct?8C^ت   Creating categories file for . Here are the current categories:  ȄM ׯ ⓡצSet A (normally type of grade)(((0>(ȡ0(( ١((Ʉ (((:z  ( ( =( (ġ(ޮޡ eצPצ6š(ȍݓ:ܮ(Ʉ.á$(NewצNameخݓ O` "(for+ + צ...+צ+ ת++,, ,+, ,+ *,P,,š-,-Pخ ln  ݡٶȡצa++ Last Name: + P`+ +צRemove all records for+ + ?zצRemoving records ٢(HHZ^ خ  (++3'(Type to delete name.)+ת+ צ First Name: +P`q ءצ(Type 0 to quit)0צ&(0 to quit, for rest of list)Enter which name?  HX.GRAD]H H=H٢( خV -Q RǢPVšVVƀƀP V  (Ȅڄ1(ڡ(ܢ (ȄȄ؄ Enter a newצname  צ  צCLASSNAMES.TEXTȡ$  @ ۣۣۣڏ4-ڪP٪P צ.  šw ɡ. . Add a new classצYour choice (0 to quit): áȡ PšName of this class:NAME already exists!ئת   átצCLASSNAMES.TEXTD á?צCLASSNAMES.TEXTEnter names in what class?ȡ3 ȡHH&  خ خ خ   צ צצ.NAME c áخ Yצ Error: File צ. תת( ȡ.(((ߚN& ت  Creating grades file for .H   .GRAD H categories OK?   .CATS 祀|,V ت  Creating names file for .   צ.NAME (qצ!Set B (normally reporting period)>Set C (spare: normally unused)m<ȄbM צ  á 9 . M  Are these( ((ܡڮv צSorting alphabetically...ġݓ-ȡݡd$W (Type 0 to quit)0&Type for next page, 0 to quitnڶ˄Which name goes in position  ? ߡb צܶצ description: *P*׷ *(**** *H Code-- Line 1:   Line 2:  ˡ, Level: צPoints (Total Points = )!%p  $&(*,.02468:<>@BDFHJLNRTVZ\^`bdfhjlnprtvxz|~צDate, topic or צ!This grading change will make all!previously entered grades in thisצrecord wrong! Continue anyway?  *xצPercentצLiteral צ ȡٛ؂F ^  'Grading: %(Percent), L(iteral, P(oints *%P*LP*PP* d*צName of category? תP*M, *M,  * *M* **fh+ń-+++ . New category+á*צEnter marks in which category? *+,*,*M, צ...X..CATS].*-*-ȡ *צ-->*M* +++*M+ ׷7+ צ. *M+ *M+ צ+Í*M+ ׯ+++on:  צCode-- Line 1: ȡ Line 2: ȡ ˡ$Level:  R   Category: וM  Grading: nצPercentbLiteralIצPoints (Total points =  ) u^GצDate, topic orצ descriptiáR PXצ.CATS]祀M'b R۪P ././ȡ8.؂ڕȡ..؂ڕ . ..BV X   Categories: ȡ6  M  ȡL .  M %Which class do you want to work with?צYour choice (0 to quit):   X.NAME]^Z D*NbZ ( Fv^24\ fD: צSort these names?CSort in alphabetical order?~  Print these names?㥎ȡH( צ.  ۢ  e  &ٶȄ á hɡ WšR (""ġ!((( >ID^צSort these names?CצIs this information correct?f   ȡ-d d_AAFȡ;AFAFɡAF[áȡáaŲĄ)ȡuX?dH ٢I ٢H$ Z HHHBH$ צPrint these grades?צClass: 㥎Record: (ȡ(ۣ~IHHKLHH HH٢:ٶI٢á٢KL٢III á.HIH٢٦Over-all Averageׯ HBءAHIH٢H HBHIH(ڣ(\f ٪ Dˡ˄á N(,ŶDÍC DCDDDáCDCCCICp צReading grade file ofצ#other records. Any changes made in!these grades will produce resultsצwhich are not correct averages!Do you still want to continue? (ȡN(ڣ4ڣܓÄÄ f ת  צ6 š(ȍݓخܓÄݓ> ˡצ&WARNING: This record is an averageudent?  Enter marks in order?ݡޡ(ġ(ܡb$Now type the grade for each student. ȡ خޡ  G (Ȅڄ(ڡ / T ءצ(Type 0 to quit)0צ&(0 to quit, for rest of list)Enter mark for which st (,, P-- š.- .P..P. Q.,e.P-š.-.P   -,++(ˡCˡ+( +(IGń׷.áHHIá צoV Gܣܣܣۏ؂4 (.إ.(.( Z^GšAתP$(0 to quit, for other page)4HP (Type 0 to quit)צEnter grades in which record? צIȄۓ ۡצHH š  ġ ȡ) צ New Record8> ~Iá H IGš IGڶIšI á ٲˡ C  DɡHI צ records used; I צ available.DɡáH6/(/(II ^ (  HHHHBצ!Press M to modify this data, orPress to enter grades.س `b=}$D  תK Ld  L צInitial value for marks: (..ȡ(//4/(/( ۢ  ۢ ۣ( ء% ۣ(   :MNNNNGJ HNNNXNצ.GRAD]NDCIHNNNXN.NAME]N HHJ!. >bb 8 T "P<,4 .<2 Record: (ȡ(ۣ~ˡIH222X2צ.GRAD]2H0H٩HBH11d1111צOver-all Average1 OvrAvgp1  AvgרM P22ȡ-ġ1 ݛ .P"..P. AverageX.P "ب 11 22ȡ=1n ݏ1n ݏ(22ȡ91(1(00 0NɡצP..ġM Pضڕń//Pڕ//P/ Q/ǡ/P á š..Pš ..P. AvgTI vNתP..ġIN//NP/M d/צ e/PN..NP.צAverageW.Pצ Ná NNAverageׯNצOver-all AveragePNȡ NPign some of these grades to a second category.áݶHB ÍH]JUjب ɡLܓ>M צب HX.GRAD] ޟˡHH(ġDצ&Error: not enough memory left for thisצ&calculation! Use the Grades option toצ'ass}šخ Hy ٨ ɡߓGá5 ȡ'ˡߓR;  t بD á FFFښFFZ צ. }M å}M ׯ򥍼}M צ . All of the above Your choice (0 to quit option): á0ɡ+}}}}}~~ġNצ M} ~~~צ$ average for which of the following:~ š  }M צ8  צ  ײ؂Ȳ׷0؂ ײצhY  }}M ׯ-}}}}}šخ   Calculateת HZáضHHHHx` šhצ$Error: not enough grades to average.צPress to continue.|work with?Your choice (0 to quit): áT P  X .CATS] 祀 n  HX.GRAD]HͶPress for main menu.! J ! تPR(  ȡ3 .  צ%Which class do you want to ۢ  ۢ ۣ( ء% ۣ(   :MNNNNGJ NNNXNצ.GRAD]NDCIH1  5l Dáض6  H444X4.GRAD]4 N33܂Ȅd  3܂ 3 33ġ܂ (0 when done3á 0P,, for rest of list תP)צChange weight of which record?    0 (NOTE: The Report Option contains several(new capabilities which are not explained(in the documentation. Please follow the(directions on the screen carefully whileyou are using this opfš]ݓ?M ׯ V   !' 6H~&z~ R  x4BNl4ZD: M צńڡ ߟá} Re-calculate  ġ4M  average?a ٨  `á(á ڟ<ب  !rצDo you want a printout?צCONSOLE:ޢM ިD!M  ۨ á𥍼HHH HH wצ#The file is full. You must use the(Delete option to remove some old grades.HHBHٚ"HHBHH,bߢߢ צ Curved Scores: ȡ, צ  ?  HX.GRAD]ۢۢۢ ڟÚ ݡצ Raw: Mean =צ Std Dev =ݡCurved: Mean =צ Std Dev = Raw Scores: ȡ6 //ˡ`/332(áצ )32(3 //צ 2( 02( .. CL.(22---ö-ÄName /,/ˡ, //,,0!צ Raw Curved Avg3323צ 32 )3Pš33P܊(ꥂ I*~pHצPress to continue.  V 0111X1.NAME]1-.(1.1ȡ쩂ʶ (ˡO ((Ʉ( ߢ( ˡD (ˡ!( š"(צLowest   grades dropped.ܡ    X .NAME] צ Averaging...( ȡ詂(  ˡ#(á  ȡtˡI . ٢ ٢٣ ` áڟ˄ڣˡܡצNumber of low marks to drop: š9צ"3á3 oȍ \244ȡ 22ޕۆ܏ێ22dH2H2BH 0HeX Nצ No. Item Weightion.#Please enter the date or some otherצ'identifying information to be placed on%the top of the reports. You can typeצ'anything you want, up to one line long.!Press when you are done. P&"á#Do you want a pause to insert paperצat the end of each pageof the printout?9 6   2C2צ(Converted to %)'CR # @ I 㥎 GRADES   ȡ צ No. Description ٟˡ  K MRع%2צ(Raw)<2(Curved)׮(CR  K 2׮ع++P ,,צ(,Q,צ ptT,P+š,,P,sQ,P,,P,צ)Q,P.YYP.ń..XXPR.ɡJٹ:.XX.PXצ QXP(.XX X.QXP A&.^'hLBáRC צ. ع(2צC2צ(Converted to %)'CR # MXX eY Average nYǾYPr.Xȡ;.YYXYצ (Y.kY) mYǽYP#.YYXY YjYP .á .Average.á#.YY Over-all Y v 76ġ & تPۢX.צPWXYWYġK.ZZ.PZ QZWMXW eZPWW .á .Xšo.YY.PY QYXצRunning out of memory.צPress to print report.ō!]^6 ȡ 9YPress for next page.$צ(Type 0 to quit)!Report grades from which record? תPצȄݓ ݡ0ׯń צá (,ɡit curved grades?ۡڡ BRCضضɄ 1  š  ۶š0š9#(0 to quit, for next page)t.Raw grades are based on H  points.'Curved grades are converted to percent. UצReport raw grades?ۓ9ReporáٶHBHH˄ RHThis set of grades was curved.צRaw grades are in literal form.'Curved grades are converted to percen HH,ɥH HU HP,š-,-P  H++ˡ2+,,,Ʉ, ,,+: HHI Student summary stripsצ4. Detailed student reportsצ Your choice:    á   ȡ   á   , ٶٶ؂ٶ$ 祀  `0 You can choose a report fromany of the following formats:צ1. Simple teacher report2. Detailed teacher reportצ3. ȡ3 .  צ%Which class do you want to work with?Your choice (0 to quit):    á\  PX.CATS]تP+,,P,:Q,P+š,+,P+VB צCode؟ˡHآ ڢ ڢ ڢ  ؟ˡHآ ڢ ڢ ڢ  R ȡ  ٟˡ  !H Vצ Max. Points؟ˡGCآÍBٓ d آá أ display'A to switch between the left and right צ sides of the report$Be sure you are holding the CTRL key#down when you press the S or the A.צ'Note that if you stop you6(This report may be too wide and too long&to fit on one screen. You can control&the screen display by holding down thekey marked "CTRL" and pressing:צS to start and stop the comments for/ / .Enter a blank line when done.P ׯ 楂 =FXJצPrint this report?77צCONSOLE: W H0P 0/( / 0 0/(  0 00 0 0-00ȡ Now enter teacher Raw Conv. צ Description&# Score Score Weight ڟˡ0ڥ׮0 0ˡ3 0/(0 {0/(áצ0 0/ 40?50/צAdd teacher comments at end?-  Printing...(..ȡ䩂(// 㥎 Grades for / /    ͈  خ8  G` تPR(...X.צ.NAME].Report on all students?׮q(..ȡe(//K00 Report for 0/(ȡ(خ8 3` tXצ.NAME](ȡ(خ8 9` zXצ.NAME](ȡ4( BצSet C;, of Categories: ȡ^M ׷=  צ. 㥍M   u4Xצ.NAME]M ׷fˡAڂ:؟ˡ8آš -آ  M Categories for 㥎 ȡ𥍼M ׷ٹ3צSet A0Set)BR"  ?WÄ&W(( *W((W UV P צLevel؟ˡآ  צ Category Aȡ𥍼 j # (WX,W P,Xš,,YXYPWPX,šYX,YP,YYPY QY,ǡYP, X,UVUˡUWW<7V;ݢݢGWݢݢEIڡݢݢG ݢݢE*BR"'7  c  Std. Dev.׮؟ˡxCآG \آE LڡآG آE )BR"*<    Ppצ Raw or Curved؟ˡ3RBل Raw Crv <^צWeight؟ˡ@CBړݢݢ ݣ   צ Class Mean؟ˡr display with#CTRL-S, it will not start until youצ&press CTRL-S again. Press S while youצare holding the CTRL key down.צPress to continue.6 4 HXצ.GRAD]HH HáaError: no grades in this classPress to continue. ˡ8؟˶8(آÄ8ȡڕ á" צsource (original) ȡ(؂"ˡá" צdestination (new) ȡ*؂"ˡá ڕɡقskצand press the key.4- h Error ع&צreadingwriting - the disk.v ((ɡ ress the key.òōc(This disk is not in the expected format.Back it up anyway? -٨تP14- j Insert the  diÄ\  (Do you want to use this new disk to makea backup copy of another disk?á1Please insert the disk to copy,5צ%Insert the disk to copy into drive 1,and p  is not on line.́ʁʁńʁȄgצ"This disk appears to contain data.צDestroy all data on this disk?́ʁEצInitializing...ʁá ́ʁ ʁʁeed of your drive is too slow.u4á?צ% The speed of your drive is too fast.1Unknown formatting error. x " á"́ʁ ́ʁ á<Drive nd initialize the disk?á1 צ Initialized OK. 'á=צ# Can't format--diskette may be bad.+á3צ Disk is write protected.3á?צ% The sp ////-d  Please insert a blank disk.צIf you go ahead, any data onצthis disk will be destroyed!!Do you want to go aheadצa%I can't read the initialization file! @P 00צGR0R0Pš /0/0ȡ(/ȡ/// ///0/0ȡ#formatting would destroy heap!     !M"̃ʃác̃ʃM ʃM צFORMATTER.DATA ʃ̃ʃM צFORMATTER.DATA ̃ʃá ʃM ʃ˞"ˍ=Press for main menu. ! D (y/n) ڳ@@ڳG`  štThe top of heap ( צ) is too large;  7^צPress to continue. Press to continue.& Do you want to print these sameצgrades in another format?ٓ١ !Another report from this class?H ICw!bZ::::::tD> l v * <rHnR<\P  !"J@ آÄ8  7^צPress to continue. Press to continue.& Do you want to print these sameצgrades in another format?ٓ١  !VJ Do you want to initializeצ another disk?V    !$hIhJhhhhh )Khh LhhNxL K MNH(HMHJHIH`PN@9532.-'%# pTp z  !]^6 ȡ 9YPress for next page. v 7ays listed on the%left-hand side of print-outs. Pleaseצgive the amount of space, inצ&characters, to be allowed for printingצ&the student names. The remaining partr you expect to use.&If you have no printer, give the widthof your screen instead.צNumber of characters per line: آأ &Student names are alw"per line to be used on print-outs.&This should normally correspond to the"number of characters per line your#printer will handle, or else to theצ!width of papeo 110 on aצ$100-point test, or marks of up to 22צon a 20-point quiz.Extra credit percentage: آأf $Please give the number of charactersצ higher than the number of pointsצnormally allowed for a givenצ!assignment. For instance, if the&extra credit percentage is 10, you canenter marks of up t)צColumn width in characters: آأ (v !Now give the maximum extra creditצ#percentage. This percentage allows#you to enter student marks that areudent names, sets of'grades, etc. Type the desired width ofצ&each column. (Note: Columns less thanצ(about 20 characters wide may not be ableצ to convey adequate information.t fit on your screen.צ%Screen height in rows of characters: آأd צ$The screen can be divided verticallyצ(into two or more columns for the purposeצ!of listing stumber of characters!that will fit across your screen.צScreen width in characters: آأx'Now type the number of horizontal linesצ&of characters tha! 62 12 3צ! 104 8 2! 190 5 1צMaximum number of items: آأ $Please give the ns in turn determines the number ofצ$classes that will fit on a disk. Theצ table below shows some examples.צ& Items Classes per Classes perצ'per class data disk program disklow space for storing'averages. In most cases, 20 additionalצ items for averages is adequate.)צ$The total number determines how muchצ'disk space is set aside for each class.%Thi 'Please type the maximum number of itemsצ((tests, quizes, etc.) that you expect toצ"enter for any one class during theצcourse of the year.&(You must also al6ġ & تPۢX.צPWXYWYġK.ZZ.PZ QZWMXW eZPWW .á .Xšo.YY.PY QYXMXX eY Averצ"of each line is then available forצ#printing student grades. (The less#space you allow for names, the moreצ$grades you can fit on each print-outצ$--but don't leave less than about 15צcharacters for names.)צ$Max. number of characters per name: آأ- &Are you familiar with the Apple PascalOperating System? the categories. You canצ&accept the default value which alreadyצ%appears on the screen by pressing thereturn key, or you can type aצ#different one. Press the space bar$and then the nation of all categories:צthe Over-all Average.צCATEGORIES.DATAbצ!Error: Can't find CATEGORIES.DATAPress for main menu.צCATEGORIES.DATAצ$Now type in(and C, if used) categories:First Quarter Average,Second Quarter Average, etc."Finally, these results are used to'calculate a cumulative average based onצ"the combited based onevery set of categories:First Quarter Test Average,צ First Quarter Quiz Average, etc.צThen, these results are used to&calculate averages based on only the Bnused.)%Each set of categories can contain upצto seven different categories.$Grades will be averaged based on the categories.צ'First, averages are calculaצ"and Set B for the reporting periodצ&(First Quarter, Second Quarter, etc.).צ((There is a provision for entering stillצ%a third set of categories, Set C, but$these will normally be left u%Please type the categories you expectצto use for entering grades.$Normally, you will use two different&sets of categories--Set A for the type#of grade (such as test, quiz, etc.)rror: Can't find GRADEBOOK.DATAPress for main menu.צGRADEBOOK.DATA צ(Press to continue.  R .d AAFFAFȡġ۶AFAš۶AFAؚ۶AFA۶AFA۶AFA 6 צGRADEBOOK.DATAa Eȡġs+! - ) AFA  צ!Press return to accept old value,or type a new valuee E+, E or E-,צ%but use only F to indicate a failure,#type in the same value for all six:צE+, E, E-, F+, F and F-.צPress return to continue.   AAFFAFtype in the same value as for theצmark you want to use instead.&For instance, if you use F, but not F+$or F-, simply type in the same valuefor all three.If you don't usצwith files you cannot remove!  !Now type the equivalent numericalצ%score for each possible letter grade.%If there are marks you do not want toצ&use, צ(NOTE: An answer of yes makes it possibleצ&to send reports to disk files. If youצ&are not familiar with the system, thisצ(can result in cluttering your data disksreturn key when you are%done entering each set of categories.צ# to accept; to quit-//ȡ-. ٹצSet A (normally type of grade)iצ!Set B (normally reporting period)6Set C (normally unused) e400ȡ.-M צx צ. M PM ׯ .á-NAME], ,,,X,צ.CATS], Entire class removed.צPress to continue.t!0 HXצ.GRAD] š H   ,,,צCLASSNAMES.TEXT, ,,,CLASSNAMES.TEXT[4],,,ȡ# ,,,X,צ.GRAD], ,,,X,.צ#Type 'YES' if you want to proceed: PYESׯ٩ɥ  <צ&Error finding class in CLASSNAMES.TEXT,,ȡ!uR&  #You are about to delete all recordsצand grades for the class .'Once deleted, the data is gone forever.Restoring all recordsȡ á .HH۩HˡHH*ۓHHHHۡ.H HȡH5  تPu(ȡ7ڢ(ڢ(?  צRemove chosen recordsand compress the file? ۡ.Compressing the file-צ...ńצ šٕצÄ\  צڢ  ڢڢڢȡڢڢڢȡJڢdd ڢڢš=#(0 to quit, for next page)(צ(Type 0 to quit)Remove which record? תPׯضȄۓ ۡ.?[ڢצHHHضɄ!ضض ; Nڶš  records used; room for   more.ġ// ȡ HHHlצThis record is not active.צPress to continue. צRemove HH á .HH آ آHc /00ȡ //0ܶ/˄}0/P0š101Pצ   ۶ PX.CATS]祀%`BتP+á+TDReading grade fileHH H, !  ȡ; .  צ%Which class do you want to work with?Your choice (0 to quit): áZ&`  צAre these values ok? B\nX$   nf,"normally type of grade)iצ!Set B (norm^V צ You can delete grade records, orצ you can delete the entire class.צDelete grade records?  ! ^$ ~ & Entire class removed.צPress to continue.t!0 Xצ.GRAD] š `L i=L\Ʃx ? N'i  ͭЅ?0ȱ Ѕ?iȱi lԠԠ͠ԠϠŠͮŠ SYSTEM.APPLE   L$J , - - -`HJ݌h Hh݌`  8`0($ p,&"!Ls# L# ."%&8  Hh# j</8`# j# &0 &`%8`" %# j%8`  $LhB   V ꩖݌$ ݌     `Hh݌`80^݌Hh  ݌ - - -   EEHJh.AS&  dQáuH PU@l..B/      aġ ҩҳ` M˩Q˄ҹ  צ Memory left:   bytes.צPress .j4!Insert boot disk and press RESET.,    ",&  쥌u㥌HtB.B/      uSYSTEM.STARTUP"өˡ=צ'Insert program disk and press .áurz   &    ",    "NAMES.TEXT "áD 2 š  򥉶Néōuצ)Error: There are no classes on this disk.Press for main menu.( ڞ"   צ:  L$Insert data disk and press .4'צ I/O Error #  ڡ  CLASShange student names! G(rades: Enter or change gradesצ A(verage: Calculate averages# R(eport: Print a report of gradesצ S(et-up: Set up program valuesצ* D(elete: Delete grade records or classesצ% B(ackup: Backup or initialize disks#Type the letter for the program youצ(would like to use, or press Q to quit. ames: Enter or change student names! G(rades: Enter or change gradesצ A(verage: Calculate averages# R(eport: Print a report of gradesצ S(et-up: Set up program values  G r a d e B o o k$ Copyright 1984 by Scott Steketee All rights reserved (Vers צ2.1)GradeBook Options:( N(ames: Enter or c^V צ You can delete grade records, orצ you can delete the entire class.צDelete grade records?  !) (jJJ>L+ "?I>  N `  ` x V Nx .x- z `V0^*^*>` aI꽌ɪVɭ&Y&&Y& 꽌ɪ\8`&&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xH&x'8*7Ixix&&  ') + &п x) ++`FG8`0($ p,&" $Ptr := FirstLink; $WHILE Ptr <> NIL DO &WITH Ptr^ DO (BEGIN *IF (RecNum >= FirstOnScreen - 1) AND (RecNum < LastOnScreen - 1) THEN ,BEGIN .GoToRec (RecNum + 1, 3); .Write (Kind) ,END { IF }; *Ptr := Next (END { WITH }; "END { ShowChoices }; D GradeFile^.Active DO (BEGIN *GoToRec (DescNum, 0); *St := GradeFile^.Description; *IF Length (St) > ColumnWidth - 6 ,THEN St := Copy (St, 1, ColumnWidth - 6); *Write (DescNum:3, ' ', St); *Get (GradeFile); *DescNum := DescNum + 1 (END { WHILE };"VAR St: STRING; &Ptr: Link; "BEGIN $FirstOnScreen := DescNum; $LastOnScreen := DescNum + NumPerScreen; $Page (Output); $Seek (GradeFile, DescNum - 1); $Get (GradeFile); $WITH SetUp DO &WHILE (DescNum < LastOnScreen) AND NOT EOF (GradeFile) WANSt: STRING;   PROCEDURE GoToRec (Rec, OffSet: INTEGER); "BEGIN " Rec := Rec - FirstOnScreen; $GoToXY ((Rec DIV RowsToUse) * SetUp.ColumnWidth + OffSet, Rec MOD RowsToUse) "END { GoToRec }; %  PROCEDURE ShowChoices (VAR DescNum: INTEGER); := 0 &ELSE FormatNum := FormatNum + 1 "END { ChooseFormat };  PROCEDURE ChooseRecords (VAR NumItems: INTEGER); "{ allows the user to choose a set of records to report } "VAR RNum, FirstOnScreen, LastOnScreen: INTEGER; &Valid, Done: BOOLEAN; &'Your choice: '); $FormatNum := ReadInt (FormatNum, 0, Ord (DetailStudent) + 1); $IF FormatNum = 0 &THEN Exit (OneClass); $Format := SimpleTeacher; $FOR Count := 2 TO FormatNum DO &Format := Succ (Format); $IF Format = DetailStudent &THEN FormatNum$Writeln; $Writeln; $Writeln ('1. Simple teacher report'); $Writeln; $Writeln ('2. Detailed teacher report'); $Writeln; $Writeln ('3. Student summary strips'); $Writeln; $Writeln ('4. Detailed student reports'); $Writeln; $Writeln; $Write (um := 1 &END "END { ChooseClass }; $  PROCEDURE OneClass; "FORWARD;   PROCEDURE ChooseFormat; "VAR Count: INTEGER; "BEGIN $Page (Output); $Writeln ('You can choose a report from'); $Writeln; $Writeln ('any of the following formats:'); F ClassNum = 0 THEN &ChooseClass := FALSE $ELSE &BEGIN (ClassName := ClassArray [ClassNum]; (ChooseClass := TRUE; (Reset (CatFile, Concat (DiskName, ClassName, '.CATS')); (IOCheck; (CatList := CatFile^; (Close (CatFile); (ClassNum := 0; (FormatNge (Output); $FOR Count := 1 TO LastClass DO &Writeln (Count, '. ', ClassArray [Count]); $Writeln; $Writeln ('Which class do you want to work with?'); $Writeln; $Write ('Your choice (0 to quit): '); $ClassNum := ReadInt (ClassNum, 0, LastClass); $I"END { Initialize };   PROCEDURE IOCheck; "BEGIN $IF BadIO &THEN Exit (Report) "END { IOCheck };   FUNCTION ChooseClass: BOOLEAN;  { allows user to choose which class to average } "VAR Count: INTEGER; "BEGIN { ChooseClass } $MemCheck; $PaBLANKBLANK:rGnavpa~`~arGaaaaa `zbavava@ ~ ~ avZ@ aavaea@ @ ava `ZZ@bBbBb̘`nMFil bvbbvbh~ ~ ~ .bv0b(  PROCEDURE AddRecord (RecToAdd: INTEGER); "{ finds RecToAdd in GradeFile and puts it at end of list } "VAR Temp: Link; &DoRaw, DoCurved: BOOLEAN; "BEGIN $Seek (GradeFile, RecToAdd - 1); $Get (GradeFile); $Temp := LastLink; $New (LastLink); $IF FirstLink = NIL &THEN FirstLink := LastLink &ELSE Temp^.Next := LastLink; $LastLink^.Next := NIL; $LastLink^.Data := GradeFile^; $LastLink^.RecNum := RecToAdd - 1; $IF NOT CurveCheck (GradeFile^) AND (GradeFile^.Mode <> Literal) &THEN LastLinkCatList [LevCount, Category [LevCount]]); (WHILE Pos (' ', St) = 1 DO *Delete (St, 1, 1); (IF Level > 1 *THEN St := Concat (St, ' ', 1CatList [Level - 1, Category [Level - 1]], ' Average ', Append) *ELSE { Level = 1 } ,IF Length (St) + Length (DescifyType; `Append: STRING); "{ prints the description, with given width; width is ignored if zero } "VAR St: STRING; &LevCount: INTEGER; "BEGIN $WITH Ptr^.Data DO &BEGIN (St := ''; (FOR LevCount := MaxLev2 DOWNTO Level DO *St := Concat (St, ' ', "END { NextPage }; "  PROCEDURE NextLine; "VAR Count: INTEGER; "BEGIN $Writeln (OutFile); $LineCount := LineCount + 1; $IF LineCount >= LinesPerPage &THEN NextPage "END { NextLine }; ( PROCEDURE OneDescrip (Ptr: Link; Width: INTEGER; Just: Justip DO &Writeln (OutFile); $IF PagePause THEN &BEGIN & GoToXY (0, PromptLine); (Write (ClEOS, 'Press for next page.', Bell); (Readln (KeyBoard); (GoToXY (0, PromptLine); (Write (ClEOS) &END { PagePause }; $LineCount := 0 2Done := TRUE 0END ,END { ELSE } $UNTIL Done OR (NumItems > MaxColumns); $GoToXY (0, PromptLine); $Write (ClEOS) "END { ChooseRecords };   PROCEDURE NextPage; "VAR Count: INTEGER; "BEGIN " FOR Count := LineCount + 1 TO LinesPerPage + LinesToSk := TRUE *ELSE ,BEGIN .NumItems := NumItems + 1; .AddRecord (Val (St)); .IF MemAvail < Minimum THEN 0BEGIN 0 GoToXY (0, PromptLine); 0 Writeln (ClEOS, 'Running out of memory.'); 2Write ('Press to print report.'); 2Readln (KeyBoard); (Valid := ((St = '') OR ((Val (St) >= 0) AND (Val (St) <= NumRecs))); (IF NOT Valid THEN Write (Bell) &UNTIL Valid; &WITH SetUp DO (IF (St = '') AND (NumRecs > NumPerScreen) *THEN ShowChoices (RNum); &IF (St <> '') THEN (IF Val (St) = 0 *THEN Done (ClearLine, '(0 to quit, for next page)') *ELSE Write (ClearLine, '(Type 0 to quit)'); &REPEAT (GoToXY (0, PromptLine); (Write (ClearLine, 'Report grades from which record? '); (St := ''; (GetString (St, 3, [' ', '0'..'9']); Screen &THEN RNum := NumRecs - NumPerScreen + 1 &ELSE RNum := 1; $NumItems := 0; $Done := FALSE; $ShowChoices (RNum); $REPEAT &IF RNum > NumRecs (THEN RNum := 1; &GoToXY (0, PromptLine + 1); &WITH SetUp DO (IF NumRecs > NumPerScreen *THEN WriteOS); $IF (RecToAdd >= FirstOnScreen) AND (RecToAdd < LastOnScreen) THEN &BEGIN (GoToRec (RecToAdd, 3); (Write (LastLink^.Kind) &END { THEN } "END { AddRecord };  "BEGIN { ChooseRecords } $FirstLink := NIL; $LastLink := NIL; $IF NumRecs > NumPer0Write (ClearLine, 'Report curved grades?'); 0DoCurved := Yes .END; *IF DoRaw ,THEN IF DoCurved .THEN LastLink^.Kind := 'B' .ELSE LastLink^.Kind := 'R' ,ELSE LastLink^.Kind := 'C'; (END { IF CurveCheck }; $GoToXY (0, PromptLine - 1); $Write (ClEades are converted to percent.') 6END { Points } *END { CASES }; *GoToXY (0, PromptLine + 1); *Write ('Report raw grades?'); *DoRaw := Yes; *IF NOT DoRaw ,THEN DoCurved := TRUE ,ELSE .BEGIN 0GoToXY (0, PromptLine + 1); ades are in literal form.'); 8Writeln ('Curved grades are converted to percent.') 6END { Literal }; ,Points: BEGIN 8GoToXY (0, PromptLine - 1); 8Writeln (ClEOS, 'Raw grades are based on ', NGradeFile^.TotalPoints, ' points.'); 8Writeln ('Curved gr^.Kind := 'R' &ELSE (BEGIN *CASE GradeFile^.Mode OF ,Percent: BEGIN 8GoToXY (0, PromptLine); 8Writeln (ClEOS, 'This set of grades was curved.'); 6END { Percent }; ,Literal: BEGIN , GoToXY (0, PromptLine - 1); 8Writeln (ClEOS, 'Raw grription) + Length (Append) + 4 <= Width .THEN St := Concat (Description, ' (', St, ') ', Append) .ELSE St := Concat (Description, ' ', Append); (WHILE Pos (' ', St) = 1 DO *Delete (St, 1, 1); (IF Pos ('Average', St) = 1 *THEN St := Concat ('Over-all ', St) &END { WITH }; $IF (Length (St) > Width) AND (Width > 0) &THEN St := Copy (St, 1, Width) $ELSE WHILE Length (St) < Width DO &CASE Just OF (Left: St := Concat (St, ' '); (Right: St := Concat (' ', St) &END { CASnts:4) ,ELSE Write (OutFile, ' ':4); (NextRec (Ptr, FirstColumn) &END { WHILE }; $NextLine "END { PrintPoints }; "  PROCEDURE PrintRawCrv; "VAR Ptr: Link; &FirstColumn: BOOLEAN; "BEGIN $StartLine ('Raw or Curved'); $Ptr := FirstLink; $FirstColColumn := TRUE; $WHILE Ptr <> NIL DO &BEGIN (IF (Ptr^.Kind = 'C') OR (Ptr^.Data.Mode = Percent) BOR ((Ptr^.Kind = 'B') AND NOT FirstColumn) *THEN Write (OutFile, MaxPercent:4) *ELSE IF Ptr^.Data.Mode = Points ,THEN Write (OutFile, Ptr^.Data.TotalPoi(Count := Count + 1; (NextRec (Ptr, FirstColumn) &END { Ptr <> NIL }; $NextLine; $PrintCodes; "END { PrintTopHead }; "  PROCEDURE PrintPoints; "VAR Ptr: Link; &FirstColumn: BOOLEAN; "BEGIN $StartLine ('Max. Points'); $Ptr := FirstLink; $First&Ptr: Link; &FirstColumn: BOOLEAN; "BEGIN $FOR Count := 1 TO 3 DO NextLine; $Write (OutFile, ' ':SetUp.RptNameLength); $Count := 1; $Ptr := FirstLink; $FirstColumn := TRUE; $WHILE Ptr <> NIL DO &BEGIN & Write (OutFile, Count:4); $FirstColumn := TRUE; $WHILE Ptr <> NIL DO &BEGIN (WITH Ptr^.Data DO *Write (OutFile, ' ', Code[4], Code[5], Code[6]); (NextRec (Ptr, FirstColumn) &END { WHILE }; $NextLine "END { PrintCodes }; "  PROCEDURE PrintTopHead; "VAR Count: INTEGER; FirstLink; $FirstColumn := TRUE; $WHILE Ptr <> NIL DO &BEGIN (WITH Ptr^.Data DO *Write (OutFile, ' ', Code[1], Code[2], Code[3]); (NextRec (Ptr, FirstColumn) &END { WHILE }; $NextLine; $Write (OutFile, ' ':SetUp.RptNameLength); $Ptr := FirstLink;$IF (Ptr^.Kind = 'B') AND FirstColumn &THEN FirstColumn := FALSE &ELSE (BEGIN *FirstColumn := TRUE; *Ptr := Ptr^.Next (END "END { NextRec }; $  PROCEDURE PrintCodes; "VAR Ptr: Link; &FirstColumn: BOOLEAN; "BEGIN $StartLine ('Code'); $Ptr := oncat (St, ':'); (IF Length (St) > RptNameLength *THEN St := Copy (St, 1, RptNameLength); (Write (OutFile, St:RptNameLength) &END { WITH } "END { StartLine }; ,  PROCEDURE NextRec (VAR Ptr: Link; VAR FirstCol: BOOLEAN); "BEGIN e; $Ptr := FirstLink; $Count := 1; $WHILE Ptr <> NIL DO &BEGIN (PrintOne (Ptr^.Kind); (Ptr := Ptr^.Next &END { WHILE }; $NextLine; $NextLine; "END { PrintDescrips }; $  PROCEDURE StartLine (St: STRING); "BEGIN $WITH SetUp DO &BEGIN (St := Ce; ,Count := Count + 1 *END { ELSE } $END { PrintOne }; $ "BEGIN $NextLine; $Write (OutFile, ClassName, ' GRADES'); $NextLine; $Write (OutFile, Date); $NextLine; $FOR Count := 1 TO 3 DO NextLine; $Write (OutFile, ' No. Description'); $NextLinCSt := Concat ('(', St, ' pt'); CIF TotalPoints > 1 ETHEN St := Concat (St, 's'); CSt := Concat (St, ')'); COneDescrip (Ptr, 50, Left, St); AEND { Raw }; :'C': OneDescrip (Ptr, 50, Left, '(Converted to %)') 8END { CASES } ,END { CASES }; ,NextLinisp OF >'R': OneDescrip (Ptr, 50, Left, '(Raw)'); >'C': OneDescrip (Ptr, 50, Left, '(Curved)');  NIL DO &BEGIN (IF (Ptr^.Kind = 'R') OR ((Ptr^.Kind = 'B') AND FirstColumn) *THEN Write (OutFile, ' Raw') *ELSE Write (OutFile, ' Crv'); (NextRec (Ptr, FirstColumn) &END { WHILE }; $NextLine "END { PrintRawCrv }; "  PROCEDURE PrintStats; "VAR Ptr: Link; &Lev: INTEGER; &FirstColumn: BOOLEAN; &Mean: REAL; "BEGIN $StartLine ('Weight'); $Ptr := FirstLink; $FirstColumn := TRUE; $WHILE Ptr <> NIL DO &BEGIN (IF (Ptr^.Kind = 'C') OR ((Ptr^.Kind = 'B') AND NOT Fir); $NextLine; $NextLine; $FOR Lev := 1 TO 3 DO &IF CatList [Lev, 1] <> '' THEN (BEGIN *CASE Lev OF ,1: Write (OutFile, 'Set A'); ,2: Write (OutFile, 'Set B'); ,3: Write (OutFile, 'Set C') *END { CASES }; *Write (OutFile, ' of Categories:'); *Neory [Lev]:4); .NextRec (Ptr, FirstColumn) ,END { WHILE }; *NextLine (END { THEN } "END { PrintLevCats };   PROCEDURE PrintCats; "VAR Lev, CatCount: INTEGER; "BEGIN $NextLine; $NextLine; $NextLine; $Write (OutFile, 'Categories for ', ClassName,THEN Write (OutFile, 8Chr (Ord ('A') + Lev - 1):SetUp.RptNameLength - 1, ':'); *Ptr := FirstLink; *FirstColumn := TRUE; *WHILE Ptr <> NIL DO ,BEGIN .IF Ptr^.Data.Level > Lev + 1 0THEN Write (OutFile, ' -') 0ELSE Write (OutFile, Ptr^.Data.Categn := TRUE; $WHILE Ptr <> NIL DO &BEGIN (Write (OutFile, Ptr^.Data.Level:4); (NextRec (Ptr, FirstColumn) &END { WHILE }; $NextLine; $StartLine ('Category A'); $FOR Lev := 1 TO MaxLev2 DO &IF CatList [Lev, 1] <> '' THEN (BEGIN *IF Lev <> 1 de); *Write (OutFile, ' '); *NextRec (Ptr, FirstColumn) (END { WITH }; $NextLine "END { OneStudent };   PROCEDURE PrintLevCats; "VAR Ptr: Link; &FirstColumn: BOOLEAN; &Lev: INTEGER; "BEGIN $StartLine ('Level'); $Ptr := FirstLink; $FirstColum3ELSE GType := Curved *END { CASES }; *IF (GType = Curved) AND (Data.Mode = Literal) ,THEN WriteGrade (OutFile, 2Data.Grade [NameFile^ [Student].Num, GType], Percent) ,ELSE WriteGrade (OutFile, 2Data.Grade [NameFile^ [Student].Num, GType], Data.Mo=' ':(RptNameLength + 1 - Length (NameString))); (END { WITH }; $Ptr := FirstLink; $FirstColumn := TRUE; $WHILE Ptr <> NIL DO &WITH Ptr^ DO (BEGIN *CASE Kind OF ,'R': GType := Raw; ,'C': GType := Curved; ,'B': IF FirstColumn 3THEN GType := Raw ngth - 1 - Length (NameString) ,THEN FirstString := Copy (FirstString, 1, CRptNameLength - 1 - Length (NameString)); *NameString := Concat (FirstString, ' ', NameString); *Write (OutFile, NameString, AN; "BEGIN $WITH NameFile^ [Student] DO &WITH SetUp DO (BEGIN *NameString := Last; *IF Length (NameString) > RptNameLength - 2 ,THEN NameString := Copy (NameString, 1, RptNameLength - 2); *FirstString := First; *IF Length (FirstString) > RptNameLerstColumn) &END { WHILE }; $NextLine "END { PrintStats }; $  PROCEDURE OneStudent (Student: INTEGER); "{ does one line with a student's name and grades } "VAR GType: GradeKind; " NameString, FirstString: STRING; &Ptr: Link; &FirstColumn: BOOLE*'R': Write (OutFile, Round (Ptr^.StdDevRaw):4); *'C': Write (OutFile, Round (Ptr^.StdDevCrv):4); *'B': IF FirstColumn 1THEN Write (OutFile, Round (Ptr^.StdDevRaw):4) 1ELSE Write (OutFile, Round (Ptr^.StdDevCrv):4); (END { CASES }; (NextRec (Ptr, FivCrv) *END { CASES }; *Write (OutFile, Round (Mean):4); *NextRec (Ptr, FirstColumn) (END { WITH }; $NextLine; $StartLine ('Std. Dev.'); $Ptr := FirstLink; $FirstColumn := TRUE; $WHILE Ptr <> NIL DO &BEGIN (CASE Ptr^.Kind OF <> NIL DO &WITH Ptr^ DO (BEGIN *CASE Kind OF ,'R': GetStats (Data, Raw, Mean, StdDevRaw); ,'C': GetStats (Data, Curved, Mean, StdDevCrv); ,'B': IF FirstColumn 4THEN GetStats (Data, Raw, Mean, StdDevRaw) 4ELSE GetStats (Data, Curved, Mean, StdDestColumn) OOR NOT CurveCheck (Ptr^.Data) *THEN Write (OutFile, Ptr^.Data.Weight:4) *ELSE Write (OutFile, ' ':4); (NextRec (Ptr, FirstColumn) &END { WHILE }; $NextLine; $StartLine ('Class Mean'); $Ptr := FirstLink; $FirstColumn := TRUE; $WHILE PtrxtLine; *FOR CatCount := 1 TO CatNum DO ,IF CatList [Lev, CatCount] <> '' THEN .BEGIN 0Write (OutFile, ' ', CatCount, '. ', CatList [Lev, CatCount]); 0NextLine .END { Cat <> '' }; *NextLine (END { THEN } "END { PrintCats }; (  PROCEDURE STReport; "{ simple teacher report } "VAR Student: INTEGER; "BEGIN $Reset (NameFile, Concat (DiskName, ClassName, '.NAME')); $IOCheck; $PrintDescrips; $PrintTopHead; $FOR Student := 1 TO MaxStudents DO &IF NameFile^ [Student].Active TH; $WHILE GradeFile^.Active AND NOT EOF (GradeFile) DO &BEGIN (Get (GradeFile); (NumRecs := NumRecs + 1 &END; $REPEAT &ChooseFormat; &Mark (GradeHeapPtr); &ChooseRecords (NumItems); &IF FirstLink <> NIL THEN (BEGIN *DoPoints := FALSE; *Ptr := FextLine 2UNTIL St = '' 0END { IF Comments }; .NextPage *END { active }; $Close (NameFile) "END { DSReport };   PROCEDURE OneClass; "VAR Ptr: Link; &Done: BOOLEAN; "BEGIN $Reset (GradeFile, Concat (DiskName, ClassName, '.GRAD')); $NumRecs := 00END { WITH }; .IF Comments THEN 0BEGIN 2FOR Count := 1 TO 6 DO 4NextLine; 2Writeln ('Now enter teacher comments for'); 2Writeln (First, ' ', Last, '.'); 2Writeln ('Enter a blank line when done.'); 2REPEAT 4Readln (St); 4Write (OutFile, St); 4N } :Str (Data.TotalPoints, St); :Write (OutFile, Data.Grade [Num,Raw]:4, '/', WSt, ' ':7 - Length (St)); 8END { points }; 2IF Kind IN ['C', 'B'] 4THEN Write (OutFile, Data.Grade [Num, Curved]:3, aData.Weight:8); 2NextLine; 2Ptr := Next F NOT (Kind IN ['R', 'B']) 4THEN Write (OutFile, ' ':12) 4ELSE IF Data.Mode <> Points 6THEN 8BEGIN :Write (OutFile, ' ':3); :WriteGrade (OutFile, Data.Grade[Num,Raw], Data.Mode); :Write (OutFile, ' ':7); 8END { not points } 6ELSE 8BEGIN { points,NextLine; ,Write (OutFile, 'Description':SetUp.RptLineLen - 38, E' Score Score Weight'); * NextLine; ,NextLine; ,Ptr := FirstLink; ,WHILE Ptr <> NIL DO .WITH Ptr^ DO 0BEGIN 2OneDescrip (Ptr, SetUp.RptLineLen - 28, Right, ''); 2I&WITH NameFile^[StuCount] DO (IF Active THEN *BEGIN ,NextLine; ,Write (OutFile, ClassName, ' Grades for ', First, ' ', Last); ,NextLine; ,Write (OutFile, Date); ,NextLine; ,NextLine; ,Write (OutFile, ' ':SetUp.RptLineLen - 25, 'Raw Conv.'); t for ', First, ' ', Last, '?')); .Active := Yes ,END; $Writeln; $Prompt ('Add teacher comments at end?'); $Comments := Yes; $Page (Output); $Writeln ('Printing...'); $FOR StuCount := 1 TO MaxStudents DO s: BOOLEAN; "BEGIN " Reset (NameFile, Concat (DiskName, ClassName, '.NAME')); $Prompt ('Report on all students?'); $IF NOT Yes THEN &FOR StuCount := 1 TO MaxStudents DO (WITH NameFile^[StuCount] DO ( IF Active THEN ,BEGIN .Prompt (Concat ('Repor { SSReport };   PROCEDURE Prompt (Message: STRING); "BEGIN $GoToXY (0, PromptLine); $Write (ClEOS, Message) "END { Prompt };   PROCEDURE DSReport; "{ detailed student report } "VAR StuCount, Count: INTEGER; &Ptr: Link; &St: STRING; &Comment&IF NameFile^ [Student].Active THEN (BEGIN *Write (OutFile, Date); *NextLine; *PrintCodes; *OneStudent (Student); *IF DoPoints ,THEN PrintPoints ,ELSE NextLine; *NextLine; (END { IF Active }; $Close (NameFile); $PrintDescrips; $NextPage "ENDse (NameFile); $NextPage "END { DTReport }; (  PROCEDURE SSReport; "{ student strip report } "VAR Student: INTEGER; "BEGIN $Reset (NameFile, Concat (DiskName, ClassName, '.NAME')); $IOCheck; $FOR Student := 1 TO MaxStudents DO sName, '.NAME')); $IOCheck; $PrintDescrips; $PrintTopHead; $FOR Student := 1 TO MaxStudents DO &IF NameFile^ [Student].Active THEN (OneStudent (Student); $IF DoPoints &THEN PrintPoints; $PrintRawCrv; $PrintStats; $PrintLevCat; $PrintCats; $CloEN *OneStudent (Student); $IF DoPoints &THEN PrintPoints; $PrintRawCrv; $Close (NameFile); $NextPage "END { STReport }; (  PROCEDURE DTReport; "{ detailed teacher report } "VAR Student: INTEGER; "BEGIN $Reset (NameFile, Concat (DiskName, ClasirstLink; *WHILE (Ptr <> NIL) AND NOT DoPoints DO ,BEGIN .IF (Ptr^.Kind IN ['R', 'B']) AND (Ptr^.Data.Mode = Points) 0THEN DoPoints := TRUE; .Ptr := Ptr^.Next ,END; *REPEAT ,IF NOT ChooseOutput ('Print this report?') .THEN Reset (OutFile, 'CONSOLE:'); ,CASE Format OF .SimpleTeacher: STReport; .DetailTeacher: DTReport; .StudentStrips: SSReport; .DetailStudent: DSReport ,END { CASES }; ,Page (Output); ,Write ('Print these grades in another format?'); ,Done := NTDReading grade fileHH H,H á .HH آ آHc /00ȡ /ch class do you want to work with?Your choice (0 to quit):  áX PX.CATS]祀#` تP+á+ !  áqError: no classes on this disk.צPress for main menu.  ȡ; .  צ%WhiBZlV$   nf"," (normally type of grade)iצ!Set B (normally reporting period)6Set C (normally unused) e400ȡ.-M צx צ. M PM ׯ .á-&` צAre these values ok? FORMDISK FORMDISK hIhJhhhhh )Khh LhhNxL K MNH(HMHJHIH`PN@9532.-'%# pGApple 1.1x FORMDISK };    BEGIN { ReportUnit } "{ no initialization needed }  END. { ReportUnit } , ; "WITH SetUp DO $BEGIN &RowsToUse := RowsOnScreen - 4; &NumPerScreen := RowsToUse * (ScreenWidth DIV ColumnWidth); &MaxColumns := (RptLineLength - RptNameLength) DIV 4 $END; "WHILE ChooseClass DO $OneClass; "Close (OutFile, LOCK);  END { Report OT Yes; ,IF NOT Done .THEN ChooseFormat *UNTIL Done (END { FirstLink <> NIL }; &Release (GradeHeapPtr); &Writeln; &Write ('Another report from this class?') $UNTIL NOT Yes; $Close (GradeFile); "END { OneClass };   BEGIN { Report } "Initialize/0ܶ/˄}0/P0š101Pצ   ۶ġ// ȡ HHHlצThis record is not active.צPress to continue. צRemove H?[ڢצHHHضɄ!ضض ; N grade records or classesצ% B(ackup: Backup or initialize disks#Type the letter for the program youצ(would like to use, or press Q to quit. ames: Enter or change student names! G(rades: Enter or change gradesצ A(verage: Calculate averages# R(eport: Print a report of gradesצ S(et-up: Set up program valuesצ* D(elete: Delete  G R A D E B O O K$ Copyright 1984 by Scott Steketee All rights reservedצGrade Book Options:( N(ames: Enter or change student names continue.t!0 Xצ.GRAD] š ^VDelete Grade Records or Classes  You can delete grade records, or you can delete the entire class.Delete grade records?  ! 2(T * &צPress to continue.t!0 HXצ.GRAD] š H^VDelete Grade Records or Classes ,,ȡ# ,,,X,צ.GRAD], ,,,X,.NAME], ,,,X,צ.CATS], Entire class removed.צPress to  <צ&Error finding class in CLASSNAMES.TEXT,,ȡ!   ,,,צCLASSNAMES.TEXT, ,,,CLASSNAMES.TEXT[4],for the class .'Once deleted, the data is gone forever.צ#Type 'YES' if you want to proceed: PYESׯ٩ɥۓHHHHۡ.H HȡH5  تPuuR&  #You are about to delete all recordsצand grades dsand compress the file? ۡ.Compressing the file-Restoring all recordsȡ á .HH۩HˡHH*ȡڢڢڢȡJڢdd ڢڢ(ȡ7ڢ(ڢ(?  צRemove chosen recorRemove which record? תPׯضȄۓ ۡ.צ...ńצ šٕצÄ\  צڢ  ڢڢڢڶš  records used; room for   more.š=#(0 to quit, for next page)(צ(Type 0 to quit)! G(rades: Enter or change gradesצ A(verage: Calculate averages# R(eport: Print a report of gradesצ S(et-up: Set up program valuesצ* D(elete: DeleteuSYSTEM.STARTUP"өˡ=צ'Insert program disk and press .áurzAҹ 2-(DS  +0HRHҹ 6 1 ,AR$ #BLANKBLANK:rGnavpa~`~arGaaaaa `zbavava@ ~ ~ avZ@ aavaea@ @ ava `ZZ@bBbBb̘`nMFil bvbbvbh~ ~ ~ .bv0b(&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xH&x'8*7Ixix&&  ') + &п x) ++`FG8`0($ p,&") (jJJ>L+ "?I>  N `  ` x V Nx .x- z `V0^*^*>` aI꽌ɪVɭ&Y&&Y& 꽌ɪ\8`&`L i=L\Ʃx ? N'i  D%0͈v_9`E 8Y+ula-WKl%M4aMaETa-WKd%(351G$(*3G 4**G5(+0GP(*F#,*!D5<71#(I%65( D鴼ɥXm%DZH 4L z , - - - `HJ݌h Hh݌`  8`0($ p,&"!Ls # L# . "%&8  Hh# j </8`# j #  &0 &`%8`" %# j %8`  $Lh B V ꩖݌$ ݌ `Hh݌`80^݌Hh   ݌ - - -       EEHJh , - - - `HJ݌h Hh݌`  8`0($ p,&"!Ls # L# . "%&8  Hh# j </8`# j #  &0 &`%8`" %# j K : 9 W : 8н : $)* 77` ݌HhHh V ꩖݌$ ݌ `Hh݌`80^݌Hh   ݌ - - -       EEHJh # h` \I꽌ɪVɭɖ0ɖ!ɖ 꽌ɪ\8`  꽌ɪɖ * % E зЮ꽌ɪФ`76$\8$9867I$i$88 8  : `+L! 'L! i0L! 8` $6JJJJ6 N$`)p##**LS ׅ P$ #  : Ld  i# # #L c L L L "%%L # j #  #H# PUh㥌HtB.B/      aġ ҩҳ` M˩Q˄ҹ  צ Memory left:   bytes.צPress .j4!Insert boot disk and press RESET..AS&  dQáuH "/R\쥌u㥌HtB.B/      aġ ҩҳ` M˩Q˄ҹ