IMD 1.16: 7/09/2007 11:31:22 SOFTECH MICROSYSTEMS UCSD p-System OII40D ADAP ORIENTER  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ £‚ååååååå STARTUP™ «É2£ SYSTEM.STARTUP{¢¢ EDITDEMO.TEXT`{\Ÿ  COMPDEMO.TEXT`{\Ÿ #NAMEFILE`{ń”#& SCDEMO.CODE`{¢¢&*COPYSCUNIT.CODEB£*2 UPDATE.TEXT`{čŸ26 UPDATE.CODE`{¢¢6: READ.ME.TEXT`{B£:FSCREENOPS.CODE{Ń£FjSCR.TEST.TEXT`{£åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååO^£"£‚   CONST (PAGETOP=511; {top of page buffer} (  TYPE (ORIENTATION=(DISORIENTED,PCD_ORIENTED,SGRF_ORIENTED,LI_ORIENTED); (  VAR (CUR_DCT_BLK, {current block of PCODEFILE in SEG_DCT} (CUR_BLK, {current block of PCODEFILE in PAG STARTUP™ «É2£ SYSTEM.STARTUP{¢¢ EDITDEMO.TEXT`{\Ÿ  COMPDEMO.TEXT`{\Ÿ #NAMEFILE`{ń”#& SCDEMO.CODE`{¢¢&*COPYSCUNIT.CODEB£*2 UPDATE.TEXT`{čŸ26 UPDATE.CODE`{¢¢6: READ.ME.TEXT`{ B£:FSCREENOPS.CODE{Ń£FjSCR.TEST.TEXT`{£ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååRIENTATION; {oriented in procedure for GETPCODE?} ( (FLIP_SEG:BOOLEAN; {is current segment byte-flipped?}  (DCT_BLK:  {block numbers of all dictionary pages} 0ARRAY[0..MAX_DCT_PAGE] OF INTEGER; 0 (ALT_PAGE: {scratch page of PCODEFILE used by GETWORD, etc.} ( ARRAY[BYTERANGE] OF INTEGER; (PAGE: {current page of PCODEFILE used for GETPROC, GETPCODE} ( PACKED ARRAY[0..PAGETOP] OF BYTERANGE; (SEG_DCT:DCT_REC; {current page of segment dictionary}    {---------------------- private procedures -------------------------}    FUNCTION BYTEFLIP(WORD:INTEGER):INTEGER;  {  0 Returns the byte-flipped value of WORD.  }  VAR SWAP1,SWAP2:PACKED RECORD CASE BOOLEAN OF 0TRUE:(INT:INTEGER); 0FALSE:(MOSTSIG,LEASTSIG:BYTERANGE) .END;  BEGIN  SWAP1.INT:=WORD; "SWAP2.MOSTSIG:=SWAP1.LEASTSIG; "SWAP2.LEASTSIG:=SWAP1.MOSTSIG; "BYTEFLIP:=SWAP2.INT; {some simple trickiness here}  END;     {-------------------- public procedures -------------------------}    FUNCTION GET_DCT{(DCT_INDEX:DCT_RANGE; VAR SEG_DCT:DCT_REC):INTEGER};  {  0 Gets the dictionary page corresponding to DCT_INDEX into SEG_DCT  0 returning the local (0..15) dictionary index if all went smoothly,  0 -1 otherwise.  }  VAR DCT:INTEGER; " "PROCEDURE DCTFLIP; "{ "1 Byte flips all word quantities in segment dictionary. Assumes "1 SEG_DCT and ALT_PAGE both ontain unflipped version of segment "1 dictionary. "} "VAR I,J:INTEGER; " A_PAGE:ARRAY[BYTERANGE] OF INTEGER; "BEGIN   PASCALSYORIENTER  €€€€€€€€€€€€€€€€DPASCALSY,e,Óššh°žSCREEN28Į`ĄÅ“m0Z/`ĄÓ¢,:š‚^@€ÓÖ3 ORIENTERõÅ€2sš‚€t š­tš‚€t š­tš‚€ t €2sš‚€t š$ītš€,uš%£ķtš‚€t ji!"²Ō1€7!¢skh #²Ōšˆ$£!¢×%£ ¢ī§u ķhŠß!ķiŠŹ­­s–įsš‚€t ­­s–G¦¦¦¦€Čih !²Ō!ˆ ×j"­Ź"­Ź"ē€ Ź ķhŠŚih !²Ō sš‚€4t ķhŠē­­s–¦ļih !²Ō ¢sšˆ ×t ķhŠć­īih !²Ō# €( €(¢sšˆ ×ēÉu ķhŠŲ­­s–¼ˆ×‚€Iňׂ€Wňׂ€eňׂ€sňׂ€Åˆ×‚€Åˆ×‚€Åˆ×‚€«Åˆ×‚€¹Åˆ ׂ€Ēň ׂ€Õň ׂ€ćň ׂ€ńň ׂ€’ňׂ ňׂÅˆ×‚)ňׂ7ňׂEÅ簾ˆ­ī×­£ķī€#Čļš€#ušu–y$£ķi#īh!³!²” ³” ²”՛ˆ ×!ī§€ °Õˆ­€(­€(¢sš"uˆ ×!ī€+Č$¦#¦$#sš€+ušu­ńˆ­×ē"Ź­ķ¦ˆ­×$ʈ­×#Ź­ńˆ­×ē€ ʊšŠš–­­s­²ńsˆ­×h ē€?Ź Ź ʚ€ uˆ­ī×­£ķī€ Č­ī¦­€(­€(¢sš€ uˆ­×h ɦ ɦ­­s –¹¦ļ ­h¦ īli!$²Õ•mj"%²Ō5!€(!€(¢s€Čnk#&²Ō#ķkŠö­­s€Čnk#&²Ō#ķkŠö"ķjŠĘˆ!×ēɦ­€RŅ ­ķ­€Rļ Š1­€LŅ ­ī­€Lļ Š ­€UŅ ­­ī€Uļ Š­€DŅ ­­ķ€Dļ !ķi‹e’¦–tš‚St štš‚ft štš‚wt štštš‚Št štš‚t štš‚Æt štštš‚Ćt štštš‚Ōt štš‚åt štštš‚öt št–ęšsš‚‚t štštš‚‚t štš‚‚(t štš‚‚9t štš‚‚Ft štšat !€ Ņõšļ–ų¢ šbt k"0ē)Éā¼ƒ‚XŪŚåÕ×"Ņ! ‹Ģ"0ē(É⼃‚`ŪŚŌ !ķ €R ‹Æ"0ē(É⼃‚hŪŚŌ !ī €L ‹’"0ē'É⼃‚oŪŚŌ ! ī€U Šv"0ē'É⼃‚wŪŚŌ ! ķ€D ŠZ"ƒ‚~ښt Ō ŠE"ƒ‚…ŚŌ Š7"ƒ‚ŚŌ Š)"€Ņ€Osšt ! sŠ"ƒ‚”ŚŌ Šļk"0ē)É⼃‚›ŪŚÕųž–‚¢sšˆ,˜t –Bsš‚‚£t sšˆ˜t ­īķsš€^uļ–^ˆ‚‚ÉėP¦ˆ,‚‚ŅėP–­­īķsš€ u Ņ­ˆ§ķ³ń­ķ¦Š ­²ń­ī¦­īķsš€^uˆ,§s–)¢sš‚‚ķt ¢sš‚ƒt ¢sš‚ƒt ¢sš`€Pt št `˜ˆ€P­vļ–)‘*¢sš‚ƒ3t ¢sš‚ƒYt ¢sš‚ƒbt ­ī¢sš`€Pt št ­ī¢s`§¤*­‡*¢īˆ§²ń ˆ§­£ķ¤*š€ `§uˆ­‡*vļ–* )¢sš‚ƒyt ¢sš‚ƒžt ¢sš‚ƒ§t ¢sš`€Pt št ­īķsš€ u`˜ˆ˜v¦­Ņ¦­īķsš€^uˆ,§s–)Æ Tšat !ƒƒ¾Śńn!0ē(É⼃ƒĘŪŚŌŠV!0ē(É⼃ƒĪŪŚŌŠ>!ƒƒÕŚŌŠ0!ƒƒÜŚŌŠ"!ƒƒćŚŌŠ!ƒƒėŚŌŠļ!ƒƒņŚÕw’–TĶ sih !²Ō št ķhŠń–Ū šu–č –CURSX::, CURSY:: MAZE[]: =Maze: U(p D(own R(ight L(eft B(ack H(elp X(ecute C(lear Q(uit( @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @@@ @@@@@@@@@ @ @ @@@@@@@@@ @@@ @ @ @ @ @@@ @ @ @@@@@ @@@@@ @ @@@@@ @@@ @ @ @ @ @ @ @ @ @@@ @@@ @ @ @@@ @ @@@ @ @ @@@@@ @ @ @ @ @ @@@ @@@@@ @ @@@@@@@@@@@@@ @@@@@ @ @ @ @ @@@ @@@@@ @ @ @@@@@@@@@ @ @ @@@ @ @ @ @ @ @ @@@ @@@@@ @@@@@ @@@@@ @ @ @@@@@ @ @ @ @ @ @  @@@ @@@ @@@@@ @ @@@@@@@ @@@ @@@ @ @ @ @ @@@@@ @@@@@ @ @ @ @@@@@@@ @ @@@ @ @ @ @ @@@@@@@@@@@ @@@@@@@@@@@@@@@@@@%D(own - moves the cursor one box down! (if no wall in the way)%L(eft - moves the cursor one box LEFT$Q(uit - terminates the maze program,," returns to Pascal Systemm'R(ight - moves the cursor one box RIGHT!U(p - moves the cursor one box up X(ecute - simulates execution off your "program" of movess# PRESS SPACEBAR TO RETURN TO MAZE$Maze Program has following commands::B(ack - backs up cursor,,! unsaves most recent commandC(lear - wipes maze clean# so you can start over again €K ROW ROW YOUR BOAT4Data: I(nsert D(elete P(os R(ight L(eft C(lear Q(uittJEnter string to be inserted:  Then press RETURN,Note: Use BACKSPACE (BS) to erase characterssJType an X for each character to be deleted above Then press RETURN,Note: Use BACKSPACE (BS) to erase characterssIEnter string to be located:   Then press RETURN,Note: Use BACKSPACE (BS) to erase characterssKٱ£‰_¼æ`Õ¦se õ錚PASCALSYr– STRINGOPEXTRAIO PASCALIOGOTOXY  O^ģœ\ŸPROGRAM 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*);   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:=LENGTH(S); "REPEAT $(*EXCHANGE CHAR'S NB & NE, &SHIFT NB & NE *) $SAVE:=S[NE]; $S[NE]:=S[NB]; $S[NB]:=SAVE; $NB:=NB+1; $NE:=NE-1; "UNTIL NB>=NE;  END (*REVERSE*);   BEGIN (*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.   O^ģœ\Ÿ 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:=LENGTH(S); "REPEAT $(*EXCHANGE CHAR'S NB & NE, &SHIFT NB & NE *) $SAVE:=S[NE]; $S[NE]:=S[NB]; $S[NB]:=SAVE; $NB:=NB+1; $NE:=NE-1; "UNTIL NB>=NE;  END (*REVERSE*);   BEGIN (*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*);   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.  Lawn's Nursery Inc.ĘĶø¹Ę Lawn, Moe D.APDISKŖ(¶7ĘŸĶʦ123 Shady LaneDE[*]Ŗ(Escondido, CA 92025V0ßzĄ743-5555ĄfĄ San Diego Zooy Inc.ĘĶø¹Ę Bare, Ted E.APDISKŖ(¶7ĘŸĶʦPark BoulevardDE[*]Ŗ(San Diego, CA 92101V0ßzĄ 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 92065601V0ßzĄ789-1573ĄfĄVista Antiques StorecĶø¹Ę Teek, AnnryurPDISKŖ(¶7ĘŸĶʦ27 Santa Fe Ave.[*]Ŗ(Vista, CA 920835601V0ßzĄ724-3176ĄfĄVista Antiques StorecĶø¹ĘTeek, AnnryurPDISKŖ(¶7ĘŸĶʦ27 Santa Fe Ave.[*]Ŗ(Vista, CA 920835601V0ßzĄ724-3176ĄfĄVista Antiques StorecĶø¹ĘTeek, AnnryurPDISKŖ(¶7ĘŸĶʦ27 Santa Fe Ave.[*]Ŗ(Vista, CA 920835601V0ßzĄ724-3176ĄfĄVista Antiques StorecĶø¹ĘTeek, AnnryurPDISKŖ(¶7ĘŸĶʦ27 Santa Fe Ave.[*]Ŗ(Vista, CA 920835601V0ßzĄ724-3176ĄfĄVista Antiques StorecĶø¹ĘTeek, AnnryurPDISKŖ(¶7ĘŸĶʦ27 Santa Fe Ave.[*]Ŗ(Vista, CA 920835601V0ßzĄ724-3176ĄfĄVista Antiques StorecĶø¹ĘTeek, AnnryurPDISKŖ(¶7ĘŸĶʦ27 Santa Fe Ave.[*]Ŗ(Vista, CA 920835601V0ßzĄ724-3176ĄfĄVista Antiques StorecĶø¹ĘTeek, AnnryurPDISKŖ(¶7ĘŸĶʦ27 Santa Fe Ave.[*]Ŗ(Vista, CA 920835601V0ßzĄ724-3176ĄfĄµSCDEMO  €€€€€€€€€€€€€€€€5†Óššh°žORIENT28ØPĄÅ©¾0Z/PĄÓ¢,:š‚^@€ÓÖ3  TYPE $SCCHSET = SET OF CHAR; $SCKEYCOMMAND = (BACKSPACEKEY,ETXKEY,UPKEY,DOWNKEY, @LEFTKEY,RIGHTKEY,NOTLEGAL); $  VAR   SCCH:CHAR;   PROCEDURE SCINITIALIZE;  PROCEDURE SCLEFT;  PROCEDURE SCRIGHT;  PROCEDURE SCUP;  PROCEDURE SCDOWN;  PROCEDURE SCGETCCH(VAR CH:CHAR; RETURNONMATCH:SCCHSET);  FUNCTION SCMAPCRTCOMMAND(KCH: CHAR): SCKEYCOMMAND;   IMPLEMENTATION  “SCDEMO ©‡€’ih !²Ō † ŲŹ ķhŠīšē%i†!ēÉŲʆ!ēÉŲʆ!ēÉŲʆ!ēÉŲʆ!ēÉŲʆšē+ÉŲŹ––† ŲÉi–įšēi!ē#ŲÉŌ š!Érš$r!ēɲń!ēÉjh "²Ō šr ķhŠļ–óšē"É‘ –šē!É‘ –šē!ɑ –%š r–Iš‡s šsŌ‡ ćx`ŠŚŌć–P–MF•Ž…|s § PASCALIOEXTRAIO   –µTESTSCUNSCDEMO  €€5 •TESTSCUNa#šsp–` €?ŚŌ- Š%rš€ sprŠrŠrŠrŠ rŠ„ŠրŠ‘–ær†¼ƒ€ ŪĒŽš‚€t pštpš‚€$t p„††Šr1¼ŚŌ1r‘Š š1sp0ŌŻ–Ų’ų’š’ō’č’ģ’ž’’'Arrow keys move cursor; ETX terminates; BS erases visible charss 2PASCALIOEXTRAIO SCDEMO    TYPE $SCCHSET = SET OF CHAR; $SCKEYCOMMAND = (BACKSPACEKEY,ETXKEY,UPKEY,DOWNKEY, @LEFTKEY,RIGHTKEY,NOTLEGAL); $  VAR   SCCH:CHAR;   PROCEDURE SCINITIALIZE;  PROCEDURE SCLEFT;  PROCEDURE SCRIGHT;  PROCEDURE SCUP;  PROCEDURE SCDOWN;  PROCEDURE SCGETCCH(VAR CH:CHAR; RETURNONMATCH:SCCHSET);  FUNCTION SCMAPCRTCOMMAND(KCH: CHAR): SCKEYCOMMAND;   IMPLEMENTATION  “SCDEMO ©‡€’ih !²Ō † ŲŹ ķhŠīšē%i†!ēÉŲʆ!ēÉŲʆ!ēÉŲʆ!ēÉŲʆ!ēÉŲʆšē+ÉŲŹ––† ŲÉi–įšēi!ē#ŲÉŌ š!Érš$r!ēɲń!ēÉjh "²Ō šr ķhŠļ–óšē"É‘ –šē!É‘ –šē!ɑ –%š r–Iš‡s šsŌ‡ ćx`ŠŚŌć–P–MF•Ž…|s § PASCALIOEXTRAIO   O^üž(*$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('TELEPHONE: ',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 "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(STREET) 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); "IF IORESULT<>0 THEN REWRITE(FID,TITLE);  (*$I+*)  RECNUM:=0; "WHILE RECNUM>=0 DO $BEGIN &WRITELN; &WRITE('Record number:'); &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;  END (*WHILE*); "CLOSE(FID,LOCK);  END. ( UPDATE  €€€€€€€€€€€€€€€€Ü­,Óššh°žSTANLEY28¾~ĄÅ©Ø0Z/~ĄÓ¢,:š‚^@€ÓÖ3UPDATE oG!h ē‚€ė ‚€ė ē"‚€ė ē-‚€ė ē=‚€ė –õC`‡DÅCšrpš‚€r pš„˜r pšrpš‚€r pš`˜r pšrpš‚€r pš„#˜r pšrpš‚€r pš„.˜r pšrpš‚€#r pš„>˜r pšrp–D2šˆ€Pr pšr piˆ§²ńˆˆ§ģ§ŅiŠ ˆėP–Ķ*š‚€*r pšrpšrp‡+¤*š‚€Jr p‡*ēŌŠ^š‚€Pr p‡*ŌŠHš‚€Vr p‡*ē"ŌŠ0š‚€\r p‡*ē-ŌŠš‚€br p‡*ē=ŌŠ–+Ö†n†š€Csš‚€hr pš†E€Pr pšr p†n†E  ˜spÓ †n†E˜s„0³Õ²šrpš‚€nr pš†rpšr p0³Õ…†n0sp†nrp†nrpŌ+š‚€vr pšrp…n‘…n‘†n0sp†nrpŠDš‚€r pšrp…n‘šrpš‚€…r pšrp…n‘†n0sp†nrp‹H’†nsp†ns– NAME: COMPANY: STREET: CITY&STATE: TELEPHONE: ?RETURN skips item with no change; ESC+RETURN skips whole Record NAME: COMPANY: STREET: CITY&STATE: TELEPHONE: File title:Record number::Enter new Record: Old Record:Enter Changes::}›& éFILEOPS PASCALIO E^B£B£"The quizzes mentioned in the BEGINNER'S MANUAL by Dr. Bowles are  not yet available. We will notify you when they become available  for sale. " "Dr. Bowles's book was written to describe the II.0 version of the  UCSD Pascal (tm) system. The IV.0 version of the UCSD p-System (tm)  differs with respect to units which are described in Chapter 9. The  UCSD Pascal Users Manual - Version IV.0 describes units correctly. Y’SCREENOPSEGSCINI    €€€€€€€€€€€€€€€€”SCREENOP(īčļčļh°ž4.0v›>ę3>ʞŪÅņœÄ++ʞŪīN(šč <€ī†/   const $sc_fill_len = 11; $sc_eol = 13;   type $sc_chset = set of char; $sc_misc_rec = packed record 8height, width : 0..255; 8can_break, slow, xy_crt, lc_crt, 8can_upscroll, can_downscroll : boolean; 6end; $sc_date_rec = packed record 8month : 0..12; 8day : 0..31; 8year : 0..99; 6end; $sc_info_type = packed record 8sc_version : string; 8sc_date : sc_date_rec; 8spec_char : sc_chset; {Characters not to echo} 8misc_info : sc_misc_rec; 6end; $sc_long_string = string[255]; $sc_scrn_command = (sc_whome, sc_eras_s, sc_erase_eol, sc_clear_lne, 7sc_clear_scn, sc_up_cursor, sc_down_cursor, 7sc_left_cursor, sc_right_cursor); $sc_key_command = (sc_backspace_key, sc_dc1_key, sc_eof_key, sc_etx_key, 7sc_escape_key, sc_del_key, sc_up_key, sc_down_key, 7sc_left_key, sc_right_key, sc_not_legal); $sc_choice = (sc_get, sc_give); $sc_window = packed array [0..0] of char; $sc_tx_port = record 8row, col, { screen relative} 8height, width, { size of txport (zero based)} 8cur_x, cur_y : integer; E{cursor positions relative to the txport } 6end; 4 "procedure sc_use_info(do_what:sc_choice; var t_info:sc_info_type); "procedure sc_use_port(do_what:sc_choice; var t_port:sc_tx_port); "procedure sc_erase_to_eol(x,line:integer); "procedure sc_left; "procedure sc_right; "procedure sc_up; "procedure sc_down; "procedure sc_getc_ch(var ch:char; return_on_match:sc_chset); "procedure sc_clr_screen; "procedure sc_clr_line (y:integer); "procedure sc_home; "procedure sc_eras_eos (x,line:integer); "procedure sc_goto_xy(x, line:integer); "procedure sc_clr_cur_line; "function sc_find_x:integer; "function sc_find_y:integer; "function sc_scrn_has(what:sc_scrn_command):boolean; "function sc_has_key(what:sc_key_command):boolean; "function sc_map_crt_command(var k_ch:char):sc_key_command; "function sc_prompt(line :sc_long_string; x_cursor,y_cursor,x_pos, 7where:integer; return_on_match:sc_chset; 7no_char_back:boolean; break_char:char):char; "function sc_check_char(var buf:sc_window; var buf_index,bytes_left:integer) 9:boolean; "function space_wait(flush:boolean):boolean; "procedure sc_init; $  implementation ‘SEGSCINI…=†Jē ŲÉń†fē*†fē*ІJē §ā¼ŪĒŽ–U†Jē "ȆJē Ų!Ź–l"­ē$!ŲÉ ļ ļ–•†Qē ŲÉń†fē*†fē*ІQē §ā¼ŪĒŽ–µ†"Ų ʆQē "ȆQē Ų!Ź–Ģ"­ē/!ŲÉ ļ ļ– ›ap!k€’lh $²Ō † Ų Ź ķhŠī†Q#ē-ÉĆJ#ēÉĆfē)›DÅ#ēl†fē:m%#ę%īŹ%#ę&īŹ%ēŹ%ēŹ%ē$ÉŹ%ē$ÉŹ%ē$ÉŹ%ēʆfē*ā¼#ē-Éā¼Ū#ēÉā¼Ū ā¼Ūā¼ŪĒŽ#ēl$ɐ$ēɐ$ēɐ$ēɐ$ēɐ$ēɐ$ēɐ$ēɐ #ē%l$ēÉ $ēɐ$ēÉ $ēÉ   $ēÉ $ēɐ$ēɐ$ēɐ$ēÉ †Qē§Ņ†Jl†G‚€ė$ēŲÉŌ†G$xȊ†GȆG$ē§Č$ē§Ņ†Gme†G˜se‚€se†G˜ seė†fē*†fē*Š ā¼ŻĒŽ†YȆA p†A#ē"ÉȆA§ ²ń†A Ȇ`k#ēÄ#ēÄ#ē†fē:ÉÄ#ē†fē:ÉÄ#ēÄ#ĆZ†`Åq–   ]M8-! hXSCREENOPr–6"x!³ń"!Ċ "x ²ń" Ėe†Jh ē!ŲÉŌš xtš ē!§tš†A˜u –ƒ†`†Z¹ !‘”h Ō!‘ åj–Ÿ!"±h†`†Z¹  Ō#‘ l–»†fh"Ņ!†fÅ<Іf!Å<–Ō!Ņ †ZÅŠ†Z Å–ކZyh–č†Zxh–†Zhb z‘a {‘†fē;ÉŌ |"¢ }!¢vŠšu ē"Ä !Ė£#’į°i†fē;ÉŌm†Zj!ń$#‘"z"|¢†fē:ɰ‘”Ō‘ŠJd"z‘c"{‘†Y"z$£ķ€ ¢Č#"}¢†fē:ɰ! Ō †Y"z$£€ ¢Čš†Yu !ŌšuŠ$#‘–½†Zh y‘Ō ē yīĖŲ†Zh y z‘Ō ē yķĖļ†Zh x‘Ō xīˆZh x {‘Ō xķˆJē §±i–'†Qē §±i–s†Qj#x"x°"x±”Ō iš#u Ši†#xŲÉh Ó!å"ē ŲÉ”!"ē ŲÉå” Ō h l–‹‘ ‘Ō‘ Šp"–œ‘Ō!‘–Ć‘‘ Ō’ᑠБԁ’į‘ ‘–į‘Ō‘Š †Zh ēÄ Ä–#"‘‘Ō%†fē;ÉŌ#"‘"ķ†Z{ih !²Ō ‘ ķhŠó#"‘–Pš‡u šuŌ‡ ćxƒ€ŚŌ ‡‡x€ £Ä‡x`ŠŚŌĪ–q€‡€ƒ‡€‚`‡€p`‡€Čš`˜u –€ƒˆ! ¢i!­³Ō­ķi!j–ī „€Œ„"¬’†fē:¤ ¤ ‚€ „€Œ˜sm%„€Œ§ķ%£€[„€Œ%p¢l‚€ „€Œ˜„ $„€Œ§$£ķs„ ˜sj%ķo*ēÉŌkŠ †Zzī%"¢£k‡’įÓ‡‡‘*ēÉńšu'i#²ŌnŠc$'£n&€ „€Œ'p¤ &(£n'(¢o&#²Ÿh Ō#£#ᇁ „€Œ'#¢£p¢n&²Ō '$'£‡ „€Œ'pķo!'ŅnŠįn&³Ō„€Œ%‘%Óš€ t„€Œ'&‘'&¢$³ń š‚€ u „€Œ$"‘'&o‡!³Ō‡!‡ ‘‡ ń„ „Šƒ€ŪĒ‘ )€?±Õ ’)¤$–#Č'&x§h¤ j†Jk† ŲÉŅ\‘å†fē;É Ōš‚€u šuŠ1&xīli!$³Ō'!§€ ³Ō š†G˜u !īiŠå‘Ō ’ၒį‘&x£j¤ ŠS† ŲɁŚŌE¤ &x²ń:įj‘ń € ³ń š€_tŠš tŠ'&xī§€ ³Ō ‘š€ t‘Šj&&x"¢Ä%%x"£Ä– !Ōp"š9ēĚ‚€u šēÉń š‚€u š`u šē,É⼃€#ŪŚŌåšu € ±j–&–ž’’:]? €> to continuee»ŖD5 ęzĘqlPvsdH<ŽśīįŌ’`RGOTOXY PASCALIOEXTRAIO STRINGOP O^££   {$I-}   (*************************************************************************)  (*  *)  (* Screen Diagnostic Program 15-July-79 *)  (* ------ ---------- ------- *)  (*  *)  (* This program provides a confidence test that shows: *)  (* 1. The BIOS is working correctly with the screen and keyboard, *)  (* 2. The control information is correct for the screen, and *)  (*  3. The Screen Editor will have no trouble interfacing to the *)  (* screen or keyboard.  *)  (* *)  (* Richard Kaufmann  *)  (* This program is proprietary information of Softech Microsystems Inc. *)  (* Copyright (c) 1979 Softech Microsystems Inc. All rights reserved. *)  (* *)  (*************************************************************************)   { --- Modified 20-Sep-79 RSK to use Screen Control Unit --- }  { --- Modified 21-Dec-79 DLB to use II.0 Screen Control Unit --- }  { --- Modified 17-Feb-81 SGS to use IV.0 Screen Control Unit ---}   Program Screen_Diagnostic;   Uses {$U Screenops.code} screen_ops;   const  DLE=16;   type "prompt_string=string[255];  var "screenheight, screenwidth: 0..255; "lower,log_errors: boolean; "error_count: integer; "error_fn: string; "testline: packed array [0..255] of char; { line of percent signs } "sc_info: sc_info_type; "s: prompt_string;  error_file: text;    procedure initialize;  { inits testline and prints welcome message }  begin "sc_init; {Initialize Screen Control Unit} "fillchar(testline,sizeof(testline),'%'); " "writeln('Screen Control Diagnostic Program'); "writeln('Copyright (c) 1981, SofTech Microsystems Inc.'); "writeln('Answer all verification questions with a ''Y'' (''y'') or ', F'''N'' (''n'').'); "writeln; "{ Get information from screen control unit }  sc_use_info(sc_get,sc_info); "with sc_info.miscinfo do $begin &screenheight:=height; &screenwidth :=width; &lower:=lc_crt $end;  end;   procedure open_log_file;  { Open the error logging file }  begin "repeat $write('What file should errors be logged in? ( for none) '); $readln(error_fn); $rewrite(error_file,error_fn); "until (ioresult=0) or (length(error_fn)=0); "error_count:=0; "log_errors:=length(error_fn)<>0;  end;   procedure close_log_file;  { Say goodbye and then close the error logging file }  begin "sc_clr_screen; "writeln; "writeln('Done with Screen Control Diagnostics'); "if log_errors then $begin  &writeln(error_file); &writeln(error_file, ('***** End Diagnostic; ',error_count,' errors encountered.'); &close(error_file,lock); &writeln('Error File "',error_fn,'" closed with ',error_count,' errors.'); $end;  end;   procedure log(s:prompt_string);  { write string to error logging file. keep track of error count }  begin "if log_errors then $begin &error_count:=error_count+1; &writeln(error_file,error_count:5,' ',s); $end  end;   procedure ok(s:string);  { read a character. if it is a N(o then, using log, write the string "to the error logging file }  var ch: char;  begin "repeat read(keyboard,ch) until ch in ['Y','y','N','n']; "if ch in ['N','n'] then log(s)  end;   procedure message(prompt:prompt_string);  { clears screen, prints message. Imbedded into message can be an arbitrary "number of |x y| strings. Instead of these strings being displayed, a "sc_goto_xy(x,y) is performed }   var "i,l,next,x,y: integer; " "function read_integer(var index: integer; term_ch: char): integer; "{ parse integer in string, return value, term_ch tells what character $terminates input }  var ch: char; n: integer; "begin $n:=0; $repeat &ch:=prompt[index]; &if ch in ['0'..'9'] then (begin *n:=n*10+ord(ch)-ord('0'); *if n>255 then ,begin .writeln('integer overflow in message procedure', 6'. index=',index); .exit(program) ,end; *index:=index+1 (end &else (if ch<>term_ch then *begin ,writeln('illegal character in message procedure. ch=',ch); ,exit(program) *end; $until ch=term_ch; $index:=index+1; $read_integer:=n "end; $  begin "i:=1; "l:=length(prompt); "while i<=l do $begin &next:=scan(l-i+1,='|',prompt[i])+i; { next sc_goto_xy } &if next>l then (begin unitwrite(1,prompt[i],l-i+1); i:=l+1 end &else (begin *unitwrite(1,prompt[i],next-i); *if prompt[next]='|' then ,begin { parse x and y, perform sc_goto_xy } .i:=next+1; .x:=read_integer(i,' '); .y:=read_integer(i,'|'); .sc_goto_xy(x,y) ,end *else ,i:=next+1 & end $end;  end;   procedure test_basic;  begin  writeln('* Is this sentence surrounded by two asterisks (stars). *'); "ok('test_basic: not all characters being written out');  end;   procedure test_gotoxy;  { Try some border cases (0,0) and lower right corners. Also draws a "box. Not a complete test. Just a confidence test }    var "i,x,y: integer; "  procedure exhaustive_gotoxy_check; "{ checks all possible locations on the screen. } "var x,y: integer; & $procedure line_out; $begin &for x:=screenwidth - ord(y=screenheight) downto 0 do (begin *sc_goto_xy(x,y); *write(chr( ord('A') + x mod 27 ) ) (end; " end; " "begin $sc_clr_screen; ${ write out line the standard way to check sc_goto_xy patterns against } $sc_goto_xy(0,2); $for x:=0 to screenwidth do write(chr( ord('A') + x mod 27 )); ${ now write out rest of screen backwards } $for y:=screenheight downto 3 do lineout; " message('|0 0|Are all of the below lines the same (except for a'); $message('|0 1|missing char in the lower right) ?'); $ok('exhaustive_gotoxy_check: first pass not ok'); " ${ now check the first two lines } $y:=0; lineout; { fill in the top two  lines } $y:=1; lineout; $sc_goto_xy(0,screenheight); $write(' ':screenwidth); $sc_goto_xy(0,screenheight); $message('Are all of the above lines the same?'); $ok('exhaustive_gotoxy_check: top line error'); "end; " "procedure it; begin sc_goto_xy(x,y); write('*') end; "  begin  sc_clr_screen; "message('|0 0|Does this message also start at the upper-left corner?'); "ok('test_gotoxy: sc_goto_xy(0,0) did not go home'); "sc_clr_screen; "for i:=1 to screenheight do writeln; "for i:=1 to screenwidth-2 do write(' '); "write('>'); "sc_goto_xy(screenwidth-1,screenheight); "message('*|0 0|Is there a ''>'' immed. followed by a ''*'' in the lower'); "message('|0 1|right corner?'); "ok('test_gotoxy: sc_goto_xy(screenwidth-1,screenheight) not ok'); "sc_clr_screen; "sc_goto_xy(0,0); "for y:=0 to 8 do writeln; "message('-------->|9 9|');  y:=9; for x:=9 to 18 do it; "x:=9; for y:=9 to 18 do it; "y:=18; for x:=9 to 18 do it; "x:=18; for y:=9 to 18 do it; "message('|5 0|Does the box have 10 stars per side and start at the arrow?'); "ok('test_gotoxy: box not correctly drawn'); "exhaustive_gotoxy_check;  end;   procedure test_clr_screen;  begin  sc_clr_screen; "message('|0 10|Is the screen blank (except for this sentence'); "message('|0 11|and (maybe) the lower-right hand character) ?'); "ok('test_clr_screen: screen not cleared');  sc_clr_screen; "message('Does this message start at the upper-left corner?'); "ok('test_clr_screen: cursor not left at (0,0) afterwards');  end;   procedure test_clr_line;  var i,y: integer;  "procedure try(x,y:integer;s:string); "begin $sc_clr_screen; $sc_goto_xy(0,y); $write(testline:screenwidth+1); $sc_goto_xy(x,y); $sc_clr_line(y); $message('|0 0|Is this the only thing on the screen?'); $ok(concat('test_clr_line: didn''t clear enough - ',s));  end; "  begin "try(45,12,'(45,12)'); "try(0,10,'(0,10)'); "try(screenwidth,3,'(0,Screenwidth)'); "sc_clr_screen; "sc_goto_xy(0,1); "for y:=1 to screenheight-1 do $begin &write(testline:screenwidth+1); &sc_goto_xy(0,y+1); $end; "sc_goto_xy(10,10); sc_clr_line(10); "message('|0 0|Are there two blocks of "%"s (no gaps or missing chars) ?'); "ok('test_clr_line: Clearing one line affected another');  end;   procedure test_clr_cur_line;  begin  { Is there any use for this????? }  end;   procedure test_erase_eol;  { display full line then erase most of it }  var i: integer;  begin  sc_clr_screen; "sc_goto_xy(0,8); "for i:=1 to 20 do write('*'); "write('>'); "for i:=22 to screenwidth do write('$');  sc_goto_xy(21,8); sc_erase_to_eol(21,8); "message('|0 0|Is the line below a series of stars immed. followed by'); "message( ' a right-arrow (''>'')?');  ok('test_erase_eol: sc_erase_to_eol didn''t work');  end;   procedure test_etoeos;  { Draw a block of characters on the screen and erase most of them }  var i,y: integer;  begin "sc_clr_screen; "sc_goto_xy(0,4); "for y:=4 to screenheight do $begin &{ if last line write out one less star (could force scroll) } &write(testline:screenwidth - ord(y=screenheight) + 1); &if y0 then write(plus:i); *if i+1<=screenwidth then write('<'); *j:=screenwidth-i; *if j>0 then write(dashes:j); ( i:=i+1; (end; &sc_goto_xy(0,1); &{ now blank out all of the '+'s } &for j:=start to i do writeln(chr(DLE),chr(j+32)); &message('|0 0|Are all the lines below a ''<'' followed by ''-''s?'); &ok('test_DLE_expansion: expansion not happening properly'); $end;  end;   procedure test_special_keys;  { prompt user to type all of the "interesting keys" }  var ch: char;  "procedure test(s:string; key:sc_key_command; compare_ch: char); "{ s is the name of the key; key is what should be returned. $If key is sc_not_legal then the character is checked against $ch. } "var okch,bailout: boolean; &returned:sc_key_command; "begin $repeat &sc_clr_screen; &message(concat('Please press the ',s,' key. ')); &read(keyboard,ch); &if eoln(keyboard) then ch:=chr(13); { op sys sets to a ' ' } &returned:=sc_map_crt_command(ch); &okch:=(returned=key) and (( (key<>sc_not_legal) or ( (key=sc_not_legal) and (ch=compare_ch) ) ); &if not okch then (begin *message('|0 5|Key typed is not correct.'); *message('|0 6|Do you wish to try typing this key again? '); *repeat read(keyboard,ch) until ch in ['Y','y','N','n']; *bailout:=(ch in ['N','n']); *if bailout then ,log(concat('test_keyboard: ',s,' key not correct')); (end; " until bailout or okch; "end; " { 0 -> never used }  begin  test('up-arrow', sc_up_key, chr(0) ); "test('down-arrow', sc_down_key, chr(0) ); "test('left-arrow', sc_left_key, chr(0) ); "test('right-arrow', sc_right_key, chr(0) ); "test('editor accept (etx)', sc_etx_key, chr(0) ); "test('line del', sc_del_key, chr(0) ); "test('DC1', sc_dc1_key, chr(0) ); "test('backspace',  sc_backspace_key, chr(0) ); "test('escape', sc_escape_key, chr(0) );  test('return',  sc_not_legal, chr(13)); "test('tab', sc_not_legal, chr(9) ); "test('line feed', sc_not_legal, chr(10));  end;   procedure test_normal_keys;  { checks that all of the keys can be typed. needs to understand whether "this is an upper-case keyboard }   var "bad: prompt_string; { contains all non-typeable characters }  "procedure range(low_ch,high_ch: char); "{ tests characters in the range [low_ch..high_ch] } "var $ch,input_ch,gch: char; " s: string[1]; { place holder for ch -> string conversion } ( $procedure error(s: string); ${ handles incorrectly typed characters } $begin &message('|4 7|Bad character. You typed a '''); &if input_ch in [' '..'~'] then (write(input_ch) &else (write('chr(',ord(input_ch),')'); &message(concat('''',s)); &message('|4 9|Do you wish to try this character again?'); &repeat read(keyboard,gch) until gch in ['Y','y','N','n']; &if gch in ['N','n'] then (begin *{ must move character to string variable to match types ,with concat } *s:=' '; s[1]:=ch; bad:=concat(bad,s); *ch:=succ(ch) (end; &{ erase the two lines of error message } &sc_goto_xy(0,7); sc_erase_to_eol(0,7); &sc_goto_xy(0,8); sc_erase_to_eol(0,8); $ sc_goto_xy(0,9); sc_erase_to_eol(0,9); $ { ... and then go back to the next character to be input } &sc_goto_xy(4+ord(ch)-ord(low_ch),5); $end; " "begin $sc_clr_screen; $message('Please type in the following characters|2 1|in the EXACT'); $message(' order shown:|4 4|'); ${ mark the fact that there is a } $if low_ch=' ' then &message('|2 2|Note: The first character is a space|4 4|'); $for ch:=low_ch to high_ch do write(ch); $sc_goto_xy(4,5); $ch:=low_ch; $repeat &read(keyboard,input_ch); &if sc_map_crt_command(input_ch)<>sc_not_legal then (error(',|4 8|which is interpreted as a special key.') &else (if ch=input_ch then *begin write(ch); ch:=succ(ch) end (else *error('') $until ch>high_ch; "end;   begin { check_normal_keys } "bad:=''; "range(' ','O'); "if not lower then $begin range('P','`'); range('{','~') end "else $range('P','~'); "{ whenever a key can't be typed it is concatted to BAD } "if length(bad)>0 then $log(concat('check_normal_keys: Can''t type these: ',bad));  end;    begin { Screen_Diagnostic } "initialize; { print welcome message, initialize testline to '%'s } "open_log_file; "test_basic;  "test_clr_screen; "test_gotoxy; "test_clr_line; "test_clr_cur_line; "test_erase_eol; "test_etoeos; "test_home; "test_single_vectors; { up, left, right, down }  test_scroll; { make sure LF at bottom line scrolls screen } "test_DLE_expansion; "test_special_keys; { test arrows, etx etc. } "test_normal_keys; { test ' '..'~' } "close_log_file;  end.  M_6502 :WRITEOUT('M_6502 '); . M_6800 :WRITEOUT('M_6800 '); . M_9900 :WRITEOUT('M_9900 '); .END; .WRITE(OUT,SEG_NUM:4); * END; ,WITH SEG_MISC[DCT_INDEX] DO ,BEGIN .WRITEOUT(' '); .CASE SEG_TYPE OF . NO_SEG :WRITEOUT('NO_SEG '); . PROG_SEG :WRITEOUT('PROG_SEG'); . UNIT_SEG :WRITEOUT('UNIT_SEG'); . PROC_SEG :WRITEOUT('PROC_SEG'); . SEPRT_SEG:WRITEOUT('SEPRT_SG'); .END; .WRITEOUT(' '); .IF RELOCATABLE THEN WRITEOUT('R') ELSE WRITEOUT(' '); .IF HAS_LINK_INFO THEN WRITEOUT('L') ELSE WRITEOUT(' '); .WRITEOUT(' '); .IF (SEG_TYPE IN [PROG_SEG,UNIT_SEG]) THEN 0WITH SEG_FAMLY[DCT_INDEX] DO 2WRITE(OUT,DATA_SIZE:6,SEG_REFS:5,HI_SEG_NUM:4,TEXT_SIZE:3) .ELSE WRITE(OUT,'''',SEG_FAMLY[DCT_INDEX].PROG_NAME,''''); * END *END (ELSE WRITE(OUT,' ':46,'NO_SEG'); (WRITELN(OUT); &END; $WRITELN(OUT,'(C):',SEG_DCT.COPY_NOTE); $LIST_SEX; "END;    PROCEDURE GET_SEG_LIST; "{ "2 Pickup segment reference list for parent segment, if in dictionary. "} "VAR J,I:INTEGER; (SEG_REF:SEG_REF_REC; " PARENT:NAMETYPE; "BEGIN $FILLCHAR(SEG_NAMES,SIZEOF(SEG_NAMES),' '); {clear out segnames} $SEG_NAMES[1]:='KERNEL '; $DCT_INDEX:=GET_DCT(DCT,SEG_DCT); $WITH SEG_DCT DO $BEGIN &IF (SEG_MISC[DCT_INDEX].SEG_TYPE IN [PROG_SEG,UNIT_SEG]) THEN (PARENT:=SEG_NAME[DCT_INDEX] &ELSE PARENT:=SEG_FAMLY[DCT_INDEX].PROG_NAME; &J:=0; &WHILE GET_DCT(J,SEG_DCT)>=0 DO &BEGIN & FOR I:=0 TO 15 DO *BEGIN ,IF SEG_FAMLY[I].PROG_NAME=PARENT THEN .SEG_NAMES[SEG_INFO[I].SEG_NUM]:=SEG_NAME[I]; ,IF SEG_NAME[I]=PARENT THEN .BEGIN /IF ALIGN_SG_REF THEN 0REPEAT {pickup list} 2GET_SEG_REF(SEG_REF); 2SEG_NAMES[SEG_REF.SEG_NUM]:=SEG_REF.SEG_NAME; 0UNTIL SEG_REF.SEG_NAME=' '; 0SEG_NAMES[SEG_INFO[I].SEG_NUM]:=PARENT; .END; & END; (J:=J+16; &END; $END; $IF ((J-1) DIV 16)<>(DCT DIV 16) THEN DCT_INDEX:=GET_DCT(DCT,SEG_DCT); "END; # #  BEGIN {SEGMTGUIDE} "REPEAT $WRITELN; $WRITE('Segment Guide: A(ll), #(dct index), D(ictionary), Q(uit)'); $READ(CH); $CASE CH OF &'A','a':BEGIN {disassemble all possible segments} 0FOR DCT:=0 TO MAX_DCT_ENTRY DO 2IF ALIGN_SEG(DCT)>=0 THEN 3IF (GETPROCLIST(PROCLIST)>0) THEN 5BEGIN 7GET_SEG_LIST; 7SIZE:=GETWORD(0,VALID,TRUE); 7DUMPDATAPOOL; 7FOR I:=1 TO PROCLIST[0] DO 9BEGIN  ;PROCMAX(I,MAX_OFFSET); ;DUMPPROC(PROCLIST[I],MAX_OFFSET); 9END; 5END; 0PROMPT; .END; &'D','d':BEGIN 0DCT:=0; CH:=' '; 0WHILE (CH=' ') AND (GET_DCT(DCT,SEG_DCT)>=0) DO 0BEGIN 2LIST_DIRECTORY(LISTFILE); 2DCT:=DCT+DCT_SIZE; 2IF (SEG_DCT.NEXT_PAGE<>0) THEN 4BEGIN 5WRITE('Type space for next page, anything else to Quit'); 5READ(CH); WRITELN; 4END 2ELSE CH:=CHR(0); 0END; 0CH:=CHR(0); .END; 4 &'0','1','2','3','4','5','6','7','8','9': {variety is the spice of life} .BEGIN 0DCT:=ORD(CH) - ORD('0'); 0READ(CH); WRITELN; 0IF CH IN ['0'..'9'] THEN 2DCT:=DCT*10 + ORD(CH) - ORD('0'); 0DCT_INDEX:=ALIGN_SEG(DCT); 0IF DCT_INDEX>=0 THEN PROCCOUNT:=GETPROCLIST(PROCLIST) 2ELSE PROCCOUNT:=0; 0IF PROCCOUNT>0 THEN 0 BEGIN 4GET_SEG_LIST; 4SIZE:=GETWORD(0,VALID,TRUE); 3 PROCGUIDE; 2END 0ELSE 2BEGIN 2 WRITELN; 4WRITELN('dictionary entry',DCT:3,' is empty'); 2 PROMPT; 2END; 0CH:=CHR(0); .END; &END; {case} "UNTIL (CH IN ['Q','q']);  END;    BEGIN {main program} "INIT; "REPEAT $REPEAT {reset input file} &WRITE('input file: '); &IF SAVENAME<>'' THEN WRITE('[',SAVENAME,'] '); &READLN(LISTNAME); &IF LISTNAME='' THEN LISTNAME:=SAVENAME; $UNTIL (PCODERESET(LISTNAME)=0) OR (LISTNAME=''); $SAVENAME:=LISTNAME; $IF LISTNAME<>'' THEN &BEGIN (REPEAT {rewrite output file} *WRITE('listing file [CONSOLE:] '); *READLN(LISTNAME); *IF LISTNAME='' THEN LISTNAME:='CONSOLE:'; *{$I-} CLOSE(LISTFILE,LOCK); REWRITE(LISTFILE,LISTNAME); {$I+} (UNTIL IORESULT=0; (CONSOLE:=(LISTNAME='CONSOLE:') OR (LISTNAME='#1:'); (IF LISTNAME<>'' THEN SEGMTGUIDE; & WRITELN; WRITE(' Continue? '); READ(CH); WRITELN; &END $ELSE CH:='N'; "UNTIL (CH='N') OR (CH='n');  IF (LISTNAME<>'') AND NOT CONSOLE THEN {$I-} CLOSE(LISTFILE,LOCK); {$I+}  END. IVDCODE  €€€€€€€€€€€€€€€€ ļŲļŲhžŹIT<“<ŖGņGņ8FļņźžrGņGī1z=IVDCODE  ?B†U‚€Å†‚€ ėP sš‚€ t pštp–pštpš‚€t pš`t p € Ņóštp–ž$h#ji!"³Ō†€Ż†U`!ĖīŲÉ˧up!īiŠŽ–’ke€ p‡‡£¤j"/²Õ±‡"¢`ri#³Ō:†€Ż€ up†€Żet p†€Żtpke€ p†€Ż"tp†€Ż‚€, t p!‘†€Ż€ up!ldɲŸdɀ~³Ÿ”Ō e#ĖdÉȊe#Ė€-ČdɲŸdɀ~³Ÿ”Ō e#ķĖdÉȊ e#ķĖ€-Č#¢k"ķj‹I’ķ#£Œķj†€Ż€ "up†€Żet p†€Żtp–€štperier†]€’˧£j†‚ ­Ė×xh†€Żtp†€Ż‚€.t p†€Ż†‚*­Ė×t p†€Żtp†€Ż‚€<t p†€Ż tp†€Ż‚€@t p†€Żtp †€Żtp†€Ż‚€St p†€Ż !¢tp†€Ż‚€Wt p†€Ż!Œtp†€Ż‚€_t p†€Ż!!¢tp†€Żtp!"–†€Żtp­Šb†€Ż‚€ft p†€ŻtpŠO†€Ż‚€vt p†€ŻtpŠ9†€Ż­tp†€Ż‚€‰t p†€ŻtpІ€Ż‚€˜t p†€ŻtpŠր”†€Ż‚€§t p†€Ż†‚*®Ė×t p†€Ż‚€¬t p†€Ż­tp†€Ż‚€²t p†€Żtp1ńKš‚€Ėt pš†‚*®Ė×t pš‚€Št pš­tpš‚€Öt pštp–a‡€’Ėdrh °Õø1ńKš‚€ļt pš†‚*­Ė×t pš‚€ūt pš‡tpš‚t pštp†€Żtp†€Ż‚t p†€Ż†‚*­Ė×t p†€Ż‚ t p†€Ż‡tp†€Żtp†€Ż‚t p†€Ż(tp†€Ż‚t p†€Ż'tp†€Ż‚t p†€Ż&&¢tp†€Żtp†€Ż‚$t p†€Ż%tp†€Ż‚*t p†€Ż$tp†€Żtp†€Ż‚0t p†€Ż€ up†€Ż‚6t p†€Żtp„ r‡$҆€Ż‚;t p†€Żtp†€Ż‡tp†€Ż€(up‡‘†€Ż‚Bt p†€Ż„ t p„ɋ݀ up‹å„ɀŠā¼€‹ā¼Ū€Ņ€Õ¼Ū€ńā¼ŪŚŌ‡¤†€Ż‡tp†€Ż€ up‹®„ɀ“ā¼€”ā¼ŪƒEŪŚŌ †€Ż†ƒ ‡€’Ė×t p†€Ż‡tpІ€Ż‡tp†€Ż‡tp†€Ż€ upŠV„ɀ•Ņ †€Ż†ƒ ‡€’Ė×t p†€Ż‡tpІ€݇tp†€Ż‡tp†€Ż‡tp†€Ż€ upŠցM‡ī¤j"‡²Ō„"˧‘"ķjŠė†€Żtp„ ɇ‡²Ÿ Õ†žŠ –£&†]€’˧³ń'†]&퀒˧€’Ė`rŅ %"Œ£ÄŠ%­Œ£ÄŠ%­Œ£Ä–¹)`„*¬P†€Ż`˜t p–+‹štpštp†‚z®Ė×xi!²Ÿ†‚j®Ė×ɰ”Ն†€Żtp‚Tļ †€Ż†‚*®Ė×t p†€Żtp†‚š®Ė×{h!! ¢ī¤i!‡²Ō9›b!up҆€Żbt pŠš‚bt pštp!ķiŠĄ†€ŻtpŠš‚ot pštp– štpštpr Ōg†€Żtp‚|ļ †€Ż†‚*®Ė×t p†€Żtpm`r `‚Ž¹ń)†€Ż$tp†€Ż‚’t p†€Ż`t p†€ŻtpŠm%ŌŊš‚”t pštp– f štpštpr Õ†€Żtp‚©ļ †€Ż†‚*®Ė×t p†€Żtp`r †€Ż`t p$‹Ķ‚¹ļ ‹Ę†€Ż‚¾t p†€Ż%tp‹­†€Ż‚Ćt p†€Ż%tp†€Ż‚Īt p†€Ż&tp‹~†€Ż‚Õt p†€Ż%tp†€Ż‚ßt p†€Ż&tp‹O$Š$‚åļ Š‚źļ Š‚ļļ Š ‚ōļ Šցł†€Ż‚’t p†€Ż%tp†€Ż‚‚t p†€Ż&tp†€Ż‚‚ t p'Ō ‚‚ļ Š‚‚ļ ‹Ö$Š$‚‚ļ Š‚‚ļ Š‚‚ļ Š ‚‚#ļ Šւ(‚‚.ļ %Š‚‚3ļ Š‚‚6ļ Š ‚‚9ļ Šւ;‚‚@ļ †€Ż&tp$҆€Ż‚‚Dt p†€Ż'tp&¤ І€Ż`Ė×xtp&ī¤ ¤ )¤ ¤ *+²Ō.(³Ō†€Żtp¤ `r Š(ķ¤ †€Ż`*Ė×xtp*ķ¤ ŠĶŠւI†€Żtp$°ÕžŠš‚‚Wt pštp– ¾štpštpš‚‚ft pš­tpš‚‚kt pš†‚*­Ė×t pštpš‚‚wt pštpš‚‚“t pš`t p ‹Äļ†]€’˧kj"#²Ō"ˆļ †]"€’˧­ļ"ķjŠä‘‹™ ‹”ļ‹‹Š‹… €0£iš`t p ƒ‚“ŚŌ$! Œ ¢€0£iš`t p ƒ‚øŚŌ ! Œ ¢€0£ihštp!²Ÿ!­²”Ō&j"†]€’˧²†]"€’˧!±”Ō"ķjŠä"ˆļ Ц!­ļ‘Šւ¼ ƒƒŚÕµžštp– Ņ)`„*¬P­`˜t p–+ …ƒ h‚ƒ ļ`Ė§Ó ‚ƒ ļŠ‚ƒļ­‚ƒt p­…‚Śtp­tp–®#tp#tp‚ƒ&#‚ƒEt p#tp#€ € number of procs in segmentIO error on filee’›’±’Ē’ēsegment procedure0 not available in P-Code form for disassembly....segment procedure0 not available in P-Code form for disassembly.... Disassembling segment procedure  .... Segment: Procedure::Block:: Block offset: Seg offset: Data size:: Exit IC:: OffsetHex codee exit code::): ’’’’’R’ŖInterface text for segment trouble reading interfaceno interface text to list#Segment reference list for segment : )no segment reference list in this segmentLinker information for segment  EOFMARKK CONSTDEF PUBLDEF baseoffset== pubdataseg== GLOBDEF homeproc== icoffset== EXTPROCC EXTFUNCC SEPPROCC SEPFUNCC ’Ł’ā’ė’ō srcproc= nparams= koolbit=TRUEEFALSE GLOBREFF PUBLREFF PRIVREFF CONSTREF’Ł’ā’ė’ō format==WORDDBYTEEBIG’ā’ė’ō nrefs= nwords== ž0’*’*’*’*ž‚žSž:ž±ž±ž±ž±no linker information to list There are procedures in segment 7Procedure Guide: A(ll), #(of procedure), L(inker info),@ C(onstant pool), S(egment references), I(nterface text), Q(uit))’’0s’{’{’{’{’{’{’{’{’{’{’9’l’g’v’q’9’l’g’v’qSEX: LEASTMOSTT$ significant byte first NEXT PAGE::(TEXT_SIZE, {size in blocks of interface text} >HI_SEG_NUM, {number of segments in file} >SEG_REFS, {segment reference list size} >DATA_SIZE:INTEGER); {data size} (PROG_NAME:NAME_TYPE); {parent segment's name} :END; .NEXT_PAGE:INTEGER; {next page of dictionary} .FILLER:  ARRAY[0..6] OF INTEGER; {reserved for future use} .COPY_NOTE:STRING[77]; {copyright notice} .SEX: INTEGER; {file sex} ,END; ( ({procedure descriptor record} ,PROCREC=RECORD 0BLOCK, {block number and} 0BLK_OFFSET, {byte offset of first pcode in procedure} 0SEG_OFFSET, {word offset in segment of first pcode} 0DATA_SEG_SIZE, {data segment size} 0EXIT_IC:INTEGER; {byte offset in segment of exit pcode(s)} .END; . ({pcode descriptor record} ,PCODEREC=PACKED RECORD 0NAME :NAMETYPE; {pcode name} 0PCODE :BYTERANGE; {byte value of pcode} 0OPTYPE :PCODETYPE; {describes # of operands, if valid} 0END_OF_PROC :BOOLEAN; {does this pcode end procedure?} 0BYTE_ARRY {the literal pcode sequence} <:PACKED ARRAY [0..7] OF BYTERANGE; 0NUM_BYTES, {number of bytes parsed} 0PROC_OFFSET, {proc offset of pcode in bytes} 0SEG_OFFSET, {seg offset of pcode in bytes} 0OPERAND1, {operands to pcode as needed} 0OPERAND2, 0OPERAND3 :INTEGER; .END;  (SEG_REF_REC=RECORD 0SEG_NAME:NAMETYPE; 0SEG_NUM:INTEGER; .END; . (LITYPES=(EOFMARK,GLOBREF,PUBLREF,PRIVREF,CONSTREF,GLOBDEF,PUBLDEF, 0CONSTDEF,EXTPROC,EXTFUNC,SEPPROC,SEPFUNC); 0 (LIENTRY=RECORD CASE BOOLEAN OF 0TRUE:(WRDS:ARRAY[0..7] OF INTEGER); 0FALSE:(NAME:PACKED ARRAY[0..7] OF CHAR; 7CASE LITYPE:LITYPES OF 9GLOBREF,PUBLREF,PRIVREF,CONSTREF: ;(FORMAT:(WORD,BYTE,BIG); ÅŠ ­‚BÅŠցF– ­‹­‚lÅ‹ū­‚pŋ𭂁tŋ孂xŋڭ‚|ŋϭ‚€Å‹Ä­‚„Å‹¹­‚ˆÅ‹®­‚ŒÅ‹£­‚Å‹˜­‚”Å‹­‚˜Å‹‚­‚œÅ‹w­‚ Å‹l­‚¤Å‹a­‚ØÅ‹V­‚¬Å‹K­‚°Å‹@­‚“Å‹5­‚øÅ‹*­‚¼Å‹­‚ĄÅ‹­‚ÄÅ‹ ­‚ČÅ‹ž­‚Ģŋ󭂁ŠÅ‹č­‚Ōŋݭ‚Ųŋҭ‚Üŋǭ‚ąÅ‹¼­‚äÅ‹±­‚čÅ‹¦­‚ģÅ‹›­‚šÅ‹­‚ōÅ‹…­‚ųÅŠ{­‚üÅŠq­‚‚ÅŠg­‚‚ÅŠ]­‚‚ÅŠS­‚‚ ÅŠI­‚‚ÅŠ?­‚‚ÅŠ5­‚‚ÅŠ+­‚‚ÅŠ!­‚‚ ÅŠ­‚‚$ÅŠ ­‚‚(ÅŠւ,– ŗ!€¢²ŌŠ !€Ę²ŌŠ– 6­h…,’²ń0…/ķ„/††8…/rpÓ ēŹ ē Ź„1p„,†8…, ’˧€’Ėi ē ęˆ8…,’˧€’ĖČ ē ęķą,ķ„,….ķ„.– cļh €²ńa €”€’ĖŹaļ€’ĖŹ!jŠ j– ‚`ļ€’ĖŹ`ļ€’ĖŹ i– Č#p…1°Õ3#i!ē ….Ä!ē …-….¢Ä!琀’ĖŹ!ēɀ€€ö¼ŚŌ !ēÉ!!ēɀŖā¼€Æā¼Ū€÷€’¼Ūƒ‚^ŪŚŌ!ēŹ!‚‚dÅ‹“!ēÉ€Œā¼€ā¼Ū€ā¼Ū€—ā¼Ū€˜ā¼Ū€œ€£¼Ū€§ā¼Ū€Øā¼Ū€°€ø¼Ū€¼€Ä¼Ū€Ęā¼Ū€Č€Ļ¼Ū€Ńā¼Ū€Ś€å¼Ū€ģ€ī¼Ū€ó€ö¼Ūƒ‚hŪŚÕ!ēɀ€³ŸÕš!ēŹ!ēɀ ³ń!‚‚pÅ!ē !ēÉċČ!ēɀ/²Ō!‚‚tÅ!ē !ēɣċ§!ēɀ?²Ō!‚‚xÅ!ē !ēɀ/£Ä‹…!ēɀg²Ō!‚‚|Å!ē !ēɀ_£ÄŠd!ēɀo²Ō!‚‚€Å!ē !ēɀg£ÄŠC!ēɀw²Ō$!‚‚„Å!ēŹ!ē !ēɀo£Ä!ē Ċ!‚‚ˆÅ!ē !ēɀx£ÄŠ!ēŹ‹F!ēɋ:!ēŹ!ē Ä!ēɀŠā¼€Ņ€Ō¼Ū€ńā¼ŪŚŌ"!ę €²ń!ē ….£!ę ¢ÄŠ !ē ….!ę ¢Ä‹ņ!ēŹ!ē ċį!ēŹ!ē Ä!ē ċÉ!ēŹ!ē Ä!ē ċ±!ēŹ!ē Ä!ē Ä!ē ċ’!ēŹ!ē Ä!ē Ä!ē Ċt!ēŹ!ē Ä!ēɀ‹ā¼€Õā¼ŪŚŌ !ē ….!ę ¢ÄŠH!ēŹ!ē Ä!ē Ä!ē Ċ*!ēŹ!ē Ä!ę jh "²Ō !ē Ä ķhŠļŠւŒ!ē !ēɀ–°Ź!ē ÉŌ„1–Q#ą+³Ōz†‚8ē`…+Ė×ÉŚŌf†‚8…+Ė×i!y$²Ÿ$³”ŌP!x$¢h$l#Ä …)Ó††8 rpŅ „)Š#Ä"…2”Ō†8$€’Ė×x‘mŠ †8$€’Ė×xm–ē$ą+³Õ…†‚8ē`…+Ė×ÉŚŌq†‚8…+Ė×k#yŒ%²Ÿ%³”ŌY%i#x%¢h%m$Ä …)Ó††8 rpŅ „)Š$Ć8%€’Ė×xj!Ō b˧€’ĖnŠ b˧€’Ėn–Ej…+³ŌO†‚8ē`…+Ė×ÉŚŌ;†‚8…+Ė×i!yh ¢„,„1!x ¢„/††8…/rpŅj„1–Õ" € p"ēą1Ņx†8…,’Ė" p…, ¢„,…,’²ń?…/ķ„/††8…/rpÓ„1 p…,£„,…,²ń†8" …,£…,pŠ„,"i!|h!ē`˧Ä"‚ƒ¹Ō„1–?j…+³Ō[†‚8ē`…+Ė×ÉŌJ†‚8…+Ė×h†‚8瀐…+Ė×i x y!y¢€’¢¢„/„,„1††8…/rpŅj„1„*– #p…1°Õ¶…,’²ń"…/ķ„/††8…/rpÓ„1 p„,†8…,’Ė#p…,¢„,#i…2Ō!jh "²Ō! Ė×! Ė×x‘Ä ķhŠć…*²ń)jh "²Ō! Ė×! Ė×x‘Ä ķhŠć…*£„*Š!!|ŚŌ!|Ņ!~„*Š!~ī„*Š!|Ņ„1–*††-įsį„0į„+„1į„)u†s–.CODELDCB LDCI LCO LDC LLA LDO LAO LDL LDA  LOD UJP UJPL MPI DVI STM MODI CPL CPG CPI CXL CXG CXI RPU CPF LDCN LSL LDE LAE NOP LPR BPT BNOT LOR LAND ADI €¢ž‰ž”žŸžŖžµžĄžĖžÖžįžģž÷’’ ’’#’.’9’D’O’Z’e’p’{’…’’™’£’­’·’Į’Ė’Õ’ß’é’óSBI STL SRO STR LDB NATIVE NAT-INFOINVALID CAP CSP SLOD1 SLOD2 INVALID EQUI NEQI LEQI GEQI LEUSW GEUSW EQPWR LEPWR GEPWR EQBYTE LEBYTE GEBYTE SRS SWAP TRUNC ROUND ADR SBR MPR DVR STO MOV DUP2 £Ęž~ž‰ž”žŸžŖžµžĄžĖžÖžįžģž÷’’ ’’#’.’9’D’O’Z’e’p’{’…’’™’£’­’·’Į’Ė’Õ’ß’é’óADJ STB LDP STP CHK FLT EQREAL LEREAL GEREAL LDM SPR EFJ NFJ FJP FJPL  XJP IXA IXP STE INN UNI INT DIF SIGNAL WAIT ABI NGI DUP1 ABR NGR LNOT  IND INC EQSTR LESTR GESTR ASTR CSTR INCI DECI SCIP1 SCIP2 TJP LDCRL LDRL STRL CNTRL  EXPRL Ēöżśžžžž&ž1ž<žGžRž]žhžsž~ž‰ž”žŸžŖžµžĄžĖžÖžįžģž÷’’ ’’#’.’9’D’O’Z’e’p’{’…’’™’£’­’·’Į’Ė’Õ’ß’é’ó’’’’INVALID ’’’’’’’’’’’’SLDC SLDL SLDO SLLA SSTL SCXG SIND €ņžĆ’Œ’’n’’’’’7’7žĆ’ŒžĆžĆžĆ’’’’ø’žĆ’7’7’’’7’Ö’žĆ’’’O’O’O’7žĆžĆžĆžĆžĆ’Œ’’’ ’7’’’’’’žĆžĆžĆ’ 4ßČ@Ń "ķ„v+ęCĶ7Įć‡*** STRINGOPFILEOPS EXTRAIO   µ IVMDCODEIVDCODE  €€7   “IVMDCODE™6"i`aɀ’ĖŹ`aɀ’ĖŹ k–b†8٤i!‡²Ōb!€’Ė×b!€’Ė×x‘Ä!ķiŠß€`€¤i!‡²Ōb!€’Ė×b!€’Ė×x‘Ä!ķiŠßb­p­¤‡ē€Š‡ꀩ‘Ĥi!‡²ŌY‡ē`!Ė×ÉŚŌA‡瀐!Ėפ‡‡x‘ćē‡y‘ćē‡z‘ćē‡{‘Ä!ķiŠ –~įk"h†3 Ė×x³ŌJ†3 Ė×x…)Ó††8†3 Ė×xrÓp†3 Ė×x„)†8!p!ꀒӐ"k–Āįjį„+„1…0!Ó!€Oˆ‚8‘„+Š!„+…+³Ō…)„0…+j`‘°„2–jV„.„W¬P†s†„.˜spÓ†jb„.˜€Ptb‚€€Utb˜s†3 €’ppŅJih††‚8 rŅ+†3!Ė× Ƃ8ꀒÓ †‚8ꀩ‘hІ‚8ꀩh!ķiŠh °!²Ÿ Ōŗp¤Yį„0į„+„1į„)–X• ¤ …+³Õ†‚8ē`…+Ė×ÉŚÕg‘m%g‘h'Õó„ p ¤ l$‡ ²Ō%‡ $€’Ė$€’ĖȄ $€’Ė×%$£g‘Ä$ķlŠŌj’ik" ¤ l$‡ ²Ō/„ $€’Ė×x!³Ÿ„ $€’Ė×x²Ÿ”Ō „ $€’Ė×xi$k$ķlŠŹ#²ńQ#‡ "€’˧ÓB‡ #€’˧n‡ #€’ˇ "€’˧€’ĖȄ #€’Ėׄ "€’Ė×xだ"€’Ė&€’ĖČ"ķj#°" ²Ÿ Õ]’‡ €’Ė"ĖČ ¤ – |& p¤ …+³ÕІ‚8ē`…+Ė×ÉŚÕød‘k#d‘h$Õ”'²Ÿ' ²”Ց&m#'£d‘j"²Ÿ"#³Ÿ”Ōv"ķŒ„-†‚8…+Ė×x…-¢„/…-„,„.%ē…/Ä%ē…,Ä%ē"ķÄ%"īd‘Ä%x""¢³ń%""¢Ä%ē"d‘Ɔ8…/rpҤ „1Ф Ф Ф Ф Ф –ž­‹t­‚€Å‹l­‚€ Å‹a­‚€ Å‹V­‚€Å‹K­‚€Å‹@­‚€Å‹5­‚€Å‹*­‚€!Å‹­‚€%Å‹­‚€)Å‹ ­‚€-Å‹ž­‚€1ŋ󭂀5ŋ譂€9ŋݭ‚€=ŋҭ‚€Aŋǭ‚€EÅ‹¼­‚€IÅ‹±­‚€MÅ‹¦­‚€QÅ‹›­‚€UÅ‹­‚€YÅ‹…­‚€]ÅŠ{­‚€aÅŠq­‚€eÅŠg­‚€iÅŠ]­‚€mÅŠS­‚€qÅŠI­‚€uÅŠ?­‚€yÅŠ5­‚€}ÅŠ+­‚€ÅŠ!­‚€…ÅŠ­‚€‰ÅŠ ­‚€ÅŠր‘–‹­‹­‚€¶Å‹w­‚€ŗÅ‹l­‚€¾Å‹a­‚€ĀÅ‹V­‚€ĘÅ‹K­‚€ŹÅ‹@­‚€ĪÅ‹5­‚€ŅÅ‹*­‚€ÖÅ‹­‚€ŚÅ‹­‚€ŽÅ‹ ­‚€āÅ‹ž­‚€ęŋ󭂀źÅ‹č­‚€īŋݭ‚€ņŋҭ‚€öŋǭ‚€śÅ‹¼­‚€žÅ‹±­‚Å‹¦­‚Å‹›­‚ Å‹­‚Å‹…­‚ÅŠ{­‚ÅŠq­‚ÅŠg­‚ÅŠ]­‚"ÅŠS­‚&ÅŠI­‚*ÅŠ?­‚.ÅŠ5­‚2ÅŠ+­‚6ÅŠ!­‚:ÅŠ­‚>ÅŠ ­‚BÅŠցF– ­‹­‚lÅ‹ū­‚pŋ𭂁tŋ孂xŋڭ‚|ŋϭ‚€Å‹Ä­‚„Å‹¹­‚ˆÅ‹®­‚ŒÅ‹£­‚Å‹˜­‚”Å‹­‚˜Å‹‚­‚œÅ‹w­‚ Å‹l­‚¤Å‹a­‚ØÅ‹V­‚¬Å‹K­‚°Å‹@­‚“Å‹5­‚øÅ‹*­‚¼Å‹­‚ĄÅ‹­‚ÄÅ‹ ­‚ČÅ‹ž­‚Ģŋ󭂁ŠÅ‹č­‚Ōŋݭ‚Ųŋҭ‚Üŋǭ‚ąÅ‹¼­‚äÅ‹±­‚čÅ‹¦­‚ģÅ‹›­‚šÅ‹­‚ōÅ‹…­‚ųÅŠ{­‚üÅŠq­‚‚ÅŠg­‚‚ÅŠ]­‚‚ÅŠS­‚‚ ÅŠI­‚‚ÅŠ?­‚‚ÅŠ5­‚‚ÅŠ+­‚‚ÅŠ!­‚‚ ÅŠ­‚‚$ÅŠ ­‚‚(ÅŠւ,– ŗ!€¢²ŌŠ !€Ę²ŌŠ– 6­h…,’²ń0…/ķ„/††8…/rpÓ ēŹ ē Ź„1p„,†8…, ’˧€’Ėi ē ęˆ8…,’˧€’ĖČ ē ęķą,ķ„,….ķ„.– cļh €²ńa €”€’ĖŹaļ€’ĖŹ!jŠ j– ‚`ļ€’ĖŹ`ļ€’ĖŹ i– Č#p…1°Õ3#i!ē ….Ä!ē …-….¢Ä!琀’ĖŹ!ēɀ€€ö¼ŚŌ !ēÉ!!ēɀŖā¼€Æā¼Ū€÷€’¼Ūƒ‚^ŪŚŌ!ēŹ!‚‚dÅ‹“!ēÉ€Œā¼€ā¼Ū€ā¼Ū€—ā¼Ū€˜ā¼Ū€œ€£¼Ū€§ā¼Ū€Øā¼Ū€°€ø¼Ū€¼€Ä¼Ū€Ęā¼Ū€Č€Ļ¼Ū€Ńā¼Ū€Ś€å¼Ū€ģ€ī¼Ū€ó€ö¼Ūƒ‚hŪŚÕ!ēɀ€³ŸÕš!ēŹ!ēɀ ³ń!‚‚pÅ!ē !ēÉċČ!ēɀ/²Ō!‚‚tÅ!ē !ēɣċ§!ēɀ?²Ō!‚‚xÅ!ē !ēɀ/£Ä‹…!ēɀg²Ō!‚‚|Å!ē !ēɀ_£ÄŠd!ēɀo²Ō!‚‚€Å!ē !ēɀg£ÄŠC!ēɀw²Ō$!‚‚„Å!ēŹ!ē !ēɀo£Ä!ē Ċ!‚‚ˆÅ!ē !ēɀx£ÄŠ!ēŹ‹F!ēɋ:!ēŹ!ē Ä!ēɀŠā¼€Ņ€Ō¼Ū€ńā¼ŪŚŌ"!ę €²ń!ē ….£!ę ¢ÄŠ !ē ….!ę ¢Ä‹ņ!ēŹ!ē ċį!ēŹ!ē Ä!ē ċÉ!ēŹ!ē Ä!ē ċ±!ēŹ!ē Ä!ē Ä!ē ċ’!ēŹ!ē Ä!ē Ä!ē Ċt!ēŹ!ē Ä!ēɀ‹ā¼€Õā¼ŪŚŌ !ē ….!ę ¢ÄŠH!ēŹ!ē Ä!ē Ä!ē Ċ*!ēŹ!ē Ä!ę jh "²Ō !ē Ä ķhŠļŠւŒ!ē !ēɀ–°Ź!ē ÉŌ„1–Q#ą+³Ōz†‚8ē`…+Ė×ÉŚŌf†‚8…+Ė×i!y$²Ÿ$³”ŌP!x$¢h$l#Ä …)Ó††8 rpŅ „)Š#Ä"…2”Ō†8$€’Ė×x‘mŠ †8$€’Ė×xm–ē$ą+³Õ…†‚8ē`…+Ė×ÉŚŌq†‚8…+Ė×k#yŒ%²Ÿ%³”ŌY%i#x%¢h%m$Ä …)Ó††8 rpŅ „)Š$Ć8%€’Ė×xj!Ō b˧€’ĖnŠ b˧€’Ėn–Ej…+³ŌO†‚8ē`…+Ė×ÉŚŌ;†‚8…+Ė×i!yh ¢„,„1!x ¢„/††8…/rpŅj„1–Õ" € p"ēą1Ņx†8…,’Ė" p…, ¢„,…,’²ń?…/ķ„/††8…/rpÓ„1 p…,£„,…,²ń†8" …,£…,pŠ„,"i!|h!ē`˧Ä"‚ƒ¹Ō„1–?j…+³Ō[†‚8ē`…+Ė×ÉŌJ†‚8…+Ė×h†‚8瀐…+Ė×i x y!y¢€’¢¢„/„,„1††8…/rpŅj„1„*– #p…1°Õ¶…,’²ń"…/ķ„/††8…/rpÓ„1 p„,†8…,’Ė#p…,¢„,#i…2Ō!jh "²Ō! Ė×! Ė×x‘Ä ķhŠć…*²ń)jh "²Ō! Ė×! Ė×x‘Ä ķhŠć…*£„*Š!!|ŚŌ!|Ņ!~„*Š!~ī„*Š!|Ņ„1–*††-įsį„0į„+„1į„)u†s–.CODELDCB LDCI LCO LDC LLA LDO LAO LDL LDA  LOD UJP UJPL MPI DVI STM MODI CPL CPG CPI CXL CXG CXI RPU CPF LDCN LSL LDE LAE NOP LPR BPT BNOT LOR LAND ADI €¢ž‰ž”žŸžŖžµžĄžĖžÖžįžģž÷’’ ’’#’.’9’D’O’Z’e’p’{’…’’™’£’­’·’Į’Ė’Õ’ß’é’óSBI STL SRO STR LDB NATIVE NAT-INFOINVALID CAP CSP SLOD1 SLOD2 INVALID EQUI NEQI LEQI GEQI LEUSW GEUSW EQPWR LEPWR GEPWR EQBYTE LEBYTE GEBYTE SRS SWAP TRUNC ROUND ADR SBR MPR DVR STO MOV DUP2 £Ęž~ž‰ž”žŸžŖžµžĄžĖžÖžįžģž÷’’ ’’#’.’9’D’O’Z’e’p’{’…’’™’£’­’·’Į’Ė’Õ’ß’é’óADJ STB LDP STP CHK FLT EQREAL LEREAL GEREAL LDM SPR EFJ NFJ FJP FJPL  XJP IXA IXP STE INN UNI INT DIF SIGNAL WAIT ABI NGI DUP1 ABR NGR LNOT  IND INC EQSTR LESTR GESTR ASTR CSTR INCI DECI SCIP1 SCIP2 TJP LDCRL LDRL STRL CNTRL  EXPRL Ēöżśžžžž&ž1ž<žGžRž]žhžsž~ž‰ž”žŸžŖžµžĄžĖžÖžįžģž÷’’ ’’#’.’9’D’O’Z’e’p’{’…’’™’£’­’·’Į’Ė’Õ’ß’é’ó’’’’INVALID ’’’’’’’’’’’’SLDC SLDL SLDO SLLA SSTL SCXG SIND €ņžĆ’Œ’’n’’’’’7’7žĆ’ŒžĆžĆžĆ’’’’ø’žĆ’7’7’’’7’Ö’žĆ’’’O’O’O’7žĆžĆžĆžĆžĆ’Œ’’’ ’7’’’’’’žĆžĆžĆ’ 4ßČ@Ń "ķ„v+ęCĶ7Įć‡*** STRINGOPFILEOPS EXTRAIO  IVDCODE  ?B†U‚€Å†‚€ ėP sš‚€ t pštp–pštpš‚€t pš`t p € Ņóštp–ž$h#ji!"³Ō†€Ż†U`!ĖīŲÉ˧up!īiŠŽ–’ke€ p‡‡£¤j"/²Õ±‡"¢`ri#³Ō:†€Ż€ up†€Żet p†€Żtpke€ p†€Ż"tp†€Ż‚€,t p!‘†€Ż€ up!ldɲŸdɀ~³Ÿ”Ō e#ĖdÉȊe#Ė€-ČdɲŸdɀ~³Ÿ”Ō e#ķĖdÉȊ e#ķĖ€-Č#¢k"ķj‹I’ķ#£Œķj†€Ż€ "up†€Żet p†€Żtp–€štperier†]€’˧£j†‚ ­Ė×xh†€Żtp†€Ż‚€.t p†€Ż†‚*­Ė×t p†€Żtp†€Ż‚€<t p†€Ż tp†€Ż‚€@t p†€Żtp †€Żtp†€Ż‚€St p†€Ż !¢tp†€Ż‚€Wt p†€Ż!Œtp†€Ż‚€_t p†€Ż!!¢tp†€Żtp!"–†€Żtp­Šb†€Ż‚€ft p†€ŻtpŠO†€Ż‚€vt p†€ŻtpŠ9†€Ż­tp†€Ż‚€‰t p†€ŻtpІ€Ż‚€˜t p†€ŻtpŠր”†€Ż‚€§t p†€Ż†‚*®Ė×t p†€Ż‚€¬t p†€Ż­tp†€Ż‚€²t p†€Żtp1ńKš‚€Ėt pš†‚*®Ė×t pš‚€Št pš­tpš‚€Öt pštp–a‡€’Ėdrh °Õø1ńKš‚€ļt pš†‚*­Ė×t pš‚€ūt pš‡tpš‚t pštp†€Żtp†€Ż‚t p†€Ż†‚*­Ė×t p†€Ż‚ t p†€Ż‡tp†€Żtp†€Ż‚t p†€Ż(tp†€Ż‚t p†€Ż'tp†€Ż‚t p†€Ż&&¢tp†€Żtp†€Ż‚$t p†€Ż%tp†€Ż‚*t p†€Ż$tp†€Żtp†€Ż‚0t p†€Ż€ up†€Ż‚6t p†€Żtp„ r‡$҆€Ż‚;t p†€Żtp†€Ż‡tp†€Ż€(up‡‘†€Ż‚Bt p†€Ż„ t p„ɋ݀ up‹å„ɀŠā¼€‹ā¼Ū€Ņ€Õ¼Ū€ńā¼ŪŚŌ‡¤†€Ż‡tp†€Ż€ up‹®„ɀ“ā¼€”ā¼ŪƒEŪŚŌ †€Ż†ƒ ‡€’Ė×t p†€Ż‡tpІ€Ż‡tp†€Ż‡tp†€Ż€ upŠV„ɀ•Ņ †€Ż†ƒ ‡€’Ė×t p†€Ż‡tpІ€݇tp†€Ż‡tp†€Ż‡tp†€Ż€ upŠցM‡ī¤j"‡²Ō„"˧‘"ķjŠė†€Żtp„ ɇ‡²Ÿ Õ†žŠ –£&†]€’˧³ń'†]&퀒˧€’Ė`rŅ %"Œ£ÄŠ%­Œ£ÄŠ%­Œ£Ä–¹)`„*¬P†€Ż`˜t p–+‹štpštp†‚z®Ė×xi!²Ÿ†‚j®Ė×ɰ”Ն†€Żtp‚Tļ †€Ż†‚*®Ė×t p†€Żtp†‚š®Ė×{h!! ¢ī¤i!‡²Ō9›b!up҆€Żbt pŠš‚bt pštp!ķiŠĄ†€ŻtpŠš‚ot pštp– štpštpr Ōg†€Żtp‚|ļ †€Ż†‚*®Ė×t p†€Żtpm`r `‚Ž¹ń)†€Ż$tp†€Ż‚’t p†€Ż`t p†€ŻtpŠm%ŌŊš‚”t pštp– f štpštpr Õ†€Żtp‚©ļ †€Ż†‚*®Ė×t p†€Żtp`r †€Ż`t p$‹Ķ‚¹ļ ‹Ę†€Ż‚¾t p†€Ż%tp‹­†€Ż‚Ćt p†€Ż%tp†€Ż‚Īt p†€Ż&tp‹~†€Ż‚Õt p†€Ż%tp†€Ż‚ßt p†€Ż&tp‹O$Š$‚åļ Š‚źļ Š‚ļļ Š ‚ōļ Šցł†€Ż‚’t p†€Ż%tp†€Ż‚‚t p†€Ż&tp†€Ż‚‚ t p'Ō ‚‚ļ Š‚‚ļ ‹Ö$Š$‚‚ļ Š‚‚ļ Š‚‚ļ Š ‚‚#ļ Šւ(‚‚.ļ %Š‚‚3ļ Š‚‚6ļ Š ‚‚9ļ Šւ;‚‚@ļ †€Ż&tp$҆€Ż‚‚Dt p†€Ż'tp&¤ І€Ż`Ė×xtp&ī¤ ¤ )¤ ¤ *+²Ō.(³Ō†€Żtp¤ `r Š(ķ¤ †€Ż`*Ė×xtp*ķ¤ ŠĶŠւI†€Żtp$°ÕžŠš‚‚Wt pštp– ¾štpštpš‚‚ft pš­tpš‚‚kt pš†‚*­Ė×t pštpš‚‚wt pštpš‚‚“t pš`t p ‹Äļ†]€’˧kj"#²Ō"ˆļ †]"€’˧­ļ"ķjŠä‘‹™ ‹”ļ‹‹Š‹… €0£iš`t p ƒ‚“ŚŌ$! Œ ¢€0£iš`t p ƒ‚øŚŌ ! Œ ¢€0£ihštp!²Ÿ!­²”Ō&j"†]€’˧²†]"€’˧!±”Ō"ķjŠä"ˆļ Ц!­ļ‘Šւ¼ ƒƒŚÕµžštp– Ņ)`„*¬P­`˜t p–+ …ƒ h‚ƒ ļ`Ė§Ó ‚ƒ ļŠ‚ƒļ­‚ƒ t p­…‚Śtp­tp–®#tp#tp‚ƒ&#‚ƒEt p#tp#€ € number of procs in segmentIO error on filee’›’±’Ē’ēsegment procedure0 not available in P-Code form for disassembly....segment procedure0 not available in P-Code form for disassembly.... Disassembling segment procedure  .... Segment: Procedure::Block:: Block offset: Seg offset: Data size:: Exit IC:: OffsetHex codee exit code::): ’’’’’R’ŖInterface text for segment trouble reading interfaceno interface text to list#Segment reference list for segment : )no segment reference list in this segmentLinker information for segment  EOFMARKK CONSTDEF PUBLDEF baseoffset== pubdataseg== GLOBDEF homeproc== icoffset== EXTPROCC EXTFUNCC SEPPROCC SEPFUNCC ’Ł’ā’ė’ō srcproc= nparams= koolbit=TRUEEFALSE GLOBREFF PUBLREFF PRIVREFF CONSTREF’Ł’ā’ė’ō format==WORDDBYTEEBIG’ā’ė’ō nrefs= nwords== ž0’*’*’*’*ž‚žSž:ž±ž±ž±ž±no linker information to list There are procedures in segment 7Procedure Guide: A(ll), #(of procedure), L(inker info),@ C(onstant pool), S(egment references), I(nterface text), Q(uit))’’0s’{’{’{’{’{’{’{’{’{’{’9’l’g’v’q’9’l’g’v’qSEX: LEASTMOSTT$ significant byte first NEXT PAGE::HI_SEG_NUM, {number of segments in file} >SEG_REFS, {segment reference list size} >DATA_SIZE:INTEGER); {data size} (PROG_NAME:NAME_TYPE); {parent segment's name} :END; .NEXT_PAGE:INTEGER; {next page of dictionary} .FILLER:  ARRAY[0..6] OF INTEGER; {reserved for future use} .COPY_NOTE:STRING[77]; {copyright notice} .SEX: INTEGER; {file sex} ,END; ( ({procedure descriptor record} ,PROCREC=RECORD 0BLOCK, {block number and} 0BLK_OFFSET, {byte offset of first pcode in procedure} 0SEG_OFFSET, {word offset in segment of first pcode} 0DATA_SEG_SIZE, {data segment size} 0EXIT_IC:INTEGER; {byte offset in segment of exit pcode(s)} .END; . ({pcode descriptor record} ,PCODEREC=PACKED RECORD 0NAME :NAMETYPE; {pcode name} 0PCODE :BYTERANGE; {byte value of pcode} 0OPTYPE :PCODETYPE; {describes # of operands, if valid} 0END_OF_PROC :BOOLEAN; {does this pcode end procedure?} 0BYTE_ARRY {the literal pcode sequence} <:PACKED ARRAY [0..7] OF BYTERANGE; 0NUM_BYTES, {number of bytes parsed} 0PROC_OFFSET, {proc offset of pcode in bytes} 0SEG_OFFSET, {seg offset of pcode in bytes} 0OPERAND1, {operands to pcode as needed} 0OPERAND2, 0OPERAND3 :INTEGER; .END;  (SEG_REF_REC=RECORD 0SEG_NAME:NAMETYPE; 0SEG_NUM:INTEGER; .END; . (LITYPES=(EOFMARK,GLOBREF,PUBLREF,PRIVREF,CONSTREF,GLOBDEF,PUBLDEF, 0CONSTDEF,EXTPROC,EXTFUNC,SEPPROC,SEPFUNC); 0 (LIENTRY=RECORD CASE BOOLEAN OF 0TRUE:(WRDS:ARRAY[0..7] OF INTEGER); 0FALSE:(NAME:PACKED ARRAY[0..7] OF CHAR; 7CASE LITYPE:LITYPES OF 9GLOBREF,PUBLREF,PRIVREF,CONSTREF: ;(FORMAT:(WORD,BYTE,BIG); (TEXT_SIZE, {size in blocks of interface text} >HI_SEG_NUM, {number of segments in file} >SEG_REFS, {segment reference list size} >DATA_SIZE:INTEGER); {data size} (PROG_NAME:NAME_TYPE); {parent segment's name} :END; .NEXT_PAGE:INTEGER; {next page of dictionary} .FILLER:  ARRAY[0..6] OF INTEGER; {reserved for future use} .COPY_NOTE:STRING[77]; {copyright notice} .SEX: INTEGER; {file sex} ,END; ( ({procedure descriptor record} ,PROCREC=RECORD 0BLOCK, {block number and} 0BLK_OFFSET, {byte offset of first pcode in procedure} 0SEG_OFFSET, {word offset in segment of first pcode} 0DATA_SEG_SIZE, {data segment size} 0EXIT_IC:INTEGER; {byte offset in segment of exit pcode(s)} .END; . ({pcode descriptor record} ,PCODEREC=PACKED RECORD 0NAME :NAMETYPE; {pcode name} 0PCODE :BYTERANGE; {byte value of pcode} 0OPTYPE :PCODETYPE; {describes # of operands, if valid} 0END_OF_PROC :BOOLEAN; {does this pcode end procedure?} 0BYTE_ARRY {the literal pcode sequence}  <:PACKED ARRAY [0..7] OF BYTERANGE; 0NUM_BYTES, {number of bytes parsed} 0PROC_OFFSET, {proc offset of pcode in bytes} 0SEG_OFFSET, {seg offset of pcode in bytes} 0OPERAND1, {operands to pcode as needed} 0OPERAND2, 0OPERAND3 :INTEGER; .END;  (SEG_REF_REC=RECORD 0SEG_NAME:NAMETYPE; 0SEG_NUM:INTEGER; .END; . (LITYPES=(EOFMARK,GLOBREF,PUBLREF,PRIVREF,CONSTREF,GLOBDEF,PUBLDEF, 0CONSTDEF,EXTPROC,EXTFUNC,SEPPROC,SEPFUNC); 0 (LIENTRY=RECORD CASE BOOLEAN OF 0TRUE:(WRDS:ARRAY[0..7] OF INTEGER); 0FALSE:(NAME:PACKED ARRAY[0..7] OF CHAR; 7CASE LITYPE:LITYPES OF 9GLOBREF,PUBLREF,PRIVREF,CONSTREF: ;(FORMAT:(WORD,BYTE,BIG); ÅŠ ­‚BÅŠցF– ­‹­‚lÅ‹ū­‚pŋ𭂁tŋ孂xŋڭ‚|ŋϭ‚€Å‹Ä­‚„Å‹¹­‚ˆÅ‹®­‚ŒÅ‹£­‚Å‹˜­‚”Å‹­‚˜Å‹‚­‚œÅ‹w­‚ Å‹l­‚¤Å‹a­‚ØÅ‹V­‚¬Å‹K­‚°Å‹@­‚“Å‹5­‚øÅ‹*­‚¼Å‹­‚ĄÅ‹­‚ÄÅ‹ ­‚ČÅ‹ž­‚Ģŋ󭂁ŠÅ‹č­‚Ōŋݭ‚Ųŋҭ‚Üŋǭ‚ąÅ‹¼­‚äÅ‹±­‚čÅ‹¦­‚ģÅ‹›­‚šÅ‹­‚ōÅ‹…­‚ųÅŠ{­‚üÅŠq­‚‚ÅŠg­‚‚ÅŠ]­‚‚ÅŠS­‚‚ ÅŠI­‚‚ÅŠ?­‚‚ÅŠ5­‚‚ÅŠ+­‚‚ÅŠ!­‚‚ ÅŠ­‚‚$ÅŠ ­‚‚(ÅŠւ,– ŗ!€¢²ŌŠ !€Ę²ŌŠ– 6­h…,’²ń0…/ķ„/††8…/rpÓ ēŹ ē Ź„1p„,†8…,’˧€’Ėi ē ęˆ8…,’˧€’ĖČ ē ęķą,ķ„,….ķ„.– cļh €²ńa €”€’ĖŹaļ€’ĖŹ!jŠ j– ‚`ļ€’ĖŹ`ļ€’ĖŹ i– Č#p…1°Õ3#i!ē ….Ä!ē …-….¢Ä!琀’ĖŹ!ēɀ€€ö¼ŚŌ !ēÉ!!ēɀŖā¼€Æā¼Ū€÷€’¼Ūƒ‚^ŪŚŌ!ēŹ!‚‚dÅ‹“!ēÉ€Œā¼€ā¼Ū€ā¼Ū€—ā¼Ū€˜ā¼Ū€œ€£¼Ū€§ā¼Ū€Øā¼Ū€°€ø¼Ū€¼€Ä¼Ū€Ęā¼Ū€Č€Ļ¼Ū€Ńā¼Ū€Ś€å¼Ū€ģ€ī¼Ū€ó€ö¼Ūƒ‚hŪŚÕ!ēɀ€³ŸÕš!ēŹ!ēɀ ³ń!‚‚pÅ!ē !ēÉċČ!ēɀ/²Ō!‚‚tÅ!ē !ēɣċ§!ēɀ?²Ō!‚‚xÅ!ē !ēɀ/£Ä‹…!ēɀg²Ō!‚‚|Å!ē !ēɀ_£ÄŠd!ēɀo²Ō!‚‚€Å!ē !ēɀg£ÄŠC!ēɀw²Ō$!‚‚„Å!ēŹ!ē !ēɀo£Ä!ē Ċ!‚‚ˆÅ!ē !ēɀx£ÄŠ!ēŹ‹F!ēɋ:!ēŹ!ē Ä!ēɀŠā¼€Ņ€Ō¼Ū€ńā¼ŪŚŌ"!ę €²ń!ē ….£!ę ¢ÄŠ !ē ….!ę ¢Ä‹ņ!ēŹ!ē ċį!ēŹ!ē Ä!ē ċÉ!ēŹ!ē Ä!ē ċ±!ēŹ!ē Ä!ē Ä!ē ċ’!ēŹ!ē Ä!ē Ä!ē Ċt!ēŹ!ē Ä!ēɀ‹ā¼€Õā¼ŪŚŌ !ē ….!ę ¢ÄŠH!ēŹ!ē Ä!ē Ä!ē Ċ*!ēŹ!ē Ä!ę jh "²Ō !ē Ä ķhŠļŠւŒ!ē !ēɀ–°Ź!ē ÉŌ„1–Q#ą+³Ōz†‚8ē`…+Ė×ÉŚŌf†‚8…+Ė×i!y$²Ÿ$³”ŌP!x$¢h$l#Ä …)Ó††8 rpŅ „)Š#Ä"…2”Ō†8$€’Ė×x‘mŠ †8$€’Ė×xm–ē$ą+³Õ…†‚8ē`…+Ė×ÉŚŌq†‚8…+Ė×k#yŒ%²Ÿ%³”ŌY%i#x%¢h%m$Ä …)Ó††8 rpŅ „)Š$Ć8%€’Ė×xj!Ō b˧€’ĖnŠ b˧€’Ėn–Ej…+³ŌO†‚8ē`…+Ė×ÉŚŌ;†‚8…+Ė×i!yh ¢„,„1!x ¢„/††8…/rpŅj„1–Õ" € p"ēą1Ņx†8…,’Ė" p…, ¢„,…,’²ń?…/ķ„/††8…/rpÓ„1 p…,£„,…,²ń†8" …,£…,pŠ„,"i!|h!ē`˧Ä"‚ƒ¹Ō„1–?j…+³Ō[†‚8ē`…+Ė×ÉŌJ†‚8…+Ė×h†‚8瀐…+Ė×i x y!y¢€’¢¢„/„,„1††8…/rpŅj„1„*– #p…1°Õ¶…,’²ń"…/ķ„/††8…/rpÓ„1 p„,†8…,’Ė#p…,¢„,#i…2Ō!jh "²Ō! Ė×! Ė×x‘Ä ķhŠć…*²ń)jh "²Ō! Ė×! Ė×x‘Ä ķhŠć…*£„*Š!!|ŚŌ!|Ņ!~„*Š!~ī„*Š!|Ņ„1–*††-įsį„0į„+„1į„)u†s–.CODELDCB LDCI LCO LDC LLA LDO LAO LDL LDA  LOD UJP UJPL MPI DVI STM MODI CPL CPG CPI CXL CXG CXI RPU CPF LDCN"  LSL LDE LAE NOP LPR BPT BNOT LOR LAND ADI €¢ž‰ž”žŸžŖžµžĄžĖžÖžįžģž÷’’ ’’#’.’9’D’O’Z’e’p’{’…’’™’£’­’·’Į’Ė’Õ’ß’é’óSBI STL SRO STR LDB NATIVE NAT-INFOINVALID CAP CSP SLOD1 SLOD2 INVALID EQUI NEQI LEQI GEQI LEUSW GEUSW EQPWR LEPWR GEPWR EQBYTE LEBYTE GEBYTE SRS SWAP TRUNC ROUND ADR SBR MPR DVR STO MOV DUP2 £Ęž~ž‰ž”žŸžŖžµžĄžĖžÖžįžģž÷’’ ’’#’.’9’D’O’Z’e’p’{’…’’™’£’­’·’Į’Ė’Õ’ß’é’óADJ STB LDP STP CHK FLT EQREAL LEREAL GEREAL LDM SPR EFJ NFJ FJP FJPL  XJP IXA IXP STE INN UNI INT DIF SIGNAL WAIT ABI NGI DUP1 ABR NGR LNOT  IND INC EQSTR LESTR GESTR ASTR CSTR INCI DECI SCIP1 SCIP2 TJP LDCRL LDRL STRL CNTRL  EXPRL Ēöżśžžžž&ž1ž<žGžRž]žhžsž~ž‰ž”žŸžŖžµžĄžĖžÖžįžģž÷’’ ’’#’.’9’D’O’Z’e’p’{’…’’™’£’­’·’Į’Ė’Õ’ß’é’ó’’’’INVALID ’’’’’’’’’’’’SLDC SLDL SLDO SLLA SSTL SCXG SIND €ņžĆ’Œ’’n’’’’’7’7žĆ’ŒžĆžĆžĆ’’’’ø’žĆ’7’7’’’7’Ö’žĆ’’’O’O’O’7žĆžĆžĆžĆžĆ’Œ’’’’7’’’’’’žĆžĆžĆ’ 4ßČ@Ń "ķ„v+ęCĶ7Įć‡*** STRINGOPFILEOPS EXTRAIO   µ IVMDCODEIVDCODE  €€7   “IVMDCODE™6"i`aɀ’ĖŹ`aɀ’ĖŹ k–b†8٤i!‡²Ōb!€’Ė×b!€’Ė×x‘Ä!ķiŠß€`€¤i!‡²Ōb!€’Ė×b!€’Ė×x‘Ä!ķiŠßb­p­¤‡ē€Š‡ꀩ‘Ĥi!‡²ŌY‡ē`!Ė×ÉŚŌA‡瀐!Ėפ‡‡x‘ćē‡y‘ćē‡z‘ćē‡{‘Ä!ķiŠ –~įk"h†3 Ė×x³ŌJ†3 Ė×x…)Ó††8†3 Ė×xrÓp†3 Ė×x„)†8!p!ꀒӐ"k–Āįjį„+„1…0!Ó!€Oˆ‚8‘„+Š!„+…+³Ō…)„0…+j`‘°„2–jV„.„W¬P†s†„.˜spÓ†jb„.˜€Ptb‚€€Utb˜s†3 €’ppŅJih††‚8 rŅ+†3!Ė× Ƃ8ꀒÓ †‚8ꀩ‘hІ‚8ꀩh!ķiŠh °!²Ÿ Ōŗp¤Yį„0į„+„1į„)–X• ¤ …+³Õ†‚8ē`…+Ė×ÉŚÕg‘m%g‘h'Õó„ p ¤ l$‡ ²Ō%‡ $€’Ė$€’ĖȄ $€’Ė×%$£g‘Ä$ķlŠŌj’ik" ¤ l$‡ ²Ō/„ $€’Ė×x!³Ÿ„ $€’Ė×x²Ÿ”Ō „ $€’Ė×xi$k$ķlŠŹ#²ńQ#‡ "€’˧ÓB‡ #€’˧n‡ #€’ˇ "€’˧€’ĖȄ #€’Ėׄ "€’Ė×xだ"€’Ė&€’ĖČ"ķj#°" ²Ÿ Õ]’‡ €’Ė"ĖČ ¤ – |& p¤ …+³ÕІ‚8ē`…+Ė×ÉŚÕød‘k#d‘h$Õ”'²Ÿ' ²”Ց&m#'£d‘j"²Ÿ"#³Ÿ”Ōv"ķŒ„-†‚8…+Ė×x…-¢„/…-„,„.%ē…/Ä%ē…,Ä%ē"ķÄ%"īd‘Ä%x""¢³ń%""¢Ä%ē"d‘Ɔ8…/rpҤ „1Ф Ф Ф Ф Ф –ž­‹t­‚€Å‹l­‚€ Å‹a­‚€ Å‹V­‚€Å‹K­‚€Å‹@­‚€Å‹5­‚€Å‹*­‚€!Å‹­‚€%Å‹­‚€)Å‹ ­‚€-Å‹ž# ­‚€1ŋ󭂀5ŋ譂€9ŋݭ‚€=ŋҭ‚€Aŋǭ‚€EÅ‹¼­‚€IÅ‹±­‚€MÅ‹¦­‚€QÅ‹›­‚€UÅ‹­‚€YÅ‹…­‚€]ÅŠ{­‚€aÅŠq­‚€eÅŠg­‚€iÅŠ]­‚€mÅŠS­‚€qÅŠI­‚€uÅŠ?­‚€yÅŠ5­‚€}ÅŠ+­‚€ÅŠ!­‚€…ÅŠ­‚€‰ÅŠ ­‚€ÅŠր‘–‹­‹­‚€¶Å‹w­‚€ŗÅ‹l­‚€¾Å‹a­‚€ĀÅ‹V­‚€ĘÅ‹K­‚€ŹÅ‹@­‚€ĪÅ‹5­‚€ŅÅ‹*­‚€ÖÅ‹­‚€ŚÅ‹­‚€ŽÅ‹ ­‚€āÅ‹ž­‚€ęŋ󭂀źÅ‹č­‚€īŋݭ‚€ņŋҭ‚€öŋǭ‚€śÅ‹¼­‚€žÅ‹±­‚Å‹¦­‚Å‹›­‚ Å‹­‚Å‹…­‚ÅŠ{­‚ÅŠq­‚ÅŠg­‚ÅŠ]­‚"ÅŠS­‚&ÅŠI­‚*ÅŠ?­‚.ÅŠ5­‚2ÅŠ+­‚6ÅŠ!­‚:ÅŠ­‚>ÅŠ ­‚BÅŠցF– ­‹­‚lÅ‹ū­‚pŋ𭂁tŋ孂xŋڭ‚|ŋϭ‚€Å‹Ä­‚„Å‹¹­‚ˆÅ‹®­‚ŒÅ‹£­‚Å‹˜­‚”Å‹­‚˜Å‹‚­‚œÅ‹w­‚ Å‹l­‚¤Å‹a­‚ØÅ‹V­‚¬Å‹K­‚°Å‹@­‚“Å‹5­‚øÅ‹*­‚¼Å‹­‚ĄÅ‹­‚ÄÅ‹ ­‚ČÅ‹ž­‚Ģŋ󭂁ŠÅ‹č­‚Ōŋݭ‚Ųŋҭ‚Üŋǭ‚ąÅ‹¼­‚äÅ‹±­‚čÅ‹¦­‚ģÅ‹›­‚šÅ‹­‚ōÅ‹…­‚ųÅŠ{­‚üÅŠq­‚‚ÅŠg­‚‚ÅŠ]­‚‚ÅŠS­‚‚ ÅŠI­‚‚ÅŠ?­‚‚ÅŠ5­‚‚ÅŠ+­‚‚ÅŠ!­‚‚ ÅŠ­‚‚$ÅŠ ­‚‚(ÅŠւ,– ŗ!€¢²ŌŠ !€Ę²ŌŠ– 6­h…,’²ń0…/ķ„/††8…/rpÓ ēŹ ē Ź„1p„,†8…,’˧€’Ėi ē ęˆ8…,’˧€’ĖČ ē ęķą,ķ„,….ķ„.– cļh €²ńa €”€’ĖŹaļ€’ĖŹ!jŠ j– ‚`ļ€’ĖŹ`ļ€’ĖŹ i– Č#p…1°Õ3#i!ē ….Ä!ē …-….¢Ä!琀’ĖŹ!ēɀ€€ö¼ŚŌ !ēÉ!!ēɀŖā¼€Æā¼Ū€÷€’¼Ūƒ‚^ŪŚŌ!ēŹ!‚‚dÅ‹“!ēÉ€Œā¼€ā¼Ū€ā¼Ū€—ā¼Ū€˜ā¼Ū€œ€£¼Ū€§ā¼Ū€Øā¼Ū€°€ø¼Ū€¼€Ä¼Ū€Ęā¼Ū€Č€Ļ¼Ū€Ńā¼Ū€Ś€å¼Ū€ģ€ī¼Ū€ó€ö¼Ūƒ‚hŪŚÕ!ēɀ€³ŸÕš!ēŹ!ēɀ ³ń!‚‚pÅ!ē !ēÉċČ!ēɀ/²Ō!‚‚tÅ!ē !ēɣċ§!ēɀ?²Ō!‚‚xÅ!ē !ēɀ/£Ä‹…!ēɀg²Ō!‚‚|Å!ē !ēɀ_£ÄŠd!ēɀo²Ō!‚‚€Å!ē !ēɀg£ÄŠC!ēɀw²Ō$!‚‚„Å!ēŹ!ē !ēɀo£Ä!ē Ċ!‚‚ˆÅ!ē !ēɀx£ÄŠ!ēŹ‹F!ēɋ:!ēŹ!ē Ä!ēɀŠā¼€Ņ€Ō¼Ū€ńā¼ŪŚŌ"!ę €²ń!ē ….£!ę ¢ÄŠ !ē ….!ę ¢Ä‹ņ!ēŹ!ē ċį!ēŹ!ē Ä!ē ċÉ!ēŹ!ē Ä!ē ċ±!ēŹ!ē Ä!ē Ä!ē ċ’!ēŹ!ē Ä!ē Ä!ē Ċt!ēŹ!ē Ä!ēɀ‹ā¼€Õā¼ŪŚŌ !ē ….!ę ¢ÄŠH!ēŹ!ē Ä!ē Ä!ē Ċ*!ēŹ!ē Ä!ę jh "²Ō !ē Ä ķhŠļŠւŒ!ē !ēɀ–°Ź!ē ÉŌ„1–Q#ą+³Ōz†‚8ē`…+Ė×ÉŚŌf†‚8…+Ė×i!y$²Ÿ$³”ŌP!x$¢h$l#Ä …)Ó††8 rpŅ „)Š#Ä"…2”Ō†8$€’Ė×x‘mŠ †8$€’Ė×xm–ē$ą+³Õ…†‚8ē`…+Ė×ÉŚŌq†‚8…+Ė×k#yŒ%²Ÿ%³”ŌY%i#x%¢h%m$Ä …)Ó††8 rpŅ „)Š$Ć8%€’Ė×xj!Ō b˧€’ĖnŠ b˧€’Ėn–Ej…+³ŌO†‚8ē`…+Ė×ÉŚŌ;†‚8…+Ė×i!yh ¢„,„1!x ¢„/††8…/rpŅj„1–Õ" € p"ēą1Ņx†8…,’Ė" p…, ¢„,…,’²ń?…/ķ„/††8…/rpÓ„1 p…,£„,…,²ń†8" …,£…,pŠ„,"i!|h!ē`˧Ä"‚ƒ¹Ō„1–?j…+³Ō[†‚8ē`…+Ė×ÉŌJ†‚8…+Ė×h†‚8瀐…+Ė×i x y!y¢€’¢¢„/„,„1††8…/rpŅj„1„*– #p…1°Õ¶…,’²ń"…/ķ„/††8…/rpÓ„1 p„,†8…,’Ė#p…,¢„,#i…2Ō!jh "²Ō! Ė×! Ė×x‘Ä ķhŠć…*²ń)jh "²Ō! Ė×! Ė×x‘Ä ķhŠć…*£„*Š!!|ŚŌ!|Ņ!~„*Š!~ī„*Š!|Ņ„1–*††-įsį„0į„+„1į„)u†s–.CODELDCB LDCI LCO LDC LLA LDO LAO LDL LDA  LOD UJP UJPL MPI DVI STM MODI CPL CPG CPI CXL CXG CXI RPU CPF LDCN$  LSL LDE LAE NOP LPR BPT BNOT LOR LAND ADI €¢ž‰ž”žŸžŖžµžĄžĖžÖžįžģž÷’’ ’’#’.’9’D’O’Z’e’p’{’…’’™’£’­’·’Į’Ė’Õ’ß’é’óSBI STL SRO STR LDB NATIVE NAT-INFOINVALID CAP CSP SLOD1 SLOD2 INVALID EQUI NEQI LEQI GEQI LEUSW GEUSW EQPWR LEPWR GEPWR EQBYTE LEBYTE GEBYTE SRS SWAP TRUNC ROUND ADR SBR MPR DVR STO MOV DUP2 £Ęž~ž‰ž”žŸžŖžµžĄžĖžÖžįžģž÷’’ ’’#’.’9’D’O’Z’e’p’{’…’’™’£’­’·’Į’Ė’Õ’ß’é’óADJ STB LDP STP CHK FLT EQREAL LEREAL GEREAL LDM SPR EFJ NFJ FJP FJPL  XJP IXA IXP STE INN UNI INT DIF SIGNAL WAIT ABI NGI DUP1 ABR NGR LNOT  IND INC EQSTR LESTR GESTR ASTR CSTR INCI DECI SCIP1 SCIP2 TJP LDCRL LDRL STRL CNTRL  EXPRL Ēöżśžžžž&ž1ž<žGžRž]žhžsž~ž‰ž”žŸžŖžµžĄžĖžÖžįžģž÷’’ ’’#’.’9’D’O’Z’e’p’{’…’’™’£’­’·’Į’Ė’Õ’ß’é’ó’’’’INVALID ’’’’’’’’’’’’SLDC SLDL SLDO SLLA SSTL SCXG SIND €ņžĆ’Œ’’n’’’’’7’7žĆ’ŒžĆžĆžĆ’’’’ø’žĆ’7’7’’’7’Ö’žĆ’’’O’O’O’7žĆžĆžĆžĆžĆ’Œ’’’’7’’’’’’žĆžĆžĆ’ 4ßČ@Ń "ķ„v+ęCĶ7Įć‡*** STRINGOPFILEOPS EXTRAIO  IVDCODE  ?B†U‚€Å†‚€ ėP sš‚€ t pštp–pštpš‚€t pš`t p € Ņóštp–ž$h#ji!"³Ō†€Ż†U`!ĖīŲÉ˧up!īiŠŽ–’ke€ p‡‡£¤j"/²Õ±‡"¢`ri#³Ō:†€Ż€ up†€Żet p†€Żtpke€ p†€Ż"tp†€Ż‚€,t p!‘†€Ż€ up!ldɲŸdɀ~³Ÿ”Ō e#ĖdÉȊe#Ė€-ČdɲŸdɀ~³Ÿ”Ō e#ķĖdÉȊ e#ķĖ€-Č#¢k"ķj‹I’ķ#£Œķj†€Ż€ "up†€Żet p†€Żtp–€štperier†]€’˧£j†‚ ­Ė×xh†€Żtp†€Ż‚€.t p†€Ż†‚*­Ė×t p†€Żtp†€Ż‚€<t p†€Ż tp†€Ż‚€@t p†€Żtp †€Żtp†€Ż‚€St p†€Ż !¢tp†€Ż‚€Wt p†€Ż!Œtp†€Ż‚€_t p†€Ż!!¢tp†€Żtp!"–†€Żtp­Šb†€Ż‚€ft p†€ŻtpŠO†€Ż‚€vt p†€ŻtpŠ9†€Ż­tp†€Ż‚€‰t p†€ŻtpІ€Ż‚€˜t p†€ŻtpŠր”†€Ż‚€§t p†€Ż†‚*®Ė×t p†€Ż‚€¬t p†€Ż­tp†€Ż‚€²t p†€Żtp1ńKš‚€Ėt pš†‚*®Ė×t pš‚€Št pš­tpš‚€Öt pštp–a‡€’Ėdrh °Õø1ńKš‚€ļt pš†‚*­Ė×t pš‚€ūt pš‡tpš‚t pštp†€Żtp†€Ż‚t p†€Ż†‚*­Ė×t p†€Ż‚ t p†€Ż‡tp†€Żtp†€Ż‚t p†€Ż(tp†€Ż‚t p†€Ż'tp†€Ż‚t p†€Ż&&¢tp†€Żtp†€Ż‚$t p†€Ż%tp†€Ż‚*t p†€Ż$tp†€Żtp†€Ż‚0t p†€Ż€ up†€Ż‚6t p†€Żtp„ r‡$҆€Ż‚;t p†€Żtp†€Ż‡tp†€Ż€(up‡‘†€Ż‚Bt p†€Ż„ t p„ɋ݀ up‹å„ɀŠā¼€‹ā¼Ū€Ņ€Õ¼Ū€ńā¼ŪŚŌ‡¤†€Ż‡tp†€Ż€ up‹®„ɀ“ā¼€”ā¼ŪƒEŪŚŌ †€Ż†ƒ ‡€’Ė×t p†€Ż‡tpІ€Ż‡tp†€Ż‡tp†€Ż€ upŠV„ɀ•Ņ †€Ż†ƒ ‡€’Ė×t p†€Ż‡tpІ€݇tp†€Ż‡tp†€Ż‡tp†€Ż€ upŠցM‡ī¤j"‡²Ō„"˧‘"ķjŠė†€Żtp„ ɇ‡²Ÿ Õ†žŠ –£&†]€’˧³ń'†]&퀒˧€’Ė`rŅ %"Œ£ÄŠ%­Œ£ÄŠ%­Œ£Ä–¹)`„*¬P†€Ż`˜t p–+‹štpštp†‚z®Ė×xi!²Ÿ†‚j®Ė×ɰ”Ն†€Żtp‚Tļ †% €Ż†‚*®Ė×t p†€Żtp†‚š®Ė×{h!! ¢ī¤i!‡²Ō9›b!up҆€Żbt pŠš‚bt pštp!ķiŠĄ†€ŻtpŠš‚ot pštp– štpštpr Ōg†€Żtp‚|ļ †€Ż†‚*®Ė×t p†€Żtpm`r `‚Ž¹ń)†€Ż$tp†€Ż‚’t p†€Ż`t p†€ŻtpŠm%ŌŊš‚”t pštp– f štpštpr Õ†€Żtp‚©ļ †€Ż†‚*®Ė×t p†€Żtp`r †€Ż`t p$‹Ķ‚¹ļ ‹Ę†€Ż‚¾t p†€Ż%tp‹­†€Ż‚Ćt p†€Ż%tp†€Ż‚Īt p†€Ż&tp‹~†€Ż‚Õt p†€Ż%tp†€Ż‚ßt p†€Ż&tp‹O$Š$‚åļ Š‚źļ Š‚ļļ Š ‚ōļ Šցł†€Ż‚’t p†€Ż%tp†€Ż‚‚t p†€Ż&tp†€Ż‚‚ t p'Ō ‚‚ļ Š‚‚ļ ‹Ö$Š$‚‚ļ Š‚‚ļ Š‚‚ļ Š ‚‚#ļ Šւ(‚‚.ļ %Š‚‚3ļ Š‚‚6ļ Š ‚‚9ļ Šւ;‚‚@ļ †€Ż&tp$҆€Ż‚‚Dt p†€Ż'tp&¤ І€Ż`Ė×xtp&ī¤ ¤ )¤ ¤ *+²Ō.(³Ō†€Żtp¤ `r Š(ķ¤ †€Ż`*Ė×xtp*ķ¤ ŠĶŠւI†€Żtp$°ÕžŠš‚‚Wt pštp– ¾štpštpš‚‚ft pš­tpš‚‚kt pš†‚*­Ė×t pštpš‚‚wt pštpš‚‚“t pš`t p ‹Äļ†]€’˧kj"#²Ō"ˆļ †]"€’˧­ļ"ķjŠä‘‹™ ‹”ļ‹‹Š‹… €0£iš`t p ƒ‚“ŚŌ$! Œ ¢€0£iš`t p ƒ‚øŚŌ ! Œ ¢€0£ihštp!²Ÿ!­²”Ō&j"†]€’˧²†]"€’˧!±”Ō"ķjŠä"ˆļ Ц!­ļ‘Šւ¼ ƒƒŚÕµžštp– Ņ)`„*¬P­`˜t p–+ …ƒ h‚ƒ ļ`Ė§Ó ‚ƒ ļŠ‚ƒļ­‚ƒt p­…‚Śtp­tp–®#tp#tp‚ƒ&#‚ƒEt p#tp#€ € number of procs in segmentIO error on filee’›’±’Ē’ēsegment procedure0 not available in P-Code form&  for disassembly....segment procedure0 not available in P-Code form for disassembly.... Disassembling segment procedure  .... Segment: Procedure::Block:: Block offset: Seg offset: Data size:: Exit IC:: OffsetHex codee exit code::): ’’’’’R’ŖInterface text for segment trouble reading interfaceno interface text to list#Segment reference list for segment : )no segment reference list in this segmentLinker information for segment  EOFMARKK CONSTDEF PUBLDEF baseoffset== pubdataseg== GLOBDEF homeproc== icoffset== EXTPROCC EXTFUNCC SEPPROCC SEPFUNCC ’Ł’ā’ė’ō srcproc= nparams= koolbit=TRUEEFALSE GLOBREFF PUBLREFF PRIVREFF CONSTREF’Ł’ā’ė’ō format==WORDDBYTEEBIG’ā’ė’ō nrefs= nwords== ž0’*’*’*’*ž‚žSž:ž±ž±ž±ž±no linker information to list There are procedures in segment 7Procedure Guide: A(ll), #(of procedure), L(inker info),@ C(onstant pool), S(egment references), I(nterface text), Q(uit))’’0s’{’{’{’{’{’{’{’{’{’{’9’l’g’v’q’9’l’g’v’qSEX: LEASTMOSTT$ significant byte first NEXT PAGE:: åååååååååååååååååååååååååå? åååååååååååååååååååååååååå@ ååååååååååååååååååååååååååA ååååååååååååååååååååååååååB ååååååååååååååååååååååååååC ååååååååååååååååååååååååååD ååååååååååååååååååååååååååE ååååååååååååååååååååååååååF ååååååååååååååååååååååååååG ååååååååååååååååååååååååååH ååååååååååååååååååååååååååI ååååååååååååååååååååååååååJ ååååååååååååååååååååååååååK ååååååååååååååååååååååååååL åååååååååååååååååååååååååå