IMD 1.17: 27/06/2012 9:00:33 SOFTECH MICROSYSTEMS UCSD P-SYSTEM II.0 STANDARD ORIENTER  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ÅÙÔÁ×@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@åÖÓñ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@æÈÄÙñ@ÄÁãÁ@@@@@@@@@@@@@@@ðøð@ðñððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ðñððñ@ÄÄÙñ@ÄÁãÁðù@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁñð@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁññ@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁñò@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁñó@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁñô@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁñõ@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁñö@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁñ÷@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁñø@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁñù@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁòð@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁòñ@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁòò@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁòó@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁòô@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁòõ@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ÄÄÙñ@ÄÁãÁòö@@@@@@@@@@@@@ðøð@÷ôððñ@÷óðòö@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@÷ôððñ@ åååååååååååååååå STARTUPî r  SYSTEM.STARTUP[\Ÿ EDITDEMO.TEXTŒ[\Ÿ  COMPDEMO.TEXTŒ[\Ÿ #NAMEFILEŒ[åñ¡#&COPYSCUNIT.CODE1¡&, SCDEMO.CODEŒ[1¡,0 READ.ME.TEXTŒ[r 08 UPDATE.TEXTŒ[èŸ8< UPDATE.CODEŒ[åñ¡<H TEMP.CODEŒY\Ÿå STARTUPî r  SYSTEM.STARTUP[\Ÿ EDITDEMO.TEXTŒ[\Ÿ  COMPDEMO.TEXTŒ[\Ÿ #NAMEFILEŒ[åñ¡#&COPYSCUNIT.CODE1¡&, SCDEMO.CODEŒ[1¡,0 READ.ME.TEXTŒ[r 08 UPDATE.TEXTŒ[èŸ8< UPDATE.CODEŒ[ å@@@@@@@@@@@@@ר²¤Ð@ @ @ @ר²¤Ð@ @@@@@@@@@ @ @ @@@@@@@@@ @ר²¤Ð@ @ @ @ @ @×娲¤Ð@ @ @ @@@@@ @@@@@ @ @@@@@ @ר²¤Ð@ @ @ @ @ @ @ @ @ @ר²¤Ð@ @@@ @ @ @@@ @ @@@ @ @ @@@ר²¤Ð@ å @ @ @ @ @ @ר²¤Ð@ @@@@@ @ @@@@@@@@@@@@@ @@@ר² ¤Ð@ @ @ @ @ @ר² ¤Ð@ @@@@@ @ @ @@@@@@ñ¡<H TEMP.CODEŒY\Ÿå ðPASCALSYORIENTER å ååå2ͶצCURSX:Ͷ¶Í ¶צ, CURSY:Ͷ¶Í ¶צ Í2ͶצMAZE[Í¶Ø•Í ¶,Ͷٕ‚Í ¶¦å]: ×ÍÌÌÛÜÈ¡97Û‚ÍÌÌÚÝÈ¡ ¶²Ø•Û‚¤Ù•Ú‚•¾Íڂ̹öۂ̹ô¶¶Í­I9 æÍ¶צ=Maze: U(p Då(own R(ight L(eft B(ack H(elp X(ecute C(lear Q(uitͶ¶Í­Z^¸¸¸¸�ÌÇÈÌØÙÈ¡%²�ؤÌÚ¶»Ú¶å»Ú¢ »Ø‚̹öÌÌØÙÈ¡>ØÍ¶צ( ÍØ‚̹ô¶¶Í­9O� ¢®ÌÌØÙÈ¡åØ‚Í¶²ؤÍØ‚̹ö̶�•ÌØÙÈ¡%Ø(ŽØ(†‚Ͷ²�ؤ¢ºÍ؂̹ô¶¶Í­ 6d t²¤Ð@@@@@@@@@@@@@@ Lá ¶•¶L® ¹&¶Uá ¶¶•U® ¹¶Dá ¶¶‚D® ق̹𸭿¶ƒ¢æ ¶¦%D(own - moves the cursor one box ¡¶•¸¶•‚Ͷ^Ͳ,¾Í­b‚ͶצJEnter string to be inserted: down×ͶͶצ! (if no wall in the way)ͶͶ¦%L(eft - moves the cursor one box LEFT×ͶͶͶצ ͂Ͷ¦Then press RETURN×͂Ͷ¦,Note: Use BACKSPACE (BS) to erase characters×͂ͶÆPͶÍ$Q(uit - terminates the maze program,ͶͶצ" returns to Pascal SystemͶͶצ'R(ight - moves the cursorƲP¶Í®­Ræ‚ͶצJType an X for each character to be deleted above ͂Ͷ one box RIGHTͶͶͶ¦!U(p - moves the cursor one box up×ͶͶͶצ X(ecute - simulates execution ofͶ¦Then press RETURN×͂Ͷ¦,Note: Use BACKSPACE (BS) to erase characters×Ͷ•‚ͶÆPͶͶ•‚ÍÆ¾ÌͶצ your "program" of movesͶͶͶצ# PRESS SPACEBAR TO RETURN TO MAZEͶͭÏÍ*¶Ê*‚•²¾Å¡ ²¾¶•‚Ì*¶ ƾͲ¶Ê*Í®­T"‚ͶצIEnter string to be located: ¶צ$Maze Program has following commands:ͶͶͶצB(ack - backs up cursor,ͶͶצ! unsaves most rece ͂ͶצThen press RETURN͂Ͷצ,Note: Use BACKSPACE (BS) to erase charactersÍ‚Í@@@ @ @ @ר² ¤Ð@ @ @ @ @ @ @ @ר² ¤Ð@ @@@@@ @@@@@ @@@@@ @ @ @@@ר² ¤Ð@ @ @ @ @ @ @ @ר²nt commandͶͶ¦C(lear - wipes maze clean×ͶͶצ# so you can start over againͶÍζÆÍ٠áöϤÐ@ @@@ @@@@@ @ @@@@@@@ @@@ @ר²¤Ð@ @ @ @ @ @ר²¤Ð@@@ @@@@@ @ @ @ @@@@@@@ @ @ר²¤Ð@ @ ®­¦  ÎÎ ¶ÆÍÌÚ¶¢)º—³aœ‹“¡ìÚáÙØÎ¹îÚ¶¢(º—³aœ‹¡ Ù‚ØRÎ ¹ðÚ¶¢( @ @ @ @ר²¤Ð@@@@@@@@@ @@@@@@@@@@@@@@@@@ר®¸¸²¶•¤¶•‚•#¿®¶#Ͷͭ   Ú•‚̺—³œ‹¡ Ù•ØLÎ ¹òÚ¶¢'º—³ œ‹¡ ÙØ•UÎ ¹ôÚ¶¢'º—³œ‹¡ ÙØ‚DÎ ¹öÚ³rÙ•ÌÜÄÜÈ„ÛÄ„ÛÈ„¡ô²Û¤Ü•¾ áö¶�(޶�(†‚ͶØÍ²Û¤Ü•+¿Ú¸Ù¸ÚÙͶ+ͶͶ“¡²�¶�¤¢Ø»¶�‹¶Í �¡Î ¹lÚ³‹¡Î ¹QÚ³s€‹¡Î ¹7ÚáOͶÍÙØÍ¹ Ú³‹¡Î ις¸�²�¶�¤Ú»²�¶�¤Ù»¶“¡²�¶�¤¢ »¹Ï¹Ï­  Ò ¶¶Í¶�Å¡ö²�¶�¤ÌØ¢?»Ø»Ø»¶ÌÚ¶¢)º—³œ‹¡ê­e’')+-/1DªÍ¶²,ͭͶצK  Ͳ¶•¤¶•‚• ¿¶�•¸�¶�(޶�(†‚Ͷ Ͳ�¶�¤Ìغ¸Øº¸¶¶Í­ œ ¸® ¶�̸� ÍͶ²Í¶•‚Ͷ^Í®­†²¦ROW ROW YOUR BOATתPÌØ•ÌÙÜÈ¡îÌÌÚÝÈ¡CÙ(ŽÙ(†‚ÍÌÇÈÌÛÞȡۂ̹ö¶¶ÍÌÇÈÌÛÞȡۂ̹ôڂ̹ò²�Ù¤¢º¸¶Rá ¶‚¶R® ¹:¶¸²,צ4Data: I(nsert D(elete P(os R(ight L(eft C(lear Q(uitªP­b¶•‚Ͷ ÍØÃ¡¶²¾‚É¡¶‚¸¹¶Å ¶ÆPͶͶ•‚Ͷ ÍÆ²Í¸¶á¸¶•‚Ͷ^Ͳ,¾Í­RÏÎζÆÍÙ³r‹“¡ôÙ¶¢(º—³ œ‹¡Î¹öÙ¶¢(º—³œ‹¡Î¹pÙ³U‹¡Î¹VÙ³UPROGRAM EDITDEMO;   PROCEDURE REPEAT1;  VAR S,SG:STRING; $L,N:INTEGER;  BEGIN "WRITELN( $'TYPE ANY STRING FOLLOWED BY ' )); "READLN(S); "N:=1; "L:=LENGTH(S); "REPEAT $SG:=COPY(S,1,N); $WRITELN(SG); $N:=N+1; "UNTIL N>L  END (*REPEAT1*¶Í؂̹ö­ (¶Í­ÎÎÎÁ`„¬˜hôbÚÄþ ê Œ d vð˜ü(:P,ractersÍ‚Í);   PROCEDURE REPEAT2;  VAR S:STRING;   PROCEDURE REVERSE; "(*REVERSE THE ORDER OF CHARACTERS &IN S*)  VAR NB,NE:INTE¶ÆPͶͶ•‚Ͷ ÍÆ²Í¸¶á¸¶•‚Ͷ^Ͳ,¾Í­RÏÎζÆÍÙ³rGER; $(*BEGIN AND END POINTERS*) $SAVE:CHAR;  BEGIN "NB:=1; "NE:=LENGTH(S); "REPEAT $(*EXCHANGE CHAR'S NB & NE, &SHIFT N‹“¡ôÙ¶¢(º—³ œ‹¡Î¹öÙ¶¢(º—³œ‹¡Î¹pÙ³U‹¡Î¹VÙ³UB & NE *) $SAVE:=S[NE]; $S[NE]:=S[NB]; $S[NB]:=SAVE; $NB:=NB+1; $NE:=NE-1; "UNTIL NB>=NE;  END (*REVERSE*);   BEGIN (*O^REPEAT2*) "WRITELN( $'TYPE ANY STRING FOLLOWED BY ' )); "READLN(S); "WHILE LENGTH(S)>0 DO "BEGIN $REVERSE; $WRITELNìœ\Ÿ(S); $WRITELN; $WRITELN('TYPE ANOTHER STRING'); $READLN(S); "END;  END (*REPEAT2*);   BEGIN (*MAIN PROGRAM*) "WRITELN('START EDITDEMO'); "WRITELN; "REPEAT1; "WRITELN; "REPEAT2;  END.  ¶ÆPͶͶ•‚Ͷ ÍÆ²Í¸¶á¸¶•‚Ͷ^Ͳ,¾Í­RÏÎζÆÍÙ³r‹“¡ôÙ¶¢(º—³ œ‹¡Î¹öÙ¶¢(º—³œ‹¡Î¹pÙ³U‹¡Î¹VÙ³U‹¡Î¹<Ù³e‹¡Î¹ Ù³P‹¡ÏÎιÏÙ³‹¡ò­ö¨ ÍÌÌØÙÈ¡ ¶Í؂̹ö­ (¶Í­ÎÎÎÁ`„¬˜hôbÚÄþ ê Œ d vð˜ü(:P,ractersÍ‚Í ìœ\ŸS); "WHILE LENGTH(S)>0 DO "BEGIN $REVERSE; $WRITELN(S); $WRITELN; $WRITELN('TYPE ANOTHER STRING'); $READLN(S); "END;  END (*REPEAT2*);   FUNCTION BLOWUP(X,Y:INTEGER):BOOLEAN;  VAR "I,LB,UB:INTEGER; "CH:CHAR; "A:ARRAY[1..10] OF INTEGER;  BEGIN  LB:=X; "UB:=Y; "FOR I:=LB TO UB DO $BEGIN &A[I]:=I*I; &WRITELN(I,': ',A[I] ; $END; "BLOWUP:=UB > 10;  END (*BLOWUP*); "  BEGIN (*MAIN PROGRAM*) "WRITELN('START EDITDEMO'); "WRITELN; "REPEAT1; "WRITELN; "REPEAT2; "WRITELN; "IF BLOWUP(5,15) THEN $WRITE('Upper Bound too large');  END.   PROGRAM EDITDEMO;  VAR G1, "G2, "G3,G4:INTEGER; "B1,B2,B3:BOOLEAN;   PROCEDURE REPEAT1;  VAR S,SG:STRING; $L,N:INTEGER;  BEGIN "WRITELN( $'TYPE ANY STRING FOLLOWED BY ' )); "READLN(S); "N:=1; "L:=LENGTH(S); "REPEAT $SG:=COPY(S,1,N); $WRITELN(SG); $N:=N+1; "UNTIL N>L  END (*REPEAT1*);   PROCEDURE REPEAT2;  VAR S:STRING;   PROCEDURE REVERSE; "(*REVERSE THE ORDER OF CHARACTERS &IN S*)  VAR NB,NE:INTEGER; $(*BEGIN AND END POINTERS*) $SAVE:CHAR;  BEGIN "NB:=1; "NE:=LENLawn's Nursery Inc.ÆÍ¸¹Æ Lawn, Moe D.APDISKª(¶7ÆŸÍÆ¦123 Shady LaneDE[*]ª(Escondido, CA 92025V0ßzÀ743-5GTH(S); "REPEAT $(*EXCHANGE CHAR'S NB & NE, &SHIFT NB & NE *) $SAVE:=S[NE]; $S[NE]:=S[NB]; $S[NB]:=SAVE; $NB:=NB+1; $NE:555ÀfÀ San Diego Zooy Inc.ÆÍ¸¹Æ Bare, Ted E.APDISKª(¶7ÆŸÍÆ¦Park BoulevardDE[*]ª(San Diego, CA 92101V0ßzÀO^=NE-1; "UNTIL NB>=NE;  END (*REVERSE*);   BEGIN (*REPEAT2*) "WRITELN( $'TYPE ANY STRING FOLLOWED BY ' )); "READLN(  SCDEMO 297-5432ÀfÀAce Veterinary Clinic͸¹Æ Ritus, ArthurPDISKª(¶7ÆŸÍÆ¦453 Ocean Avenue[*]ª(Del Mar, CA 9203601V0ßzÀ755-1735ÀfÀRamona Stock Farminic͸¹Æ Bull, TerryurPDISKª(¶7ÆŸÍÆ¦ Box 48 RFD #2nue[*]ª(Ramona, CA 92065601ÌÇÿÌØÙÈ¡¥€ØÀ»Ø‚̹ö¶¢%Ì¥€Ù¢ºÀ»¥€Ù¢ºÀ»¥€Ù¢ºÀ»¥€Ù¢ºÀ»¥€Ù¢ºÀ»¥€¶¢+ºÀ»­tV0ßzÀ789-1573ÀfÀVista Antiques Storec͸¹Æ Teek, AnnryurPDISKª(¶7ÆŸÍÆ¦27 Santa Fe Ave.[*]ª(Vista, CA 920„¥€ÚÀºÌ­¶ÌÚ¢$ØÀº¡ ¶Ú¢ºÍ¶ÙÍ Å¡ ¶²tÍ­Ù<¶¢"ºÏ­¡¶¢!ºÏ835601V0ßzÀ724-3176ÀfÀVista Antiques Storec͸¹ÆTeek, AnnryurPDISKª(¶7ÆŸÍÆ¦27 Santa Fe Ave.[*]ª(Vista, ­¡¶¢!ºÏ­¡¶ Í­¶ÊÍ¶Í ¡Ê šÊøÆ¼‹¡ö­$" ,ŽÐ8Nh‚ò å,û,CA 920835601V0ßzÀ724-3176ÀfÀVista Antiques Storec͸¹ÆTeek, AnnryurPDISKª(¶7ÆŸÍÆ¦27 Santa Fe Ave.[*]ª(V§,Æ®ÎÆ‚€ÍÆ‚0ÍÆ‚XÍÆ�þÍÁ<s“³öá$` 0¢òT² @ÞN¶ÄD€ºÒZ 8 T z ˜ Ú ~ ¦ x‚\6 ‚Ó¦Ó€Þ|ista, CA 920835601V0ßzÀ724-3176ÀfÀVista Antiques Storec͸¹ÆTeek, AnnryurPDISKª(¶7ÆŸÍÆ¦27 Santa Fe Ave.[¶Íž­Ø?‹¡Dع+Í ¶ ÍžÍ ¹-Í ¹(Í ¹#Í ¹Í ¹«¹¬¹ 3)&¹Ï­T žÕ4Í ¥”³ ÿ*]ª(Vista, CA 920835601V0ßzÀ724-3176ÀfÀVista Antiques Storec͸¹ÆTeek, AnnryurPDISKª(¶7ÆŸÍÆ¦27 Santa Feþÿœ ½¶¦'Arrow keys move cursor; ETX terminates;×Íž¶Íž¶צ BS erases visible charsÍž«¥¥¼ Í ì Ave.[*]ª(Vista, CA 920835601V0ßzÀ724-3176ÀfÀVista Antiques Storec͸¹ÆTeek, AnnryurPDISKª(¶7ÆŸÍÆ¦27 Sa”‹¡ ìÍ Î¹ ¶ìÍžë¡ö žÁ0Ž ¼Â%¸¸².¦×ª²&¦×ª²¦×ª­(&ÆÆ�!-\ÿœ€4-0+$)ˆœ€;)û,nta Fe Ave.[*]ª(Vista, CA 920835601V0ßzÀ724-3176ÀfÀVista Antiques Storec͸¹ÆTeek, AnnryurPDISKª(¶7ÆŸÍÆ¦§,Æ®ÎÆ‚€ÍÆ‚0ÍÆ‚XÍÆ�þÍÁ<s“³öá$` 0¢òT² @ÞN¶ÄD€ºÒZ 8 T z ˜ Ú ~ ¦ x‚\6 ©Y‚<†Í27 Santa Fe Ave.[*]ª(Vista, CA 920835601V0ßzÀ724-3176ÀfÀd|PASCALSYSCDEMO 6| TESTSCUN   ÌÇÿÌØÙÈ¡¥€ØÀ»Ø‚̹ö¶¢%Ì¥€Ù¢ºÀ»¥€Ù¢ºÀ»¥€Ù¢ºÀ»¥€Ù¢ºÀ»¥€Ù¢ºÀ»¥€¶¢+ºÀ»­tr r „¥€ÚÀºÌ­¶ÌÚ¢$ØÀº¡ ¶Ú¢ºÍ¶ÙÍ Å¡ ¶²tÍ­Ù<¶¢"ºÏ­¡¶¢!ºÏ­¡¶¢!ºÏ­¡¶ Í­¶ÊÍ¶Í ¡Ê šÊøÆ¼‹¡ö­$" ,ŽÐ8Nh‚òå,û,§,Æ®ÎÆ‚€ÍÆ‚0ÍÆ‚XÍÆ�þÍÁ<s“³öá$` 0¢òT² @ÞN¶ÄD€ºÒZ 8 T z ˜ Ú ~ ¦ x‚\6 ‚Ó¦Ó€Þ|SCDEMO SCCH TRANSLAT4%3AO]k‰ Ù¢ºÀ»¥€Ù¢ºÀ»¥€¶¢+ºÀ»­t  TYPE $SCCHSET = SET OF CHAR; $SCKEYCOMMAND = (BACKSPACEKEY,ETXKEY,UPKEY,DOWNKEY, @LEFTKEY,RIGHTKEY,NOTLEGAL); $  VAR  „¥€ÚÀºÌ­¶ÌÚ¢$ØÀº¡ ¶Ú¢ºÍ¶ÙÍ Å¡ ¶²tÍ­Ù<¶¢"ºÏ­¡¶¢!ºÏ SCCH:CHAR;   PROCEDURE SCINITIALIZE;  PROCEDURE SCLEFT;  PROCEDURE SCRIGHT;  PROCEDURE SCUP;  PROCEDURE SCDOWN;  PROCED­¡¶¢!ºÏ­¡¶ Í­¶ÊÍ¶Í ¡Ê šÊøÆ¼‹¡ö­$" ,ŽÐ8Nh‚òå,û,URE SCGETCCH(VAR CH:CHAR; RETURNONMATCH:SCCHSET);  FUNCTION SCMAPCRTCOMMAND(KCH: CHAR): SCKEYCOMMAND;   IMPLEMENTATION  CO§,Æ®ÎÆ‚€ÍÆ‚0ÍÆ‚XÍÆ�þÍÁ<s“³öá$` 0¢òT² @ÞN¶ÄD€ºÒZ 8 T z ˜ Ú ~ ¦ x‚\6 ‚Ó¦Ó€Þ|NST "SCEOL=13;  VAR "TRANSLATE: PACKED ARRAY[CHAR] OF SCKEYCOMMAND;   PROCEDURE SCINITIALIZE; "VAR I:INTEGER; "BEGIN $FÖCÿ¹¦Ê׸ºÌ¶ÂºÂ¯Èªúß àÐòÙ¶àºàëòà«á¸é­­Þºîªñºä°°-ð,àó×ü«øºó¼ Öà²>àóvÿ¸ÿîþ ÿ6ÿPÿjÿV+ºÀ»¥€¶¢+ºÀ»­tOR I:=0 TO 255 DO TRANSLATE[CHR(I)]:=NOTLEGAL; $WITH SYSCOM^.CRTINFO DO $BEGIN &TRANSLATE[ETX]:=ETXKEY; &TRANSLATE[UP]:=UPKE„¥€ÚÀºÌ­¶ÌÚ¢$ØÀº¡ ¶Ú¢ºÍ¶ÙÍ Å¡ ¶²tÍ­Ù<¶¢"ºÏ­¡¶¢!ºÏY; &TRANSLATE[DOWN]:=DOWNKEY; &TRANSLATE[LEFT]:=LEFTKEY; &TRANSLATE[RIGHT]:=RIGHTKEY; " END; $ ${return BACKSPACEKEY in c­¡¶¢!ºÏ­¡¶ Í­¶ÊÍ¶Í ¡Ê šÊøÆ¼‹¡ö­$" ,ŽÐ8Nh‚òå,û,ase chardel key is the same as left key} $TRANSLATE[SYSCOM^.CRTINFO.CHARDEL]:=BACKSPACEKEY; " "END (*INITIALIZE*);   FUNCT§,Æ®ÎÆ‚€ÍÆ‚0ÍÆ‚XÍÆ�þÍÁ<s“³öá$` 0¢òT² @ÞN¶ÄD€ºÒZ 8 T z ˜ Ú ~ ¦ x‚\6 ‚Ó¦Ó€Þ|ION SCMAPCRTCOMMAND(*(VAR KCH:CHAR): SCKEYCOMMAND*);  BEGIN  TYPE $SCCHSET = SET OF CHAR; $SCKEYCOMMAND = (BACKSPACEKEY,ETO^ (*$G+*)  PROGRAM UPDATE;  TYPE "STRUCTURE= $RECORD &NAME,COMPANY:STRING[32]; &STREET:STRING[20]; &CITYSTATE:STRING[30]; &TEL:STRING[10] $END;  VAR "RECNUM:INTEGER; "BUF:STRUCTURE; "TITLE:STRING; "FID:FILE OF STRUCTURE;   PROCEDURE ZEROREC(VAR REC:STRUCTURE);  BEGIN "WITH REC DO $BEGIN &NAME:=''; &COMPANY:=''; &STREET:=''; &CITYSTATE:=''; &TEL:=''; $END;  END (*ZEROREC*);   PROCEDURE SHOWREC(REC:STRUCTURE);  BEGIN "WRITELN; "WITH REC DO $BEGIN &WRITELN('NAME: ',NAME); &WRITELN('COMPANY: ',COMPANY); &WRITELN('STREET: ',STREET); &WRITELN('CITY&STATE: ',CITYSTATE); &WRITELN('TEO^LEPHONE: ',TEL); $END;  END (*SHOWREC*);   PROCEDURE GETREC(VAR REC:STRUCTURE);  LABEL 1;  VAR S:STRING; " "FUNCTIONü�ž READIT(VAR T:STRING):BOOLEAN; "BEGIN $READLN(S); $READIT:=FALSE; $IF LENGTH(S)>0 THEN &IF S[LENGTH(S)]=CHR(27(*ESC*)) THEN READIT:=TRUE &ELSE (T:=S; "END (*READIT*);   BEGIN THE QUIZES MENTIONED IN THE BEGINNER'S MANUAL BY DR. BOWLES ARE NOT  YET AVAILABLE. WE WILL NOTIFY YOU WHEN THEY BECOME AVAILABLE  FOR SALE.   REET) THEN GOTO 1; &WRITE('CITY&STATE:'); IF READIT(CITYSTATE) THEN GOTO 1; &WRITE('TELEPHONE: '); IF READIT(TEL) THEN GOTO 1; $END;  1:  END (*GETREC*);   BEGIN (*main program*) "WRITE('File title:'); "READLN(TITLE);  (*$I-*) "RESET(FID,TITLE)r UPDATE ; "IF IORESULT<>0 THEN REWRITE(FID,TITLE);  (*$I+*)  RECNUM:=0; "WHILE RECNUM>=0 DO $BEGIN &WRITELN; &WRITE('Record num ber:'); &READLN(RECNUM); &IF RECNUM>=0 THEN (BEGIN *SEEK(FID,RECNUM); *GET(FID); *IF EOF(FID) THEN ,BEGIN .WRITELN('Enter new Record:'); .ZEROREC(FID^); .GETREC(FID^); .SEEK(FID,RECNUM); .PUT(FID); ,END *ELSE ,BEGIN .WRITELN('Old Record:'); .SHOWREC(FID^); .WRITELN; .WRITELN('Enter Changes:'); .GETREC(FID^); .SEEK(FID,RECNUM); .PUT(FID); ,END; (END; ØÌÙ¢צª Ùצª Ù¢"צªÙ¢-צªÙ¢=צª ­å2ÆبC¶Íž¶צ NAME: Íž¶ÆÍž¶Íž¶צ COMPANY:  END (*WHILE*); "CLOSE(FID,LOCK);  END. (  Íž¶ÆÍž¶Íž¶צ STREET: Íž¶Æ$Íž¶Íž¶צ CITY&STATE: Íž¶Æ/Íž¶Íž¶צ TELEPHONE: Íž¶Æ?Íž¶Íž­å†ò¶²PÍž¶ÍžÌ²¾Å¡²²¾›¾á̹ڲªP­B¶¦?RETURN skips item with no change; ESC+RETURN skips whole Record×Íž¶Íž¶ÍžØÌ+¶¦ NAME: ×ÍžÊ+¢Î¡¹ö¶צ COMPANY: ÍžÊ+Ρ¹i¶¦ STREET: ×ÍžÊ+¢"Ρ¹F¶צ CITY&STATE:ÍžÊ+¢-Ρ¹#¶¦ TELEPHONE: ×ÍžÊ+¢=Ρ¹­åT ÆpÆ�œCÍÕG¶צ File title:Íž¶¥GPÍž¶Íž¥p¥GÍž"Ë¡ ¥p¥GÍ«êÄ¡ò¶Íž¶צRecord number:Í"WRITELN('RETURN skips item with no change; ESC+RETURN skips whole Record'); "WRITELN; "WITH REC DO $BEGIN &WRITE('NAME:  '); IF READIT(NAME) THEN GOTO 1; &WRITE('COMPANY: '); IF READIT(COMPANY) THEN GOTO 1; &WRITE('STREET: '); IF READIT(ST  (own R(ight L(eft B(ack H(elp X(ecute C(lear Q(uitͶ¶Í­Z^¸¸¸¸�ÌÇÈÌØÙÈ¡%²�ؤÌÚ¶»Ú¶Lá ¶•¶L® ¹&¶Uá ¶¶•U® ¹¶Dá ¶¶‚D® ق̹𸭿¶ƒ¢æ ¶¦%D(own - moves the cursor one box ž¶¥Í ž¶ÍžêÄ¡ö¥pêÏž¥pÍž¥pÍ ¡=¶צEnter new Record:Íž¶Íž©pΩpÎ¥pêÏž¥pÍž¹_¶¦ Old Record:×»Ú¢ »Ø‚̹öÌÌØÙÈ¡>ØÍ¶צ( ÍØ‚̹ô¶¶Í­9O� ¢®ÌÌØÙȡ͞¶Íž©pζ͞¶צEnter Changes:Íž¶Íž©pÎ¥pêÏž¥pÍž¹ô¥pÍžÆpÍÁå¸`¶šÙý¡öÙÌÝ¢ÌØ‚Ͷ²ؤÍØ‚̹ö̶�•ÌØÙÈ¡%Ø(ŽØ(†‚Ͷ²�ؤ¢ºÍ؂̹ô¶¶Í­ 6d t²¤Ð@@@@@@@@@@@@@@ØÉÝ£“�Þ¢ºÃÝüÄ�¡¹ôØÝüdž�ØÇ†ÝüÇŽ�‚ØÇŽÝüÇŽ@†�ØÇŽÝü@Ž�@†‚†‚‚ÌØÇŽÝü Ž�ØŽ �ÝüÇŽ †�‚ÇŽÌÜá ÇÌÛ•Ì@@@@@@@@@@@@@ר²¤Ð@ @ @ @ר²¤Ð@ @@@@@@@@@ @ @ @@@@@@@@@ @ר²¤Ð@ @ @ @ @ @×ÞùÞø•ÌÛÚÅÛÚÃÜÞ£ Ä„�¡ÚÌÞ£ ÌÛÝ£ Ë¡RÝ£ ¡&Ý¢ šÝ¢šÝÿÝ¢!ÇÞøÝ£ ‚•žž"Ë¡¹ôÛÝ£ ÈÜÇË„¡ÝÿÝ¢!ÇÞøÛ‚•žž"Ë¡¹\Ý£ Ý£ Å¡¨²¤Ð@ @ @ @@@@@ @@@@@ @ @@@@@ @ר²¤Ð@ @ @ @ @ @ @ @ @ @ר²¤Ð@ @@@ @ @ @@@ @ @@@ @ @ @@@ר²¤Ð@ Ý¢ Ý£ šÝ¢Ý£š¹Ý£ Ý£ Ãݣݣń¡Ý¢Ý£šÝ¢šÝ¢šÝ¢šÝûˡݢšÝ¢ ۚݢÜš¹¶ š­   pöÞ@8€åååååååååååååå @ @ @ @ @ @ר²¤Ð@ @@@@@ @ @@@@@@@@@@@@@ @@@ר² ¤Ð@ @ @ @ @ @ר² ¤Ð@ @@@@@ @ @ @@@@@@å@@@ @ @ @ר² ¤Ð@ @ @ @ @ @ @ @ר² ¤Ð@ @@@@@ @@@@@ @@@@@ @ @ @@@ר² ¤Ð@ @ @ @ @ @ @ @ר² ðPASCALSYORIENTER ¤Ð@ @@@ @@@@@ @ @@@@@@@ @@@ @ר²¤Ð@ @ @ @ @ @ר²¤Ð@@@ @@@@@ @ @ @ @@@@@@@ @ @ר²¤Ð@ @   @ @ @ @ר²¤Ð@@@@@@@@@ @@@@@@@@@@@@@@@@@ר®¸¸²¶•¤¶•‚•#¿®¶#Ͷͭ   Ú•‚ÌÙ•ÌÜÄÜÈ„ÛÄ„ÛÈ„¡ô²Û¤Ü•¾ áö¶�(޶�(†‚ͶØÍ²Û¤Ü•+¿Ú¸Ù¸ÚÙͶ+ͶͶ“¡²�¶�¤¢Ø»¶�‚¸�²�¶�¤Ú»²�¶�¤Ù»¶“¡²�¶�¤¢ »¹Ï¹Ï­  Ò ¶¶Í¶�Å¡ö²�¶�¤ÌØ¢?»Ø»Ø»¶2ͶצCURSX:Ͷ¶Í ¶צ, CURSY:Ͷ¶Í ¶צ Í2ͶצMAZE[Í¶Ø•Í ¶,Ͷٕ‚Í ¶¦ Ͳ¶•¤¶•‚• ¿¶�•¸�¶�(޶�(†‚Ͷ Ͳ�¶�¤Ìغ¸Øº¸¶¶Í­ œ ¸® ¶�̸�]: ×ÍÌÌÛÜÈ¡97Û‚ÍÌÌÚÝÈ¡ ¶²Ø•Û‚¤Ù•Ú‚•¾Íڂ̹öۂ̹ô¶¶Í­I9 æÍ¶צ=Maze: U(p DÌØ•ÌÙÜÈ¡îÌÌÚÝÈ¡CÙ(ŽÙ(†‚ÍÌÇÈÌÛÞȡۂ̹ö¶¶ÍÌÇÈÌÛÞȡۂ̹ôڂ̹ò²�Ù¤¢º¸¶Rá ¶‚¶R® ¹:¶  ÌÚ¶¢)º—³œ‹¡ê­e’')+-/1DªÍ¶²,ͭͶצK ¶ÆPͶͶ•‚Ͷ ÍÆ²Í¸¶á¸¶•‚Ͷ^Ͳ,¾Í­RÏÎζÆÍÙ³r ÍͶ²Í¶•‚Ͷ^Í®­†²¦ROW ROW YOUR BOATתP‹“¡ôÙ¶¢(º—³ œ‹¡Î¹öÙ¶¢(º—³œ‹¡Î¹pÙ³U‹¡Î¹VÙ³U¸²,צ4Data: I(nsert D(elete P(os R(ight L(eft C(lear Q(uitªP­b¶•‚Ͷ ÍØÃ¡¶²¾‚É¡¶‚¸¹¶ÅÖˆÿ‹¡Î¹ Ù³P‹¡ÏÎιÏÙ³‹¡ò­ö¨ ÍÌÌØÙÈ¡ ¡¶•¸¶•‚Ͷ^Ͳ,¾Í­b‚ͶצJEnter string to be inserted: ¶Í؂̹ö­ (¶Í­ÎÎÎÁ`„¬˜hôbÚÄþ ê Œ d vð˜ü(:P,ractersÍ‚Ídown×ͶͶצ! (if no wall in the way)ͶͶ¦%L(eft - moves the cursor one box LEFT×ͶͶͶצ ͂Ͷ¦Then press RETURN×͂Ͷ¦,Note: Use BACKSPACE (BS) to erase characters×͂ͶÆPͶÍ$Q(uit - terminates the maze program,ͶͶצ" returns to Pascal SystemͶͶצ'R(ight - moves the cursorƲP¶Í®­Ræ‚ͶצJType an X for each character to be deleted above ͂Ͷ one box RIGHTͶͶͶ¦!U(p - moves the cursor one box up×ͶͶͶצ X(ecute - simulates execution ofͶ¦Then press RETURN×͂Ͷ¦,Note: Use BACKSPACE (BS) to erase characters×Ͷ•‚ͶÆPͶͶ•‚ÍÆ¾ÌͶצ your "program" of movesͶͶͶצ# PRESS SPACEBAR TO RETURN TO MAZEͶͭÏÍ*¶Ê*‚•²¾Å¡ ²¾¶•‚Ì*¶ ƾͲ¶Ê*Í®­T"‚ͶצIEnter string to be located: ¶צ$Maze Program has following commands:ͶͶͶצB(ack - backs up cursor,ͶͶצ! unsaves most rece ͂ͶצThen press RETURN͂Ͷצ,Note: Use BACKSPACE (BS) to erase charactersÍ‚Ínt commandͶͶ¦C(lear - wipes maze clean×ͶͶצ# so you can start over againͶÍζÆÍ٠áö϶ÆPͶͶ•‚Ͷ ÍÆ²Í¸¶á¸¶•‚Ͷ^Ͳ,¾Í­RÏÎζÆÍÙ³r®­¦  ÎÎ ¶ÆÍÌÚ¶¢)º—³aœ‹“¡ìÚáÙØÎ¹îÚ¶¢(º—³aœ‹¡ Ù‚ØRÎ ¹ðÚ¶¢(‹“¡ôÙ¶¢(º—³ œ‹¡Î¹öÙ¶¢(º—³œ‹¡Î¹pÙ³U‹¡Î¹VÙ³Uº—³œ‹¡ Ù•ØLÎ ¹òÚ¶¢'º—³ œ‹¡ ÙØ•UÎ ¹ôÚ¶¢'º—³œ‹¡ ÙØ‚DÎ ¹öÚ³r‹¡Î¹<Ù³e‹¡Î¹ Ù³P‹¡ÏÎιÏÙ³‹¡ò­ö¨ ÍÌÌØÙÈ¡ ‹¶Í �¡Î ¹lÚ³‹¡Î ¹QÚ³s€‹¡Î ¹7ÚáOͶÍÙØÍ¹ Ú³‹¡Î Î¹Ï¶ÍØ‚̹ö­ (¶Í­ÎÎÎÁ`„¬˜hôbÚÄþ ê Œ d vð˜ü(:P,ractersÍ‚Í  åååååååååååååå¶ÆPͶͶ•‚Ͷ ÍÆ²Í¸¶á¸¶•‚Ͷ^Ͳ,¾Í­RÏÎζÆÍÙ³rå‹“¡ôÙ¶¢(º—³ œ‹¡Î¹öÙ¶¢(º—³œ‹¡Î¹pÙ³U‹¡Î¹VÙ³Uååååååååå  åååååååååååååååååååååååååå åååååååååååååååååååååååååå åååååååååååååååååååååååååå åååååååååååååååååååååååååå åååååååååååååååååååååååååå åååååååååååååååååååååååååå åååååååååååååååååååååååååå åååååååååååååååååååååååååå åååååååååååååååååååååååååå åååååååååååååååååååååååååå åååååååååååååååååååååååååå åååååååååååååååååååååååååå åååååååååååååååååååååååååå åååååååååååååååååååååååååå åååååååååååååååååååååååååå åååååååååååååååååååååååååå åååååååååååååååååååååååååå åååååååååååååååååååååååååå åååååååååååååååååååååååååå  åååååååååååååååååååååååååå! åååååååååååååååååååååååååå" åååååååååååååååååååååååååå# åååååååååååååååååååååååååå$ åååååååååååååååååååååååååå% åååååååååååååååååååååååååå& åååååååååååååååååååååååååå' åååååååååååååååååååååååååå( åååååååååååååååååååååååååå) åååååååååååååååååååååååååå* åååååååååååååååååååååååååå+ åååååååååååååååååååååååååå, åååååååååååååååååååååååååå- åååååååååååååååååååååååååå. åååååååååååååååååååååååååå/ åååååååååååååååååååååååååå0 åååååååååååååååååååååååååå1 åååååååååååååååååååååååååå2 åååååååååååååååååååååååååå3 åååååååååååååååååååååååååå4 åååååååååååååååååååååååååå5 åååååååååååååååååååååååååå6 åååååååååååååååååååååååååå7 åååååååååååååååååååååååååå8 åååååååååååååååååååååååååå9 åååååååååååååååååååååååååå: åååååååååååååååååååååååååå; åååååååååååååååååååååååååå< åååååååååååååååååååååååååå= åååååååååååååååååååååååååå> åååååååååååååååååååååååååå? åååååååååååååååååååååååååå@ ååååååååååååååååååååååååååA ååååååååååååååååååååååååååB ååååååååååååååååååååååååååC ååååååååååååååååååååååååååD ååååååååååååååååååååååååååE ååååååååååååååååååååååååååF ååååååååååååååååååååååååååG ååååååååååååååååååååååååååH ååååååååååååååååååååååååååI ååååååååååååååååååååååååååJ ååååååååååååååååååååååååååK ååååååååååååååååååååååååååL åååååååååååååååååååååååååå