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[r08 UPDATE.TEXT[8< UPDATE.CODE[<H TEMP.CODEY\ STARTUP r SYSTEM.STARTUP[\ EDITDEMO.TEXT[\  COMPDEMO.TEXT[\ #NAMEFILE[#&COPYSCUNIT.CODE1&, SCDEMO.CODE[1,0 READ.ME.TEXT[r08 UPDATE.TEXT[8< UPDATE.CODE[ @@@@@@@@@@@@@ר@ @ @ @ר@ @@@@@@@@@ @ @ @@@@@@@@@ @ר@ @ @ @ @ @@ @ @ @@@@@ @@@@@ @ @@@@@ @ר@ @ @ @ @ @ @ @ @ @ר@ @@@ @ @ @@@ @ @@@ @ @ @@@ר@  @ @ @ @ @ @ר@ @@@@@ @ @@@@@@@@@@@@@ @@@ר @ @ @ @ @ @ר @ @@@@@ @ @ @@@@@@<H TEMP.CODEY\ 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(uitZ^ȡ%ؤڢ ȡ>צ( 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 charactersP$Q(uit - terminates the maze program,צ" returns to Pascal Systemצ'R(ight - moves the cursorPRצ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 ofThen press RETURN,Note: Use BACKSPACE (BS) to erase charactersPצ 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 commandC(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(uitPb áɡ P á^,Rٳrٶ( ٶ(pٳUVٳ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* (`hb d v(:P,racters);   PROCEDURE REPEAT2;  VAR S:STRING;   PROCEDURE REVERSE; "(*REVERSE THE ORDER OF CHARACTERS &IN S*)  VAR NB,NE:INTEP á^,RٳrGER; $(*BEGIN AND END POINTERS*) $SAVE:CHAR;  BEGIN "NB:=1; "NE:=LENGTH(S); "REPEAT $(*EXCHANGE CHAR'S NB & NE, &SHIFT Nٶ( ٶ(pٳUVٳ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ٳUVٳU<ٳe ٳPٳ ȡ  (`hb 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(7123 Shady LaneDE[*](Escondido, CA 92025V0z743-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:555f San Diego Zooy Inc. Bare, Ted E.APDISK(7Park BoulevardDE[*](San Diego, CA 92101V0zO^=NE-1; "UNTIL NB>=NE;  END (*REVERSE*);   BEGIN (*REPEAT2*) "WRITELN( $'TYPE ANY STRING FOLLOWED BY ' )); "READLN(  SCDEMO 297-5432fAce Veterinary Clinic Ritus, ArthurPDISK(7453 Ocean Avenue[*](Del Mar, CA 9203601V0z755-1735fRamona Stock Farminic Bull, TerryurPDISK(7 Box 48 RFD #2nue[*](Ramona, CA 92065601ȡ%٢٢٢٢٢+tV0z789-1573fVista Antiques Storec Teek, AnnryurPDISK(727 Santa Fe Ave.[*](Vista, CA 920ڢ$ ڢ š t<"!835601V0z724-3176fVista Antiques StorecTeek, AnnryurPDISK(727 Santa Fe Ave.[*](Vista, !   $" ,8Nh ,,CA 920835601V0z724-3176fVista Antiques StorecTeek, AnnryurPDISK(727 Santa Fe Ave.[*](V,ƮƂƂ0ƂXƁ<s$` 0T @NDZ 8 T z ~ x\6 Ӏ|ista, CA 920835601V0z724-3176fVista Antiques StorecTeek, AnnryurPDISK(727 Santa Fe Ave.[?Dع+   - ( #   3)&T 4  *](Vista, CA 920835601V0z724-3176fVista Antiques StorecTeek, AnnryurPDISK(727 Santa Fe'Arrow keys move cursor; ETX terminates;צ BS erases visible chars  Ave.[*](Vista, CA 920835601V0z724-3176fVista Antiques StorecTeek, AnnryurPDISK(727 Sa   0 %.ת&תת(&Ɓ!-\4-0+$);),nta Fe Ave.[*](Vista, CA 920835601V0z724-3176fVista Antiques StorecTeek, AnnryurPDISK(7,ƮƂƂ0ƂXƁ<s$` 0T @NDZ 8 T z ~ x\6 Y<27 Santa Fe Ave.[*](Vista, CA 920835601V0z724-3176fd|PASCALSYSCDEMO 6| TESTSCUN   ȡ%٢٢٢٢٢+trrڢ$ ڢ š t<"!!   $" ,8Nh,,,ƮƂƂ0ƂXƁ<s$` 0T @NDZ 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$` 0T @NDZ 8 T z ~ x\6 Ӏ|NST "SCEOL=13;  VAR "TRANSLATE: PACKED ARRAY[CHAR] OF SCKEYCOMMAND;   PROCEDURE SCINITIALIZE; "VAR I:INTEGER; "BEGIN $FC׸̶º¯Ȫ ٶ޺-, >v 6PjV++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$` 0T @NDZ 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šáڲPB?RETURN skips item with no change; ESC+RETURN skips whole Record+ NAME: +צ COMPANY: +i STREET: +"Fצ CITY&STATE:+-# TELEPHONE: +=T pƁCGצ File title:GPpG"ˡ pGġצ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(uitZ^ȡ%ؤLá L &Uá U Dá D  %D(own - moves the cursor one box  ġppp =צEnter new Record:pppp_ Old Record:ڢ ȡ>צ( 9O ȡpצEnter Changes:ppppp`ݢ؂ؤȡ%((ؤ 6d t@@@@@@@@@@@@@@ݣޢÄ@@@   á @@@@@@@@@@@@@ר@ @ @ @ר@ @@@@@@@@@ @ @ @@@@@@@@@ @ר@ @ @ @ @ @ޣ Ąޣ ݣ ˡ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ٳUVٳU,צ4Data: I(nsert D(elete P(os R(ight L(eft C(lear Q(uitPb áɡ ٳPٳ ȡ ^,bצJEnter string to be inserted:  (`hb d v(:P,ractersdownצ! (if no wall in the way)%L(eft - moves the cursor one box LEFTצ Then press RETURN,Note: Use BACKSPACE (BS) to erase charactersP$Q(uit - terminates the maze program,צ" returns to Pascal Systemצ'R(ight - moves the cursorPRצ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 ofThen press RETURN,Note: Use BACKSPACE (BS) to erase charactersPצ 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 charactersnt commandC(lear - wipes maze cleanצ# so you can start over again áP á^,Rٳr   ڶ)aáڶ(a R ڶ(ٶ( ٶ(pٳUVٳU L ڶ'  U ڶ' D ڳr<ٳe ٳPٳ ȡ   lڳ Qڳs 7áO ڳ  (`hb d v(:P,racters  P á^,Rٳrٶ( ٶ(pٳUVٳU                      ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L