p@9 %  L$MUST BOOT FROM SLOT 4, 5 OR 6CJJJJ \  i=l x ? L N9 +i C* ɭЅ?0ȱ L Ѕ?iȱi L CPlLјJ 8彐.mĿ"Š>?( _֮ˍL հ˩($8` Ґh Hǹxhx N`8Ύ߽0|ϩHhHh ӈ ө ө ӘVYԦΝYԮߝꪽԦ ө  Ͱ()I يJJJ(jǩF؅G(  Hֈ k( F G  Wj0 خ $Ӱ4 xH ߩ`Ǚx kh k@(LYҭH͍h (ͥpi)ͥˤ˹,hhJiЍ L֢ hLh )hJ¥jJJhhihhhhhhb\8ſƅhx Щ&'H(f'ꮭ'eƍ8ƅб ĘHH``P@ߠ ߮ ange file type ? (f 128K.APPLE9 128K.PASCAL9fNV CROSSREF.TEXTVl DISKIO.TEXT"lrGRAFCHARS.TEXTfr GRAFDEMO.TEXTEHAZEL.MISCINFO3HAZELGOTO.TEXTӟ HILBERT.TEXTE SETUP.CODErSPIRODEMO.TEXTE TREE.TEXTAPPLE3{& SYSTEM.APPLE9&-FORMATTER.CODE9-4FORMATTER.DATA949 BINDER.CODE99; LINEFEED.CODE9;@SET40COLS.CODE9@A II40.MISCINFOAB II80.MISCINFOBN BALANCED.TEXTݦ+`FG8`0($ p,&" COPYRIGHT APPLE COMPUTER, INC., 1984, 1985 C.LEUNGh&Y&&Y& 꽌ɪ\8`&&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xH&x'8*7Ixix&&    ') +!  &п  x) +莶莸L莸LNO FILE SYSTEM.APPLE SYSTEM.APPLEJ) (jJJ>Lx "?I  `  C x Nx G .x- `V0^*^*>` aI꽌ɪVɭ ө ө ө ӽ`Hh`Q꽌ɪɖν*Ͻ%ϙEΈ 꽌ɪ`8` Hh݌`  $(,048<@DHLPTX\`dhlptx|Հ؈䤨谴TȥUȥVȥWXiȥYiL0ht i~i8~~X~YiTiUR콥S8\ȥ]\]VWlX ƎRSLȱȱŎRRLҠX ~L!hhV~W\]~8傅~~8傅~8~~~:XiXY I8񆅚ȥ񆅛᭍HHl0 ULҀ8Ƈ8񆅈񆅉D>8񆅈,t8 u8Z[ 8Z[LѠRȥSȥ ň8内e~l8吨L/ऐ 0 8`hh ߦ~ h0 -Lm $LmlvLL/ AL A8L ߦ~ hI=+ -L ߤ~襈I= ƈ $LȄHHLdhh (hI`J) )i i`HH8(iPH ߠ'(hH tߩ thhehL ߍߠ'O`J!L80 %M8$L/L`    Objqޏtޘޤޮ޴޵޺޹м`|H ߠ ߠ'È h`@ ؠ ح0`+` ޥHH ޥhhL ߦ ސ`,10` ` ` ` ޤOȄ`H$)A[hIH80(hI`i(8H(LhhhhhhhhץHH`JJJJ ϱ`H "ݠLf H 9h`JIi' 'x`38 0P`8 0 ߥ` )`,10 )?ILޢݮ` ߅߅l(,LZ ݘJJ )  LJI)LZܩLZ܊) 9ݐ)LZ܊JȩآL ݠ؈hxJiЍI*EJ F؅GF G ӝ4ȩآL ! ֑ȭ֑ Lܢ `) ؊H "h ɢ` ع)`H B "ݠLfڠ0* )` ]Hh` } p pۢ` ێ` ح`2`) ! ` عJ` " MȽ` B "HLf ݠ }ۑ p0 ۩J*L ݢhhhHH)> `( $ `Q`) " Ȣ``H "ݠ h ڍ,,`lJI*I II `$p"0*nXw ؆ ڤ ڢ` ` (!/< ` ح0 ,10i0  I ,109,c$0 A[ $P0Jj)jj&UIL؈ )?LI@a Hb c0  hH َh$L hhh O靱`hhh(`hhhDEDD@+( `8][ ZD[E`ʩˠhhѱʅE[ʅDZȑ`8Hh`HH(x h(`HHH*LfF0 9ݐ9 Lo٥")jR )LB֠BȱB֭J `JB)BC ֐+/ @( ` ֌֢`0&J}iʰ ֥͝֐` حBCJuJ DE 9ؽFG ְU0ЬЧJ2DEϐ8 (ֹO H֥ +ֹW H H)*Ȫ`FG8` 7 `0($ p,&"VU>)Q>jj`l ! a hx ץH( h ֥HH`:ֈ`֙:`JJJJ C֩B8`Ί aՍxՍՍՍե>?Ռ8T8ՌWuՌvՠ ýI꽌ɪ꽌ɭ蠪ϮәVE]ӾV]H)]ӾV]ԙ)]ӾT]ԙ)]ӦΨ 8$hU>`ȅSϭ߅83IߐiŠLҠX PQȑLҠXX XY 0 LX QHPH PȱPP꽥QLҠ RhPhQL RR8~S~\ȱ~]X i RHRH R~ȱRV~ U~VWRTȱRURXȱRYRRR콆SLҠ8񚅆񚅇`ȱLI8񆅸ȥ񆅹eȱe Iƺ`3[[`3[[`\Z][ 8\Z][`Lх~ e~ HHH> ]>HBC\8倅\]偅] T h ^]H\HHHAH@H > ޽ Insert boot disk with SYSTEM.PASCAL on it, then press RETURN# SYSTEM.PASCAL is not V1.3#lrshLhxhmDŽ І `\Xnl rl1L L~ !  LL8 #0ĎLJƂƃLJ~ L ƂгƃLJ(8 Ƙ L`` ` `޽`HHlHH L $ L޽LdhhHHHHHHHHHHHH`LdҩLZhJJJJ) ޽))hhhhh0LhhhhhhLdh0hhhehehh ) 9L " 饀HHHHL 좊 >L8hhL Ҫ0 `Fff L[~IIi`~  THHLdҩ~  THHLdhh' HHHHLdҩHHHHL Ҁ? ABFffeeeffffإ L a a`~ 预  HHHHL 뢊 >LҢ~  HHHHLҥ~ 뢊 >LҺ^LҺ~&~& ILhhhh 6Ii >Lҥ~I~~ >Lҥ~E 颊 >L YI ꢊ >LҢ~ 预 Lѥ HHHHLҥ~E8 i  iL ҅ 8僅傅偨倐 8&&&&Ffff a颊 >Lҥ~E88ePhhL i򅋩eeee a a` 8僅傅偅倅 ` a`Ņ"$ņŇň ʼn8`~`~ 预  >Lҥ~ >Lҥ~E~ 颊 >L Yꅊ ꢊ >LҢ~ 预 \Z][JHjHLdhhhhh*68jh*vlhhjH*vjHHHlffff择ŋhhL `0&&&&0ƋƋhhL `&挥F8`8兰I襅FfffFfff` ~ȱ~LҠ ULdҥXiXYLh~hhh~ȑ~Ldҥrehrseistehtueiuisu ʱrtLbhLrtLdhhhi0QhthuhettheuuhrhsherrhessXЋiʱrtusLhLrtLdhhhhhhhhLd8\潪]LehiehIihIiiŒ.L4祔'ņŇ0 L#祆8ƇL#祆8厪HHLdhhhhTL֥T8~U~8~Xȥ~YT VLҥRSLȱȱLѥ8Ɓ8 риL 楖 䥘 䥔 хх  =ƄL`8ƛ`8Ƈ` 8` ^\_]`hh Ldhh ULdҠX lhhhhhihhhhLdhthuhettheuui ʑtuLhLtLdhhhhhehehhhhhh  `\^]_~ e~@,A'8\B\]C] h\8]`L8\]  = 58Ƈ8\񆅖ȥ]񆅗8񆅖Ɨ8 ƗLPQ L2 I8񆅔ȥ񆅕 I ii )% ۠)ͩ3ƊgƈЉ** 6`M QRTWHHlRHHlTHHlVhhi a0<7) 0"01 ɃɁ1ح / 0  "!klmn)sVV#$6 </\z FLLIEHJh**F`F$Lө ޽޾ HHHH`HHHHHH  < `) ,1P `     ཀྵ8TU 8X再Y凍TVlL9XiX-Y)XiX YHHXYX lXYX lh)hLdhX0 eXXYLdeT~eU~8~X~YLҩHHLҠXHXHLW飨RHRHLҠ qeRneaևkSX(zҝִLtXiXYX h&i` hi`XXYX *` `RlSml~ȱlm~l``Z罅[潩`޽~@<8潍罅Z\]b[ ֙ שՍoA&IV۪՜x<%ק7ܿd~ٯ$Ԏܚҽ١qn}U=َՍӸު ӤRڨIcxGmeiaq," IԇևHHHHHHHHHHHHHHHHӍԊԊԊԊԊԊԊ ҹHH`qM`LL;LLLL'LLLLLLCLXL?LXLLLhLLLL?hiZhihh ҭHH`l(8L/0 ]^@[ MNP]^@LLLLLLLLLLLLLLLL ҨHLHl/LRѭlTHISISIT THISISIT qŐ`8H<8H\`l L'HHHH`HHHHHH  < @~aƁ)P# ~ȑ~~i~e~ȱe~ȱ~ȱ~~i~iи\R]S [ \v]w]|\ v\w] RPRRSQRR Rȭ R)[ [Zqʊ *0 oN`i iIHH H H #) l ԬPPП8ƋȱHHHH`HHHHHH  < @~aSo nHnHLdҠ qeReSi HHLdҠ qeRneSo hnhnLdèPHPHLҠ qePneQo nHnHLdҠ qePeQi HHLdҠ qePneQo hnhnLdҠX Ѡ Uѥhelniemo nHnHLWҠX Ѡ Uѥhelniemoni nooHnHLWҠX Ѡ Uѥhelniemo hnhnLWҠX Uѽeh~ei~H~HLWҠX Uѽeh~eih~h~LWҠX UѽeheiHHLWh~hȱ~H~HLh~hhh~ȥLҠXȘ ~X)XYXHXHXe~XYLҠX~ 8倐áMצ'Put system disk in #4 and press RETURN  ^$Enter new volume name for this disk.5( for default name of BLANK:, to exit) ==>BLANKתP ++ȡ p FORMATTE HHLdҩHHLdҢh~E0~E~~~Ղ0LސLh)~hh)h~Lީ vhhh~hE0Ł~ŀHJ@0D:hhLhLҩLҩHHLҩ%vHHLhhh h膀e vXLLLLLv   UFifhLYޠ Uhhh~hXYhLޱ~р~iLްLLވhhޅޅh~h~ޅ~ޅ~р ȱ~р~р %vHhhhhLݥ)L8内凅Lݥ) fj~) fj8~݅݅HHHH9݅9݅HH~ HHHiHLҩHHLҩHHL??ƂFHHLҠX hh&ŎLd0eeƎLdҥ8包Ŏ 8吪8吪ƌLdhh&eȹȹp)1)fjjj)?~Ōe~9 pHHLҦpHHL @hhHHHhȱI%~I%ȥLhhh heȄ Ȅ~l 1ۦ8e h9 0 ʚL 1ۦņ hI9ʚL 1ņ0 hʚL҅~Ƃ~eʥheheHHLdҠXXhh &heheHHHHeHHLWhhhhhhȱ80 iff =݅=HHLh~hhhhh ݅%~~݅%80~~i ~&&hLXYXXYYHXHL0XYYHXHXXYeXXYLhrhshthuXs&trȑtLdҠrrtLvٱrtLdLҺ~~LLҠ UhehheiHHLdҠ UhehheiHHLdhh Uѥi h&L٥hi QץiIiƔ8吥呰 ` of"f fofn8no8&&`ffofn&&`hhhh ץIiIiHHLhhhh ץHHLh~hhhE0Ń)ŀ!0E0~łLҘIiHHLҺ}}LhIihIiHHLҺ8Lҩonff nenoeofofnff`hh0 hhLhh"IiIiIiIi QץHHLҺHHLxנnoLѥIiIi攥IXLXŖC?8XX&XeYei无8XYLҥXiXYL h~hhh~&Zȥ[Ze~Z[e[8\Z][LLd h~hZ~ȥ[~Ldh~h~Zȱ~[潩LdҩlLhh0HHLҨIi~hrhsrHrHLdLѠX~e~e~tu~LBhththhLdҺh}~h}~Lhhh~hhe~~he~Lhrhshthu UL躽==LҺLhhIHIHLҩXXhhQX0XŗiX`0\XE0 * *˄* Ʉ% U*ń-   *š * ÄG ++ȡ 򛾚  ++ȡ  *á.Sl<iV:Format which volume # ? (4, 5, 9..12, to exit) ==>  0 ˄é2 ث%A8` A A$Lh@B ? ? ?V A꩖݌$ A݌ ? ? ? ? ?`Hh݌`80^݌Hh @ @݌ -@ -@ -@ @ @ @EEHJh ,@ -@ -@ -@`HJ݌h Hh݌`  8`0($ p,&"!ALs@#A ?LA#A .?"A%A&A8 A AHh#A j><A/8`#A j>#A >&A0 &A`%A8`"A %A#A j>?K@ :@9A ?W@ :@8Aн :@$A)* 7A7A` A݌HhHh ? ? ? ?V A꩖݌$ A݌ ? ? ? ? ?`Hh݌`80^݌Hh @ @݌ -@ -@ -@ @ @ @EEHJh #=h` \I꽌ɪVɭɖ0ɖ!ɖ 꽌ɪ\8`  꽌ɪɖ * % E зЮ꽌ɪФ`7A6A$A\8A$A9A86A7I$Ai$A8A8A 8  :=`+L!='L!=i0L!=8` $A6AJJJJ6A >N$A`)p#A#A**LS=ׅ P$A #=  :@Ld= Ai#A #=#AL= c@AL=AL= AL="A%A%AL=#A j>#A >#H#ALL,E0LL1 L ILL,ELL1 LEe8刅刪ʈʈ&~ʈƅFyʈƅ}~yomkh#^ liʈؚH恥LŁ|} ƅL ~~8ʈƅ  ILL, Lhhhhhhh Jih'LpJIi' )p $hx =H(HHHH`: hxC) B B H(:HHHH`lrKUnable to format disk á $Formatting successful.::F\^:z '<ˡERROR: Unable to format diskצDisk is write-protectedNo disk in driveDrive speed is too slowrצDrive speed is too fastI'4 hard disk. **&Do you really want to do this ? (Y/N) @@ 쫅??ȡ$  צNow formatting disk ...ńȄצDestroy directory of  낫??ȡ  ? (Y/N) @@ "(#ńצ3** WARNING: You are about to format atter Program [1.3]=%formatter.data"ˡ>&ERROR: Cannot find file FORMATTER.DATA  " ˫:Volume #  is not on-line.ǹé ؂Lń&   š 00ÍáN4\ץCצ)Apple Pascal Disk Forma ,@ -@ -@ -@`HJ݌h Hh݌`  8`0($ p,&"!ALs@#A ?LA#A .?"A%A&A8 A AHh#A j><A/8`#A j>#A >&A0 &A`%A8`"A %A#A j>p@9 %  L$MUST BOOT FROM SLOT 4, 5 OR 6CJJJJ \  i=l x ? L N9 +i C* ɭЅ?0ȱ L Ѕ?iȱi L CPl8צREADING SEG DICT OF O.S.8á ( š צ NEW.PASCAL``` ` ŦNOT ENOUGH ROOM TO READ SEGMENT8멄  ` ڂ ؤ,ץ<8d APPLE GOTOXY BINDER8צ SYSTEM.PASCAL"˦NO FILE SYSTEM.PASCALצGOTOXY MUST BE PROCEDURE #2ȦNO PROCEDURE #2 IN CODE FILEڕ ˡxצ COPYING SEGMENT  ک ˦WRITING OUT SEGMENTؤ۩ ۢٚ-á-"ˡ"VV-PV.CODEUV"á˦READING SEG DICT OF GOTOXY FILEˡ3ˡ$צGOTOXY MUST BE IN SEG #0 OR #1ؤVVV˦READING GOTOXYVتP١rERROR: Press space to continue?,, ˡ ,TھƁ1"ˡFILE WHICH CONTAINS GOTOXY? -PBBBBBBBBBBBBBBBBFAPPLEBIN 莸L莸LNO FILE SYSTEM.APPLE SYSTEM.APPLEB\ DE F G L[  ` COPYRIGHT APPLE COMPUTER, INC., 1984, 1985 C.LEUNGp@9 %  L$MUST BOOT FROM SLOT 4, 5 OR 6CJJJJ ] x    @ N- +i C ɭЅ ȱ  @ Ѕi ȱi  @ CPlBLANK{+`FG8`0($ p,&" COPYRIGHT APPLE COMPUTER, INC., 1984, 1985 C.LEUNGh&Y&&Y& 꽌ɪ\8`&&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xH&x'8*7Ixix&&    ') +!  &п  x) +莶莸L莸LNO FILE SYSTEM.APPLE SYSTEM.APPLEJ) (jJJ>Lx "?I  `  C x Nx G .x- `V0^*^*>` aI꽌ɪVɭ ˦READING O.S. SEG #15멄 멄 멄 8``  멄`멄`` ` `ȡ# a a   צWRITING SEG DICT OF NEW O.S.8u( á ( š צ NEW.PASCAL``` ` ŦNOT ENOUGH ROOM TO READ SEGMENT8멄  `lag is now set for 40-column mode.7צ#Flag is now set for 80-column mode. sצ=booted off the disk, it will use an installed 80-column card.á'Flag is already set for 40-column mode.צ&Reset flag for 80-column mode (Y/N) ? yYÍ  á}9#Fflag has already been set for 40-column mode, the programצ>will give you the option of reseting it so that when Pascal isצ=booted off the disk, it will use an installed 80-column card.ram will set a flag in the directory of a Pascal disk soצAthat when Pascal is booted off the disk, it will run in 40-columnCmode regardless of whether there is an 80-column card in the Apple.צ@If the "ˡa I/O ERROR # צ" occurred while writing directory.~׶  SET40COLSצ#Copyright 1985 Apple Computer, Inc.AThis prog#š 00Íá^!9l"ˡh I/O ERROR # צ) occurred while trying to read directory.:Modify which volume # ? (4, 5, 9..12, to exit) ==> 0 ˄۳2٫۳" قVń*  BBBBBBBBBBBBBBBBSET40COL JY LINEFEED.TEXTttfr*:>t|t+|LPtt A2/UTILITIEStJJ|r]tJJ]t] d44^2 ^2ECommand: E(dit, R(un, F(ile, C(omp, L(ink, X(ecute, A(ssem,L@",Compile what text? A" Compiling... d44Q4 LINEFEED.CODEODE[*]t\JJz^to^EJ P:A2/UTILITIESBBBBBBBBBBBBBBBB&LINEFEED  ˦READING O.S. SEG #15멄 멄 멄 8``  멄`멄`` ` `ȡ# a a   צWRITING SEG Dá'Flag is already set for 40-column mode.צ&Reset flag for 80-column mode (Y/N) ? yYÍ  á}9#FtNȥ(lj|t.CODE.CODEODEE  P ?^t$z E.CODE.CODE(t*lz<޽r :<(e6 6 LNȥ(a5IF P2^.BAL=+1 THEN P1^.BAL:=-1 ELSE P1^.BAL:=0; 5P:=P2; 3END; 1P^.BAL:=0; H:=FALSE; /END; (* CASE -1 *) / *END; (* CASE *) &END (* IF WP^.WORD THEN &BEGIN (INSERTIT(W,P^.RIGHT,H); (IF H THEN (* RIGHT BRANCH HAS GROWON *) 5P^.LEFT:=P1^.RIGHT; 5P1^.RIGHT:=P; 5P^.BAL:=0; 5P:=P1; 3END 1ELSE 3BEGIN (* DOUBLE LR ROTATION *) 5P2:=P1^.RIGHT; 5P1^.RIGHT:=P2^.LEFT; 5P2^.LEFT:=P1; 5P^.LEFT:=P2^.RIGHT; 5P2^.RIGHT:=P; 5IF P2^.BAL=-1 THEN P^.BAL:=+1 ELSE P^.BAL:=0; (INSERTIT(W,P^.LEFT,H); (IF H THEN (* LEFT BRANCH HAS GROWN *) *CASE P^.BAL OF ,1: BEGIN 1P^.BAL:=0; 1H:=FALSE; /END; (* CASE1 *) / ,0: P^.BAL:=-1; + +-1: BEGIN (* REBALANCE *) 1P1:=P^.LEFT; 1IF P1^.BAL=-1 THEN 3BEGIN 5(* SINGLE LL ROTATI,P2: NODEPTR;  BEGIN "IF P=NIL THEN (* MAKE NEW NODE *) $BEGIN &NEW(P); H:=TRUE; &WITH P^ DO (BEGIN *LEFT:=NIL; *RIGHT:=NIL; *WORD:=W; *BAL:=0; $ END; $END " "ELSE (* CHASE DOWN TREE FURTHER *) $IF W4 THEN WRITE(CHR(7)); (* BEEP *) &IF LEVEL<=4 THEN (BEGIN *PENCOLOR(NONE); MOVETO(X+44,Y+3); *PENCOLOR(WHITE); MOVETO(X+56,Y+DELTAY[LEVEL]); *SHOWTREE(P^.LEFT,LEVEL+1); *PENCOLOR(NONE); MOVETO(X+44,Y-3); *PENCOLOR(WHIT "MOVETO(X,Y-5); MOVETO(X,Y); "PENCOLOR(NONE); MOVETO(X+2,Y-4); "WSTRING(W); MOVETO(X,Y);  END;     PROCEDURE SHOWTREE(P: NODEPTR; LEVEL: INTEGER);  VAR X,Y: INTEGER;  BEGIN "IF P<>NIL THEN $BEGIN &X:=TURTLEX; &Y:=TURTLEY; ^.WORD); &PRINTTREE(P^.RIGHT); $END;  END;    PROCEDURE BOXWORD(W: WORDSTRING);  (* BEGIN AND END PEN AT LEFT OF BOX *)  VAR X,Y: INTEGER;  BEGIN "X:=TURTLEX; Y:=TURTLEY; "PENCOLOR(WHITE); MOVETO(X,Y+5); "MOVETO(X+44,Y+5); MOVETO(X+44,Y-5); 3END; 3P^.BAL:=0; H:=FALSE; /END; (* CASE1 *) * *END; (* CASE *) &END (* IF W>P^.WORD *) & $ELSE H:=FALSE;   END; (* INSERTIT *) " " " " 5  PROCEDURE PRINTTREE(P: NODEPTR);  BEGIN "IF P<>NIL THEN $BEGIN &PRINTTREE(P^.LEFT); &WRITELN(P{$SETC APPLE := 2} {$S-}  PROGRAM CROSSREF;  (********************************************************)  (* *)  (* CROSS REFERENCE GENERATOR USING BINARY TREE. *)  (* FROM WIRTH,ALGORITHMS+O^EbREE(ROOT);  PAGE(G); PAGE(G);  CLOSE(G,LOCK); "CLOSE(F)  END.  K>=K1 THEN K1:=K *ELSE ,REPEAT .A[K1]:=' '; .K1:=K1-1; ,UNTIL K1=K; *ID:=A; SEARCH(ROOT); (END &ELSE (BEGIN *CH:=F^; WRITE(G,CH); GET(F); (END; $END; (* WHILE NOT EOLN *) $WRITELN(G); GET(F); "END; (* WHILE NOT EOF *) "PAGE(G); PRINTTF) DO $BEGIN (* SCAN NON-EMPTY LINE *) &CH:=F^; &IF CH IN ['A'..'Z','a'..'z'] THEN (BEGIN *K:=0; *REPEAT ,IF K NIL THEN $BEGIN &PRINTTREE(W^.LEFT); &PRINTWORD(W^); &PRINTTREE(W^.RIGHT); $END;  END; (* PRINTTREE *)    BEGIN (* MAIN *)  ROOT:=NIL; N:=0; K1:=C1; "WRITE('INPUT FILE? '); "READLN(SOURCE); "BEGIN $WRITE(G,' ',W.KEY); $X:=W.FIRST; L:=0;  REPEAT &IF L=C2 THEN (BEGIN *WRITELN(G); *L:=0; WRITE(G,' ':C1+1) (END; (L:=L+1; WRITE(G,X^.LNO:C3); X:=X^.NEXT; $UNTIL X=NIL; $WRITELN(G); "END; (* PRINTWORD *)  BEGIN (* PRINTTREE *) .LEFT) ELSE $IF ID>W^.KEY THEN SEARCH(W^.RIGHT) ELSE $BEGIN NEW(X); X^.LNO:=N; X^.NEXT:=NIL; *W^.LAST^.NEXT:=X; W^.LAST:=X; $END;  END; (* SEARCH *)   PROCEDURE PRINTTREE(W: WORDREF); "PROCEDURE PRINTWORD(W: WORD); "VAR L: INTEGER; X: ITEMREF;  VAR W: WORDREF; X: ITEMREF;  BEGIN W:=W1; "IF W=NIL THEN " BEGIN &NEW(W); &NEW(X); &WITH W^ DO (BEGIN *KEY:=ID; LEFT:=NIL; RIGHT:=NIL; *FIRST:=X; LAST:=X; (END; &X^.LNO:=N; X^.NEXT:=NIL; W1:=W; $END "ELSE $IF ID 0 THEN S:=STEMP "ELSE WRITE(S);  END;   I+*) "SEEK(DATAFILE,RECNUM); "GET(DATAFILE); "IF EOF(DATAFILE) THEN (* EXTENDING FILE *) ZEROREC(DATAFILE^); "VALIDATE(DATAFILE^); "SHOWREC(DATAFILE^); "CHANGEREC(DATAFILE^); "SEEK(DATAFILE,RECNUM); "(*$I-*) "PUT(DATAFILE);  (*$I+*) "IF (IORESL := (IORESULT = 0); .END; & END; &END; "UNTIL SUCESSFUL; "(*$I+*) "RECNUM:=-1;  LASTCHANGE:=FALSE;  END;    PROCEDURE CHANGE;  BEGIN "(*$I-*) "REPEAT $PROMPTAT(2,'Change which record ? '); $READLN(RECNUM); "UNTIL IORESULT=0; "(*$0READLN; 0SUCESSFUL:=FALSE; .END ,ELSE .BEGIN 0(* INITIALIZE CONTENTS OF FILE *) 0FOR IREC:=0 TO MAXREC DO 2BEGIN 4SEEK(DATAFILE,IREC); 4PUT(DATAFILE); 2END; 0CLOSE(DATAFILE,LOCK); (* LOCK IT IN PLACE *) 0RESET(DATAFILE,FILENAME); . SUCESSFU ,PROMPTAT(12,'Reserve how many records ? '); ,READLN(MAXREC); ,SEEK(DATAFILE,MAXREC); ,ZEROREC(DATAFILE^); ,(*$I-*) ,PUT(DATAFILE); ,(*$I+*) ,IF (IORESULT<>0) OR EOF(DATAFILE) THEN .BEGIN 0PROMPTAT(14,'Not enough room. Press return '); then exit (program); $RESET(DATAFILE,FILENAME); (* TRY TO OPEN AN OLD FILE *) $SUCESSFUL := (IORESULT=0); $IF NOT SUCESSFUL THEN (* START A NEW FILE? *) &BEGIN (PROMPTAT(10,'Start a new file ? '); (IF YES THEN *BEGIN ,REWRITE(DATAFILE,FILENAME);CESSFUL: BOOLEAN; $FILENAME: STRING[30];  IREC,MAXREC: INTEGER;  BEGIN "CLOSE(DATAFILE,LOCK); (* IN CASE IT'S ALREADY OPEN *) "(*$I-*) "REPEAT $GOTOXY(0,1); CRT(ERASEOS); $PROMPTAT(8,'File Name: '); READLN(FILENAME); $if length(filename) = 0 &WRITE('Street: '); GETSTRING(STREET,STREETLEN); WRITELN; &WRITE('City & State: '); GETSTRING(CITYSTATE,CITYLEN); WRITELN; &WRITE('Telephone: '); GETSTRING(TEL,TELELEN); WRITELN; #END;  END; (* CHANGEREC *) " "  PROCEDURE NEWFILE;  VAR SUERASEOS); "PROMPTAT(12,'(Press return for no change)'); "WITH REC DO $BEGIN &GOTOXY(0,14); &WRITE('Name: '); GETSTRING(NAME,NAMELEN); WRITELN; &WRITE('Company: '); GETSTRING(COMPANY,COMPLEN); WRITELN; ame: ',NAME); &WRITELN('Company: ',COMPANY); &WRITELN('Street: ',STREET); &WRITELN('City & State: ',CITYSTATE); &WRITELN('Telephone: ',TEL); $END;  END;    PROCEDURE CHANGEREC(VAR REC: PERSON);  BEGIN "GOTOXY(0,12); CRT(ME,NAMELEN); &CHECK(COMPANY,COMPLEN); &CHECK(STREET,STREETLEN); &CHECK(CITYSTATE,CITYLEN); &CHECK(TEL,TELELEN); $END;  END; (* VALIDATE *)    PROCEDURE SHOWREC(REC: PERSON);  BEGIN "GOTOXY(0,4); CRT(ERASEOS); "WITH REC DO $BEGIN &WRITELN('N$IF LENGTH(S) > MAXLEN THEN GOTO 1; $FOR I:=1 TO LENGTH(S) DO &IF NOT (S[I] IN [' '..'}']) THEN GOTO 1; $EXIT(CHECK); (* STRING IS OK *) "1: ZEROREC(REC); EXIT(VALIDATE); "END; (* CHECK *) "  BEGIN (* VALIDATE *) "WITH REC DO $BEGIN $ CHECK(NALID. *)  (* *)  (*********************************************************) "PROCEDURE CHECK(VAR S: STRING; MAXLEN: INTEGER); "LABEL 1; "VAR I: INTEGER; "BEGIN CEDURE VALIDATE(VAR REC: PERSON);  (*********************************************************)  (* *)  (* TRIES TO DETECT AND ZERO AN UNINITIALIZED RECORD *)  (* NO CHANGE IF ALL FIELDS ARE VA FUNCTION YES: BOOLEAN;  BEGIN "YES:= GETCHAR(['Y','y','N','n']) IN ['Y','y'];  END;    PROCEDURE ZEROREC(VAR REC: PERSON);  BEGIN "WITH REC DO $BEGIN &NAME:=''; &COMPANY:=''; &STREET:=''; &CITYSTATE:=''; &TEL:=''; $END;  END;    PROULT<>0) OR EOF(DATAFILE) THEN $BEGIN &GOTOXY(0,20); &WRITELN(CHR(7),'UNABLE TO EXTEND FILE, NO DATA WRITTEN'); &WRITELN('Use Filer K(runch command to make space after file.'); $END; "LASTCHANGE:=TRUE;  END; "   PROCEDURE VIEW;  BEGIN "(*$I-*) "REPEAT $PROMPTAT(2,'View which record ? '); $READLN(RECNUM); "UNTIL IORESULT=0; "(*$I+*) "SEEK(DATAFILE,RECNUM); "GET(DATAFILE); "IF EOF(DATAFILE) THEN $BEGIN &GOTOXY(0,4); &WRITE('Record ',RECNUM,' not in file.'); $END "ELSE $BITE); MOVETO(L,T); "MOVETO(R,T); MOVETO(R,B); MOVETO(L,B); "PENCOLOR(NONE); MOVETO(L+3,B+2); "WSTRING(S);  END;    PROCEDURE WRITECHARS;  VAR HORIZ,VERT,ASCII: INTEGER;  BEGIN "INITTURTLE; "ASCII:=0; "FOR VERT:=0 TO 18 DO $BEGIN &MOVETO(0,1*****************************)  VAR L,R,B,T: INTEGER;  BEGIN "PENCOLOR(NONE); MOVETO(X,Y); "L:=X-3; R:=X+2+7*LENGTH(S); "B:=Y-2; T:=Y+10; "VIEWPORT(L,R,B,T); "FILLSCREEN(BLACK); "VIEWPORT(0,279,0,191);  PENCOLOR(NONE); MOVETO(L,B); "PENCOLOR(WH  PROGRAM GRAFCHARS;   USES TURTLEGRAPHICS;   PROCEDURE BOXSTRING(X,Y: INTEGER; S: STRING);  (********************************)  (* *)  (* WRITE A STRING IN ERASED BOX *)  (* *)  (***N^f.');  END.   :=GETCHAR(['N','n','F','f','V','v','C','c','Q','q']); $CRT(ERASEOS); $CASE CH OF &'N','n': NEXT; &'F','f': NEWFILE; &'V','v': VIEW; &'C','c': CHANGE; $END; "UNTIL CH IN ['Q','q']; " "CLOSE(DATAFILE,LOCK);  PROMPTAT(12,'THAT''S ALL FOLKS..$ WRITELN('Use Filer K(runch command to make space after file.'); (END; $END;  END; " "  BEGIN (* MAIN PROGRAM *) "GETCRTINFO; "GOTOXY(0,0); CRT(ERASEOS); "NEWFILE; "REPEAT $PROMPTAT(0,'>DISKIO: V(iew, C(hange, N(ext, F(ile, Q(uit '); $CH $BEGIN &CHANGEREC(DATAFILE^); &SEEK(DATAFILE,RECNUM); &(*$I-*) &PUT(DATAFILE); $ (*$I+*) &IF (IORESULT<>0) OR EOF(DATAFILE) THEN (BEGIN *GOTOXY(0,20); *WRITELN(CHR(7),'UNABLE TO EXTEND FILE, NO DATA WRITTEN'); OREC(DATAFILE^); &IF NOT LASTCHANGE THEN (BEGIN *GOTOXY(0,4); *WRITE('Record ',RECNUM,' not in file.'); ( EXIT(NEXT); (END; $END;  GOTOXY(0,2); WRITE('Record number ',RECNUM); "VALIDATE(DATAFILE^); "SHOWREC(DATAFILE^);  IF LASTCHANGE THEN EGIN &VALIDATE(DATAFILE^); &SHOWREC(DATAFILE^);  END; "LASTCHANGE:=FALSE;  END; " "  PROCEDURE NEXT;  (* VIEW OR CHANGE NEXT RECORD *)  BEGIN "RECNUM:=RECNUM+1; "SEEK(DATAFILE,RECNUM); "GET(DATAFILE); "IF EOF(DATAFILE) THEN $BEGIN &ZER80-VERT*10); &FOR HORIZ:=0 TO 39 DO (BEGIN *WCHAR(CHR(ASCII)); *ASCII:=(ASCII+1) MOD 128; (END; " END; "READLN;  END;  " "  PROCEDURE YOUTOO;  VAR I: INTEGER;  BEGIN "INITTURTLE; "PENCOLOR(WHITE); "FOR I:=1 TO 300 DO $BEGIN &MOVE(I); &TURN(-89); $END; "BOXSTRING(20,92,'YOU TOO CAN MIX TEXT AND GRAPHICS'); "READLN;  END; "   PROCEDURE CIRCLE;  VAR I: INTEGER;  BEGIN "INITTURTLE; "MOVETO(119,104); WSTRING('POSITION'); "MOVETO(112,92); WSTRING('CHARACTERS'); "MOVETO(119,80)  BEGIN "TEXTMODE; "READ(KEYBOARD,CH); "WRITELN; "WRITELN('THAT''S ALL FOLKS...'); "EXIT(PROGRAM);  END;  "  PROCEDURE ERASE;  BEGIN "IF KEYPRESS THEN GOODBYE; "VIEWPORT(0,XMAX,0,YMAX); "FRAME(WHITE); "VIEWPORT(1,XMAX-1,1,YMAX-1); "FILLSCROR DELAY:=1 TO TIME DO;  END;    PROCEDURE FRAME(COLOR: SCREENCOLOR);  BEGIN "PENCOLOR(NONE); MOVETO(0,0); "PENCOLOR(COLOR); "MOVETO(0,YMAX); MOVETO(XMAX,YMAX); "MOVETO(XMAX,0); MOVETO(0,0);  PENCOLOR(NONE);  END;    PROCEDURE GOODBYE; TYPE PICTURE=PACKED ARRAY[0..53,0..120] OF BOOLEAN;   VAR I,J,K,SKIP,ROW: INTEGER; $CH: CHAR;  COLORS: ARRAY[0..5] OF SCREENCOLOR;  BUTTER: PICTURE;  BIT: BOOLEAN;    PROCEDURE WAIT(TIME:INTEGER);  VAR DELAY: INTEGER;  BEGIN "F *)  (***************************************************************)   USES TURTLEGRAPHICS,APPLESTUFF;   CONST XMAX=279; &YMAX=191; &XMID=140; &YMID=96; & ANSWER SOME OF YOUR QUESTIONS. *)  (* *)  (* MANY THANKS TO THE FINE TEAM AT UCSD. *)  (* ENJOY YOUR NEW PASCAL SYSTEM. BILL ATKINSON, MAY 5 1979 *)  (* SHOWING THE USE OF *)  (* ROUTINES IN TURTLEGRAPHICS AND APPLESTUFF UNITS. *)  (* *)  (* IT DOES HAVE A DESCRIPTION OF DRAWBLOCK TOWARD THE END. *)  (* I HOPE IT HELPS TO  (*$S+*) (* USE SWAPPING OPTION FOR LARGE PROGRAMS *)   PROGRAM GRAFDEMO;  (***************************************************************)  (* *)  (* THIS IS A HURRIDLY-WRITTEN EXAMPLE N^EEDLN; "WRITECHARS; "YOUTOO; "CIRCLE; "TEXTMODE; "WRITELN('THAT''S ALL FOLKS...');  END.   ; WSTRING('ANYWHERE'); "CHARTYPE(6); (* XOR *) "TURNTO(180); "FOR I:=1 TO 300 DO $BEGIN &MOVETO(140,92); &MOVE(85); &TURN(-6); &WCHAR(CHR(1)); $END;  READLN;  END; " "  BEGIN; (* MAIN PROGRAM *) "WRITELN('PRESS RETURN FOR MORE...'); "REAEEN(BLACK);  END;    FUNCTION RANDCOLOR: SCREENCOLOR;  BEGIN "RANDCOLOR:=COLORS[RANDOM MOD 6];  END; " "  PROCEDURE FAN;  BEGIN "FOR J:=1 TO 3 DO $FOR I:=17 DOWNTO 1 DO &BEGIN (PENCOLOR(NONE); MOVETO(0,0); (PENCOLOR(REVERSE); (TURNTO(5*I); MOVE(400); &END; "WAIT(2000); "IF KEYPRESS THEN GOODBYE; "FILLSCREEN(REVERSE); "FILLSCREEN(REVERSE); " "FOR I:=0 TO 4 DO $BEGIN &SKIP:=I*15; &(* USE VIEWPORT TO SPECIFY PORTION OF SCREEN *) &VIEWPORT(SKIP,XMAX-SKIP,SKIP,YMAX-SKIP)XXXX ---- XX ');  STUFF(BUTTER,' XXX XXXXX --- * X ');  STUFF(BUTTER,' XX XXXXX --- ** XX ');  STUFF(BUTTER,' X XXXX X XXXXXX X ');  STUFF(BUTTER,'XX XXXXXXX *X ');  STUFF(BUTTER,' XX XXXXXX ----- * X ');  STUFF(BUTTER,' X X X STUFF(BUTTER,' XX XXXXXXX X ');  STUFF(BUTTER,' XX XXXXXXX X ');  STUFF(BUTTER,' X XXXXXXX X ');  STUFF(BUTTER,'BUTTER,' XX XXXXXXXXXXX ');  STUFF(BUTTER,' XXX XXXXXXXXXXXXXXXXXXXXX ');  STUFF(BUTTER,' XXXXXXXXXXXXXXXX XXXXXXXXX XX '); ITMAP FORM STRINGS *)  VAR J: INTEGER;  BEGIN "FOR J:=1 TO LENGTH(S) DO $BEGIN &BIT:=(S[J]<>' '); &BITMAP[ROW,J+59]:=BIT; " BITMAP[ROW,60-J]:=BIT; (* SYMMETRIC *) $END; "ROW:=ROW-1;  END;  "  PROCEDURE BUTTER1;  BEGIN "ROW:=53;  STUFF(E); "FOR I:=1 TO 40 DO $BEGIN &MOVETO((RANDOM MOD 400)-50,(RANDOM MOD 300)-50); &TURNTO(0); &POLYGON((RANDOM MOD 9)+3,(RANDOM MOD 40)+5); $END; "WAIT(4000); ERASE;  END;    PROCEDURE STUFF(VAR BITMAP: PICTURE; S:STRING);  (* MAKE BUTTERFLY B"(* SKIP POLYGONS WHICH DON'T CLOSE ALL THE WAY *) "IF (ANG*SIDES)<>360 THEN EXIT(POLYGON); "PENCOLOR(WHITE);  FOR I:=1 TO SIDES DO $BEGIN &MOVE(EDGE); &TURN(-ANG); $END; "PENCOLOR(NONE);  END; "   PROCEDURE POLYGONS;  BEGIN "PENCOLOR(NONTHEN BEGIN ) TURN(180); & PENCOLOR(RANDCOLOR); . I:=I+1; .END &ELSE TURN((RANDOM MOD 45)-22); &MOVE(10); $END; "ERASE;  END;  "  PROCEDURE POLYGON(SIDES,EDGE: INTEGER);  VAR I,ANG: INTEGER;  BEGIN "ANG:=360 DIV SIDES; EX<0) OR (TURTLEY<0) OR (TURTLEY>YMAX); "ERASE;  END;  $  PROCEDURE WALLBUMP;  BEGIN "PENCOLOR(NONE); MOVETO(XMID,YMID); "PENCOLOR(WHITE); "I:=0; "WHILE I<40 DO $BEGIN &IF (TURTLEX>XMAX) )OR (TURTLEX<0) )OR (TURTLEY>YMAX) )OR (TURTLEY<0) )R I:=1 TO 300 DO $BEGIN &MOVE(I); &TURN(-45); $END; "WAIT(2000); ERASE;  END;  $  PROCEDURE SQUIGGLE;  BEGIN "PENCOLOR(NONE); MOVETO(XMID,YMID); "PENCOLOR(WHITE); "REPEAT $TURN((RANDOM MOD 90)-60); $MOVE(3); "UNTIL (TURTLEX>XMAX) OR (TURTL"TURNTO(45); $FOR I:=-19 TO 27 DO &BEGIN (PENCOLOR(NONE); (MOVETO(I*10,0); (PENCOLOR(WHITE); (MOVE(500); &END; $WAIT(2000); ERASE;  END;  $  PROCEDURE SPIRAL;  BEGIN "PENCOLOR(NONE); MOVETO(XMID,YMID); "TURNTO(0); PENCOLOR(RANDCOLOR); "FOIZONTAL LINES *) "FOR I:=18 DOWNTO 1 DO $BEGIN &PENCOLOR(NONE); &MOVETO(0,I*10); &PENCOLOR(WHITE); &MOVETO(XMAX,I*10); $END; "WAIT(2000); "FILLSCREEN(REVERSE); "FILLSCREEN(REVERSE); "WAIT(2000); ERASE;  END;  " PROCEDURE DIAGONALS;  BEGIN ); /END -ELSE FILLSCREEN(REVERSE); $END; "WAIT(3000); ERASE;  END;  "  PROCEDURE GRID;  BEGIN "(* DRAW VERTICAL LINES *) "FOR I:=1 TO 27 DO $BEGIN &PENCOLOR(NONE); &MOVETO(I*10,YMAX); &PENCOLOR(WHITE); &MOVETO(I*10,0); $END; "(* DRAW HOR; &IF I=2 THEN /BEGIN 1PENCOLOR(NONE); 1MOVETO(SKIP,SKIP); 1PENCOLOR(WHITE); 1MOVETO(SKIP,YMAX-SKIP); 1MOVETO(XMAX-SKIP,YMAX-SKIP); 1MOVETO(XMAX-SKIP,SKIP); 1MOVETO(SKIP,SKIP); 1VIEWPORT(SKIP+1,XMAX-SKIP-1,SKIP+1,YMAX-SKIP-1); 1FILLSCREEN(BLACK --- * * X ');  STUFF(BUTTER,' X XXXX ---------- *** XX ');  STUFF(BUTTER,' X XXX -- --------- -- *** XX ');  STUFF(BUTTER,' X XX ----- ----- - * * XX ');  STUFF(BUTTER,'X XXX ------ ---- ** XX ');  END;   PROCEDURE BUTTER2;  BEGIN  STUFF(BUTTER,' X X --- ------------ RS TO DRAWBLOCK ARE: *)  (* 1. SOURCE ARRAY NAME *)  (* 2. ROWSIZE IN BYTES 2*(( DOTSWIDE+15 ) DIV 16 ) *)  (* 3. XSKIP HOW MANY DOTS TO SKIP ROCEDURE INITBUTTERFLY;  BEGIN "BUTTER1; "BUTTER2; "BUTTER3;  BUTTER4;  END;   (************************************************************************)  (* *)  (* PARAMETE STUFF(BUTTER,' XXXXXIII X ');  STUFF(BUTTER,' X X ');  STUFF(BUTTER,' XX ');  END;    PUTTER,' X I I 00 III X ');  STUFF(BUTTER,' X IIII I X ');  STUFF(BUTTER,' X I I XXXX '); ');  STUFF(BUTTER,' X X I 0 I 00 I 00 I X ');  STUFF(BUTTER,' X X I 0 I I I X ');  STUFF(BUTTER,'X X I I 0 I I X ');  STUFF(BXXXX X X I I I 00 I IX ');  STUFF(BUTTER,' X XX I I 0 I 00 I I X ');  END;   PROCEDURE BUTTER4;  BEGIN  STUFF(BUTTER,'XXX X I I 000 I II X  STUFF(BUTTER,'XXXXXX X I III I II 0 I X ');  STUFF(BUTTER,' X X X II I III II 0 I X ');  STUFF(BUTTER,' X X X II I I 00 II 0 I X ');  STUFF(BUTTER,'F(BUTTER,' XX X I I I 0 I XXXXXXXXX ');  STUFF(BUTTER,' XX X II I 00 I X XXXX ');  STUFF(BUTTER,' XX X I I II 000 I X '); ;  BEGIN  STUFF(BUTTER,' X X III IIIIXXX *** XX ');  STUFF(BUTTER,' X X I I I II XXX XX ');  STUFF(BUTTER,'XXXX X III I II XXXX XX ');  STUF X X I I IXX* ************ ***** ** X ');  STUFF(BUTTER,'XXXX X II I XX ***** ****** ***** XX ');  STUFF(BUTTER,' X X I I I XX ****** **** XX ');  END;    PROCEDURE BUTTER3 STUFF(BUTTER,'XXX X I XX** **** ***** * XX ');  STUFF(BUTTER,' X X II XX **** ** ** * * *** ***** X ');  STUFF(BUTTER,' X X II XX ******** *** ** ***** **** XX ');  STUFF(BUTTER,'UTTER,'XXX XX** * ****** X ');  STUFF(BUTTER,' X XX*** ***** XX ');  STUFF(BUTTER,' XXI XX *** *** *** X '); ');  STUFF(BUTTER,' X X--- - **** XX ');  STUFF(BUTTER,' X* --- - ***** X ');  STUFF(BUTTER,' X ** ****** XX ');  STUFF(B ****XX ');  STUFF(BUTTER,' X X ----- --- --- **** X ');  STUFF(BUTTER,' X X ---------------- - ***XX ');  STUFF(BUTTER,' X X----- --- --- - ** * X BEFORE TRANSFERING *)  (* 4. YSKIP HOW MANY ROWS TO SKIP *)  (* 5. WIDTH IN DOTS *)  (* 6. HEIGHT IN DOTS *)  (* 7. XSCREEN WHERE TO PUT IT ON THE HIRES SCREEN (0..279) *)  (* 8. YSCREEN " " (0..191) *)  (* 9. MODE CODEe3RTEXTׯ Z ~ ]P ?~ KL$7?.ת.ׯۓ2Save as . ND.  " " "  ; "COLORS[0]:=WHITE; "COLORS[1]:=REVERSE; "COLORS[2]:=GREEN; "COLORS[3]:=VIOLET; "COLORS[4]:=ORANGE; "COLORS[5]:=BLUE; " "REPEAT $FAN; $GRID; $SPIRAL; $SQUIGGLE; $DIAGONALS; $WALLBUMP; " POLYGONS; $FLUTTER; "UNTIL KEYPRESS; "GOODBYE;  ERAWBLOCK(BUTTER,16,0,0,120,54, 10, 64, 6); "DRAWBLOCK(BUTTER,16,0,0,120,54,150, 0, 6);  END;    BEGIN "WRITELN('PRESS ANY KEY TO QUIT.'); "WRITELN('PLEASE WAIT WHILE CREATING BUTTERFLY'); "INITBUTTERFLY; "INITTURTLE; "FRAME(WHITE); "RANDOMIZE"FILLSCREEN(REVERSE); "(* USE XOR MODE TO REMOVE ONE AT A TIME *) "DRAWBLOCK(BUTTER,16,0,0,120,54, 10, 0, 6); "DRAWBLOCK(BUTTER,16,0,0,120,54,150, 64, 6); "DRAWBLOCK(BUTTER,16,0,0,120,54, 10,128, 6); "DRAWBLOCK(BUTTER,16,0,0,120,54,150,128, 6); "D4); "DRAWBLOCK(BUTTER,16,0,0,120,54, 10,128,14); "DRAWBLOCK(BUTTER,16,0,0,120,54,150,128,14); "DRAWBLOCK(BUTTER,16,0,0,120,54, 10, 64,14); "DRAWBLOCK(BUTTER,16,0,0,120,54,150, 0,14); "WAIT(8000); FILLSCREEN(REVERSE); WAIT(3000); *)  (************************************************************************)    PROCEDURE FLUTTER;  BEGIN "(* DRAW SIX BUTTERFLIES *) "DRAWBLOCK(BUTTER,16,0,0,120,54, 10, 0,14); "DRAWBLOCK(BUTTER,16,0,0,120,54,150, 64,1---------I---------------I---------------I *)  (* *)  (* FOR EXAMPLE, MODE 0=FILL BLACK, 10=COPY SOURCE, 14=OR, 6=XOR, ETC. *)  (*  (* I TRUE I FALSE I I *)  (* I---------------I---------------I---------------I *)  (* I TRUE I TRUE I MSB MODE I *)  (* I------)  (* I---------------I---------------I---------------I *)  (* I FALSE I TRUE I I *)  (* I---------------I---------------I---------------I *) *)  (* CURRENT SCREEN SOURCE RESULTANT SCREEN *)  (* I---------------I---------------I---------------I *)  (* I FALSE I FALSE I LSB MODE I * *)  (* *)  (* MODE RANGES 0..15 TO FILL IN THE FOLLOWING TRUTH TABLE: *)  (* O^ӟӟ" MOVETO(140-DELTA,96-DELTA); $PENCOLOR(WHITE); " HIL(ORDER); " (* WAIT FOR KEYSTROKE,THEN SWITCH TO TEXT *)  READ(KEYBOARD,CH); TEXTMODE; "UNTIL FALSE;  END.   &BEGIN (WRITELN('THAT''S ALL FOLKS...'); (EXIT(PROGRAM); &END; " INITTURTLE; $DELTA:=2; " (* CALC STARTING X,Y AND SIZE *) " FOR N:=2 TO ORDER DO DELTA:=DELTA*2; " DELTA:=DELTA-1; " SIZE:=190 DIV DELTA; " DELTA:=(DELTA*SIZE) DIV 2; END; $HIL1; HIL2; HIL1; "END;  END; (* HIL *)   BEGIN (* MAIN PROGRAM *) "WRITELN('WELCOME TO HILBERT'); "WRITELN('ENTER ORDER 0 TO QUIT.'); "REPEAT (* FOR EACH ORDER *) " WRITE('ORDER: '); READLN(ORDER); " IF (ORDER < 1) OR (ORDER > 7) THEN ; "BEGIN $MOVE(SIZE); $HIL(B); $TURN(-A); MOVE(SIZE); TURN(-A); $HIL(B); $MOVE(SIZE); "END; (* HIL2 *) "  BEGIN (* HIL *) "IF I=0 THEN TURN(180) "ELSE "BEGIN $IF I>0 THEN $ BEGIN & A:=90; B:=I-1; $ END $ELSE BEGIN &A:=-90; B:=I+1; $  PROGRAM HILBERT;   USES TURTLEGRAPHICS;   VAR SIZE,DELTA,N: INTEGER; $ORDER: INTEGER; $CH: CHAR; $  PROCEDURE HIL(I:INTEGER);  VAR A,B: INTEGER; " "PROCEDURE HIL1; "BEGIN $TURN(A); HIL(-B); TURN(A); "END; (* HIL1 *) " "PROCEDURE HIL2O^2ED[0]:=126; (* LEAD-IN *) "SEND[1]:=17; (* DC1 *) "IF X<30 THEN SEND[2]:=X+96 +ELSE SEND[2]:=X; "SEND[3]:=Y+96; "UNITWRITE(2,SEND,4);  END;   BEGIN (* DUMMY MAIN *)  END.  (*$U-*)  PROGRAM GOXY;   PROCEDURE FGOTOXY(X,Y:INTEGER);   (* HAZELTINE 1500 AND 1510 GOTOXY *)   VAR SEND: PACKED ARRAY[0..3] OF 0..255; $  BEGIN "IF X>79 THEN X:=79 "ELSE IF X<0 THEN X:=0; "IF Y>23 THEN Y:=23 "ELSE IF Y<0 THEN Y:=0; "SENon system disk for nowN*SYSTEM.WRK.TEXT'N8 d&..TEXT&!Lost workfile! Y*..CODEPOld code removed, Text  and N*SYSTEM.WRK.CODE'N8 d..CODELost workfile! Code  file saved  ~=,on system disk for nowN*SYSTEM.WRK.TEXT'N8 d&..TEXT&!Lost workfile! Y*..CODEPOld code removed, Text  and N*SYSTEM.WRK.CODE'N8 d..CODELost workfile! Code  file saved  ~=,on system disk for nowN*SYSTEM.WRK.TEXT'N8 d&..TEXT&!Lost workfile! Y*..CODEPOld code removed, Text  and N*SYSTEM.WRK.CODE'N8 d..CODELost workfile! Code  file saved  ~=,on system disk for nowN*SYSTEM.WRK.TEXT'N8 d&..TEXT&!Lost workfile! Y*..CODEPOld code removed, Text  and N*SYSTEM.WRK.CODE'N8 d..CODELost workfile! Code  file saved  ~=,on system disk for nowN*SYSTEM.WRK.TEXT'N8 d&..TEXT&!Lost workfile! Y*..CODEPOld code removed, Text  and N*SYSTEM.WRK.CODE'N8 d..CODELost workfile! Code  file saved  ~=,on system disk for nowN*SYSTEM.WRK.TEXT'N8 d&..TEXT&!Lost workfile! Y*..CODEPOld code removed  ^  PASCALSYSETUP NUMBER2 NUMBER3 NUMBER4 NUMBER5 NUMBER6 NUMBER7 NUMBER8 NUMBER9 INITS TEACHSET , Text  and N*SYSTEM.WRK.CODE'N8 d..CODELost workfile! Code  file saved  ~=,on system disk for nowN*SYSTEM.WRK.TEXT'N8 d&..TEXT&!Lost workfile! Y*..CODEPOld code removedتPR צ'IF YOU HAVE A VIDEO TERMINAL AND EXPECTצ&TO USE THE SCREEN ORIENTED EDITOR, THE%CHANGES SETUP CAN MAKE WILL BE NOT BE׮'SUFFICIENT. YOU WILL ALSO HAVE TO BIND׮(IN THE PROCEDURE ٤٤צ INITIALIZING  TE x^04 , GHT(צKEY TO END FILE)צ KEY FOR FLUSH)צ KEY FOR BREAK*צ KEY FOR STOP*NON-PRINTING CHARACTER+צKEY TO DELETE LINE,EDITOR "ESCAPE" KEY,LEAD-IN CHAR FROM KEYBOARD-צEDITOR "ACCEPT" KEY-צKEY TO DELETE CHARACTER+צVERTICAL MOVE DELAY"  /ڢתPڢ/ + +צ +צ L@æINITS ث /ȡSOR UP'KEY TO MOVE CURSOR DOWN'KEY TO MOVE CURSOR LEFT(KEY TO MOVE CURSOR RIGHT(צKEY TO END FILE)צ KEY FOR FLUSH)צ KEY FOR BREAK*צ KEY FOR STOP*NON-PRINTING CHARACTER+צKEY TO DELETE LINE,EDITOR "ESCAPE" KN HEIGHT%צ SCREEN WIDTH&LEAD-IN TO SCREENMOVE CURSOR HOMEצERASE TO END OF SCREEN ERASE TO END OF LINE צMOVE CURSOR RIGHT!צMOVE CURSOR UP! BACKSPACE" ERASE LINE#צ ERASE SCREEN#KEY TO MOVE CURKEY FOR BREAK]/PREFIXED[KEY FOR FLUSH]/PREFIXED[KEY TO END FILE]/ PREFIXED[EDITOR 'ESCAPE' KEY]/ PREFIXED[KEY TO DELETE LINE]/ צ!PREFIXED[KEY TO DELETE CHARACTER]/ צPREFIXED[EDITOR "ACCEPT" KEY]/ צ SCREE]$צ%PREFIXED[KEY FOR MOVING CURSOR RIGHT]/צ$PREFIXED[KEY FOR MOVING CURSOR LEFT]/"PREFIXED[KEY FOR MOVING CURSOR UP]/צ$PREFIXED[KEY FOR MOVING CURSOR DOWN]/ PREFIXED[NON-PRINTING CHARACTER]/צPREFIXED[KEY FOR STOP]/PREFIXED[PREFIXED[MOVE CURSOR UP]$צPREFIXED[MOVE CURSOR RIGHT]$צPREFIXED[ERASE TO END OF LINE]$ PREFIXED[ERASE TO END OF SCREEN]$צPREFIXED[MOVE CURSOR HOME]$PREFIXED[DELETE CHARACTER]$צPREFIXED[ERASE SCREEN]$PREFIXED[ERASE LINEW.PتP,+,---ٚ-P-,-V6TFTRUE׮FALSE׮ HAS CLOCK HAS 8510AHAS LOWER CASEצHAS RANDOM CURSOR ADDRESSINGHAS SLOW TERMINALSTUDENTFSצGSRSצUSSPتP+ +(++!T&ڪP. (á  WW--̀ƀצENTER ƀVƀ/̀ʀPʀʀٚʀؚʀʀʀʀW.تo צNULצSOHצSTXצETXצEOTצENQצACKצBELצBSHTצLFVTצFFCRצSOSIצDLEצDC1צDC2צDC3צDC4צNAKצSYNצETBצCANצEMSUBESC, Text  and N*SYSTEM.WRK.CODE'N8 d..CODELost workfile! Code  file saved  ~=, on system disk for nowN*SYSTEM.WRK.TEXT'N8 d&..TEXT&!Lost workfile! Y*..CODEPOld code removed, Text  and N*SYSTEM.WRK.CODE'N8 d..CODELost workfile! Code  file saved  ~=,GOTOXY IN THE OPERATING׮צ(SYSTEM. SEE SECTION 4.7 OF THE DOCUMENT.Eצ#NOTE: DISK UPDATES CREATE THE FILE:צ NEW.MISCINFOצ(ON YOUR DISK. THE NAME OF THIS FILE MUSTBE CHANGED USING THE FILER TO: ׮ SYSTEM.MISCINFO׮צ&IN ORDER FOR THE CHANGES YOU HAVE MADETO BE LOADED AT BOOTSTRAP TIME.׮T צ"ALL NON-PRINTING CHARACTERS EXCEPT&CARRIAGE RETURN (CR) WILL ECHO AS "?".׮צ&THE INPUT ABORT CHARACTER, "*", CAN BE(!צ&TYPED IN RESPONSERRENT SETUP ONצ$ DISK AS THE FILE "NEW.MISCINFO"צ! WHICH MUST BE CHANGED IN THE FILER TO "SYSTEM.MISCINFO"צ$M(EMORY) UPDATE CHANGES THE SETUP INצ! MEMORY UNTIL THE NEX ڂ6NƁ.`צ QUIT: D(ISK) OR M(EMORY) UPDATE,צ R(ETURN) H(ELP) E(XIT) *NEW.MISCINFO٥`_/_́ʁȡ__'D(ISK) UPDATE PUTS THE CU  ?P#QP꿹!ááE %T "ڪPP-תP---<. LتP  ˡ-ڕڕ   aA!áHڦתP /ۄ ><áצPצ<>/áQšHۓ<?IتPٓצ BUG LOCATION צ'PLEASE WRITE DOWN THIS LOCATION AND ANY&SUPPORTING DETAILS YOU CAN, AND REPORT$IT TO THE UCSD SUPPORT STAFF AT YOUREARLIEST CONVENIENCERBACKSPACE'צ(CHARACTER WILL BE ECHOED TO THE TERMINAL"WHEN THE 'KEY TO DELETE CHARACTER'׮צ IS TYPED.   .d< L d  OR THAT CHARACTER,׮&JUST TYPE IT IN (AND CR). BOOLEANS ARE׮צ!INPUT BY TYPING "TRUE" OR "FALSE"צ (AND CR). FOR MORE INFORMATION,$PLEASE SEE THE SYSTEM DOCUMENTATION.׮z צ"HINTS ON DEALING WITH BACKSPACING:'THE 'KEY TO DELETE CHARACTER' SHOULD BE׮(SET TO THE KEY YOU WISH TO TYPE TO CAUSE׮צA BACKSPACE. THE ' STARTS AS DECIMAL.$NON-PRINTING CHARACTERS MAY BE INPUT׮צ'BY TYPING THE KEY WHICH GENERATES THEIRצ&VALUE (FOLLOWED BY CR) OR, IF THERE IS%AN ASCII MNEMONIC FOR THAT CHARACTER,׮&JUST TYPE IT IN (AND CR). BOOLEANS ARE׮צ!INPUT BY TYPING "TRDING TO THE FORMAT:!->O-{OCTAL}-!׮צ! !'--DEFAULT----!----------->DIGIT--->(CR)׮"! ! ! ! ! !׮צ"!->H-{HEX}---! !->(-)-! !-DIGIT<-!! !׮צ!->D{DECIMAL}!Oצ$THE DEFAULT RADIXRE GIVEN IN OCTAL, DECIMAL OR'HEXADECIMAL RADIX, CHARACTERS ARE GIVEN׮&AS THEIR ASCII VALUE AS NUMBERS AND AS׮צ#THEIR ASCII MNEMONIC. BOOLEANS AREצ(EITHER TRUE OR FALSE. ENTER NUMBERS, OR(CHARACTERS AS THEIR ASCII NUMERIC VALUE,׮צACCORQF// CTER 84צ$WILL ECHO ON THE SCREEN THE SEQUENCECHARAQFCTER׮$AND WILL BE UNDERSTOOD AS THE STRING׮צ& "CHARACTER". WHEN YOU ACCESS A FIELD,$YOU WILL BE SHOWN ITS CURRENT VALUE.׮צ&NUMBERS AELETE YOUR RESPONSE( /צ%TO A QUESTION CHARACTER BY CHARACTER,צ(ECHOING EACH CHARACTER AS IT IS DELETED.%THE ECHOED DELETED CHARACTERS WILL BE׮(ENCLOSED IN ANGLE BRACKETS. FOR EXAMPLE,׮צ!TYPING THE SEQUENCE OF CHARACTERSCHARAצ%THE LINE DELETE CHARACTER, "*" ALLOWS(<(YOU TO DELETE A RESPONSE YOU GAVE IF YOU׮צ'HAVE NOT YET TYPED CR. CR WILL BE SENTצ'TO THE TERMINAL AND YOU WILL BE ABLE TOצ'START OVER ON A NEW LINE. THE BACKSPACEצ(CHARACTER, "*" WILL D TO MOST REQUESTS FOR"INPUT AND WILL ESCAPE YOU FROM THE׮צ(SEQUENCE WHICH ASKED THE QUESTION, E.G.,(WHEN CHANGING A VALUE, TYPING "*" TO THEת( !"PROMPT "NEW VALUE" WILL ESCAPE THE׮צ"CHANGE WITHOUT ALTERING THE VALUE.Y*T SYSTEM INITIALIZATIONצ"R(ETURN) TAKES YOU BACK INTO SETUPצ IF YOU'RE NOT DONEE(XIT) TERMINATES THIS PROGRAM"DMC ,R썡07 C(ONTINUE) Q(UIT)CUN Vצ OCTAL DECIMAL HEXADECIMALء.ǀɡצ ASCII ɡ CONTROLɡ 1) ń ġצ RADIX FROM ;צOCTALDDECIMAL1צ HEXADECIMALYC6 / TO EITHER ^DECIMAL OR HEXADECIMALVOCTAL OR HEXADECIMAL6OCTAL OR DECIMAL H(ELP) Q(UIT)צ&S(INGLE) ALLOWS YOU TO EXAMINE 1 VALUEצ BY NAME'P(ROMPTED) TAKES YOU THROUGH ALL FIELDSצ(R(ADIX) ALLOWS YOU TO CHANGE THE ASSUMEDLD: [쓄Hצ DIDN'T FIND NAME OF FIELD: 쓡]R쓄<쓡4 FIELD NAME = آخLצ#CHANGE: S(INGLE) P(ROMPTED) R(ADIX) \ڪP.P.....O T : Tצ NEW VALUE: .썓!צ NEW VALUE:  썡׷خeJT |á á $NAME OF FIE 쓄 쓡 N썡쓡ۮ46X r˦ SHOWSCALARˡ˦ SHOWSCALARCURRENT VALUE IS ٢L lALLOWED VALUES ARE:צSHOWALLآá+_'Dɡ_ؑȡ#_*hȡ  (á 2ECIMAL5צNOW HEXADECIMALO> 3l: O(CT) D(EC) H(EX) Q(UIT)/ 'DO 5썡ġ ASCII MNEMONIC FOR THE CHARACTER C(ONTINUE)Cá &  쓡jWANT TO CHANGE THIS VALUE? (Y,N,!)YE@썡p | Gצ NOW OCTALL NOW D!->(-)-! !-DIGIT<-!! !!->D{DECIMAL}!ڡצ OR IF YOUR KEYBOARD CAN GENERATEצ%THE VALUE YOU WANT, JUST TYPE THE KEY&AND THEN TYPE CARRIAGE RETURN, OR TYPE$THE ..  IN THE FORMAT BELOW:צ!->O-{OCTAL}-!צ! !צ'--DEFAULT----!----------->DIGIT--->(CR)"! ! ! ! ! !"!->H-{HEX}---! ߡ 0 A  ₚ ȡ00 A  ōޡĄȄ  "INPUT VALUES IN THE DECIMAL RANGE: F 0  ( DO 6-á = C / ~D5 -á1 FFȡ    ɡ^@ ?b צ NEW VALUE: ܄ ȄBo!! o!  DELׯ !˄Ȅᚹ    ń ġ= ɡ  A ء!ɡ&o! o!DáצDEL (ٳ?IfH 4 HS   Qá ,   צ"SETUP: C(HANGE T(EACH H(ELP Q(UIT צ[S.2]  צ(C(HANGE) ALLOWS YOU TO CHANGE OR EXAMINEצ& THE VARIOUS PIECES OF INFORMATIONצ' THE SYSTEM HAS ABOUT YOUR HARDWARE CONFIGURATION$T(EACH) TEACHES YOU HOW TO USE SETUP&Q(UIT) ALLOWS YOU TO MAKE YOUR CHANGES( PERMANENT AND TO L$UNTIL KEYPRESS; $READ(KEYBOARD,CH); $TEXTMODE; "UNTIL FALSE;  END.  EAT WRITE('CHANGE: '); $READLN(CHANGE); UNTIL CHANGE >0; $REPEAT (* FOR EACH SPIRALLELOGRAM *) &DISTANCE:=10; &INITTURTLE; &PENCOLOR(WHITE); &WHILE DISTANCE < 250 DO NEXTLINE; $ FILLSCREEN(REVERSE); &FILLSCREEN(REVERSE); &ANGLE:=ANGLE+15; FOLKS...');  EXIT(PROGRAM);  END;    BEGIN (* MAIN PROGRAM *) "COL:=WHITE; "WRITELN('WELCOME TO WHILEPLOT'); "WRITELN('ENTER ANGLE 0 TO QUIT.'); "WRITELN; "REPEAT $WRITELN; WRITE('ANGLE: '); $READLN(ANGLE); $IF ANGLE=0 THEN GOODBYE; $REPN $BEGIN &IF COL=WHITE2 THEN COL:=WHITE 4ELSE COL:=SUCC(COL); & WHILE COL IN [BLACK,BLACK1,BLACK2,RADAR] & DO COL:=SUCC(COL); $END; "PENCOLOR(COL);  END; (* NEXTLINE *)  "  PROCEDURE GOODBYE;  BEGIN "TEXTMODE; "WRITELN; WRITELN('THAT''S ALL  PROGRAM SPIRODEMO;   USES TURTLEGRAPHICS,APPLESTUFF;   VAR "DISTANCE,ANGLE,CHANGE: INTEGER; "CH: CHAR; "COL: SCREENCOLOR; "  PROCEDURE NEXTLINE;  BEGIN "MOVE(DISTANCE); "TURN(ANGLE); "DISTANCE:=DISTANCE+CHANGE; "IF (DISTANCE MOD 40)=0 THEO^ğEEAVE THIS PROGRAM,CT$ } "A6` ^6H*  "" B.:t4  צ(C(HANGE) ALLOWS YOU TO CHANGE OR EXAMINEצ& THE VARIOURMATIONצ' THE SYSTEM HAS ABOUT YOUR HARDWARE CONFIGURATION$T(EACH) TEACHES YOU HOW TO USE SETUP&Q(UIT) ALLOWS YOU TO MAKE YOUR CHANGES( PERMANENT AND TO LEAVE THIS PROGRAM,CT$ } "A6` ^6H*  "" B.:t4  צ(C(HANGE) ALLOWS YOU TO CHANGE OR EXAMINEצ& THE VARIOUN^ffD.   OT); $WRITELN; $WRITELN('THE WORDS IN ORDER ARE:'); $PRINTTREE(ROOT); $WRITELN; READLN; $INITTURTLE; MOVETO(0,170); $WSTRING('BINARY TREE:'); $MOVETO(0,96); $SHOWTREE(ROOT,0); " READLN; TEXTMODE; "UNTIL FALSE; (* TILL ZERO LENGTH EXIT *)  EN"DELTAY[2]:=12; "DELTAY[3]:=6; "DELTAY[4]:=3; " "REPEAT $WRITE('ENTER WORD: '); $UNITCLEAR(CONSOLE); (* NO TYPE-AHEAD *) $READLN(S); $IF LENGTH(S)=0 THEN GOODBYE; $IF LENGTH(S)<=WORDLENGTH THEN W:=S &ELSE W:=COPY(S,1,WORDLENGTH); $INSERTIT(W,ROY-DELTAY[LEVEL]); *SHOWTREE(P^.RIGHTPTR,LEVEL+1); $ END; $END;  END;    PROCEDURE GOODBYE;  BEGIN "TEXTMODE; "WRITELN; WRITELN('THAT''S ALL FOLKS...'); "EXIT(PROGRAM);  END;    BEGIN "ROOT:=NIL; "DELTAY[0]:=48; "DELTAY[1]:=24; &IF LEVEL>4 THEN WRITE(CHR(7)); (* BEEP *) &IF LEVEL<=4 THEN (BEGIN *PENCOLOR(NONE); MOVETO(X+44,Y+3); *PENCOLOR(WHITE); MOVETO(X+56,Y+DELTAY[LEVEL]); *SHOWTREE(P^.LEFTPTR,LEVEL+1); *PENCOLOR(NONE); MOVETO(X+44,Y-3); *PENCOLOR(WHITE); MOVETO(X+56,ETO(X,Y-5); MOVETO(X,Y); "PENCOLOR(NONE); MOVETO(X+2,Y-4); "WSTRING(W); MOVETO(X,Y);  END;     PROCEDURE SHOWTREE(P: NODEPTR; LEVEL: INTEGER);  VAR X,Y: INTEGER;  BEGIN "IF P<>NIL THEN $BEGIN &X:=TURTLEX; &Y:=TURTLEY; &BOXWORD(P^.WORD);&PRINTTREE(P^.RIGHTPTR); $END;  END;    PROCEDURE BOXWORD(W: WORDSTRING);  (* BEGIN AND END PEN AT LEFT OF BOX *)  VAR X,Y: INTEGER;  BEGIN "X:=TURTLEX; Y:=TURTLEY; "PENCOLOR(WHITE); MOVETO(X,Y+5); "MOVETO(X+44,Y+5); MOVETO(X+44,Y-5); "MOV TREE FURTHER *) $BEGIN &IF W>P^.WORD THEN INSERTIT(W,P^.RIGHTPTR); &IF WNIL THEN $BEGIN &PRINTTREE(P^.LEFTPTR); &WRITELN(P^.WORD); NG; $W: WORDSTRING; $DELTAY: ARRAY[0..4] OF INTEGER; $   PROCEDURE INSERTIT(W: WORDSTRING; VAR P: NODEPTR);  BEGIN "IF P=NIL THEN (* MAKE NEW NODE *) $BEGIN &NEW(P); &P^.LEFTPTR:=NIL; &P^.RIGHTPTR:=NIL; &P^.WORD:=W; $END "ELSE (* CHASE DOWN***********************)   USES TURTLEGRAPHICS;   CONST WORDLENGTH=6;  CONSOLE=1;   TYPE WORDSTRING=STRING[WORDLENGTH]; %NODEPTR=^NODE; %NODE=RECORD ,WORD: WORDSTRING; ,LEFTPTR,RIGHTPTR: NODEPTR; *END; *  VAR ROOT: NODEPTR; $S: STRI   PROGRAM TREE;   (**************************************)  (* *)  (* MAKE AND PLOT A SIMPLE BINARY TREE *)  (* (PROGRAM BY BILL ATKINSON) *)  (* *)  (***************,hhJiЍ L֢ hLh )hJ¥jJJhhihhhhhhb\8ſƅhx Щ&'H(f'ꮭ'eƍ8ƅб ĘHH``P@ߠ ߮м`|H ߠ ߠ'È h`@ ؠ ح0`+` ޥHH ޥhhL ߦ ސ`,10` ` ` ` ޤOȄ`H$)A[hIH80(hI`i(8H(LhhhhhhhhץHH`JJJJ ϱ`H "ݠLf H 9h`JIi' 'x`38 0P`8 0 ߥ` )`,10 )?ILޢݮ` ߅߅l(,LZ ݘJJ )  LJI)LZܩLZ܊) 9ݐ)LZ܊JȩآL ݠ؈hxJiЍI*EJ F؅GF G ӝ4ȩآL ! ֑ȭ֑ Lܢ `) ؊H "h ɢ` ع)`H B "ݠLfڠ0* )` ]Hh` } p pۢ` ێ` ح`2`) ! ` عJ` " MȽ` B "HLf ݠ }ۑ p0 ۩J*L ݢhhhHH)> `( $ `Q`) " Ȣ``H "ݠ h ڍ,,`lJI*I II `$p"0*nXw ؆ ڤ ڢ` ` (!/< ` ح0 ,10i0  I ,109,c$0 A[ $P0Jj)jj&UIL؈ )?LI@a Hb c0  hH َh$L hhh O靱`hhh(`hhhDEDD@+( `8][ ZD[E`&ʩˠhhѱʅE[ʅDZȑ`8Hh`HH(x h(`HHH*LfF0 9ݐ9 Lo٥")jR )LB֠BȱB֭J `JB)BC ֐+/ @( ` ֌֢`0&J}iʰ ֥͝֐` حBCJuJ DE 9ؽFG ְU0ЬЧJ2DEϐ8 (ֹO H֥ +ֹW H H)*Ȫ`FG8` 7 `0($ p,&"VU>)Q>jj`l ! a hx ץH( h ֥HH`:ֈ`֙:`JJJJ C֩B8`Ί aՍxՍՍՍե>?Ռ8T8ՌWuՌvՠ ýI꽌ɪ꽌ɭ蠪ϮәVE]ӾV]H)]ӾV]ԙ)]ӾT]ԙ)]ӦΨ 8$hU>`ȅSϭ߅83Iߐi ө ө ө ӽ`Hh`Q꽌ɪɖν*Ͻ%ϙEΈ 꽌ɪ`8` Hh݌`  $(,048<@DHLPTX\`dhlptx|Հ؈䤨谴LјJ 8彐.mĿ"Š>?( _֮ˍL հ˩($8` Ґh Hǹxhx N`8Ύ߽0|ϩHhHh ӈ ө ө ӘVYԦΝYԮߝꪽԦ ө  Ͱ()I يJJJ(jǩF؅G(  Hֈ k( F G  Wj0 خ $Ӱ4 xH ߩ`Ǚx kh k@(LYҭH͍h (ͥpi)ͥˤ˹(hI`J) )i i`HH8(iPH ߠ'(hH tߩ thhehL ߍߠ'O`J!L80 %M8$L/L`    Objqޏtޘޤޮ޴޵޺޹߅߅h~h~߅~߅~р ȱ~р~р %v HHLҩHHLҢh~E0~E~~~Ղ0LSLSh)~hh)h~LK vhhh~hE0Ł~ŀHJ@0D:hh рР~ȱ~LҠ ULҥXiXYL h~hhh~ȑ~Lҥrehrseistehtueiuisu ʱrtLhLrtLhhhi0WhthuhettheuuhrhsherrhessXЅiʱrthhhhhehiehIihIiiŒ.L>'ņŇ0 L-8ƇL-8厪HHLhhhhTLGץT8~U~8~Xȥ~YT VLҍRSLȱȱLѥ8Ɓ8t8turt`e`aea^`8ƛ`8Ƈ` 48ޟ`#^i`ia\]`hh Lhh DLҍX lhhhhhihhhhLhthuhettheuui ʑtuLhLtLhhhhheheh0I 8ȑ8内凅8刅ȱ剅ȥ 8eȱeiƄLꥊrstu8r`sa8trus~ ,8咑ȱ哑8ƏƄئsuʱrtrtL뤌3r8包rst8包tur8rsȥ噑8񆅔ȥ񆅕 8 iiLG꥖ 奘 奔 хх ,쥀iƄLrs\t]uʱrtusLꦌLrt~8儅ƛ8儅ƛi揥8Ɓ8ƏƄа~ŊŋL!쥊8Ƌ8񊪥񊅋i8劅勅8\包\]卅] E8`a8\刅]剅 , 58Ƈ8\񆅖ȥ]񆅗8񆅖Ɨ8 ƗLPQ Lm 8챆e`ȱea8嘩~&~m@mA@6ȱ@18\@\]@] E\8]^`Lъ8`a ~8`儅a8bcL`a8Ə , 1+Ŋ勰Œ哐勰HHH~ 9~H 1[HZH ;楙HHHH ~ ۥhi ץheheHHLҍXXhh @&heheHHHHeHHL{hhhhhhȱ80 iff =߅=HHLh~hhhh\)\]H\H0 X\\8\]\ȥ\ȥ^\ȥ_\\^]_8\Z][LѥXeXYLҥ~i~H~HLThrhshthuXs&trȑtLҠrrtLڱrtLL-Һ~~LLҠ UhehheiHHLҠ UIiHHLhhhh @إHHLh~hhhE0Ń)ŀ!0E0~łLLѥ^~_~`~Xȱ~Y`~ȱ~~L x٥XYXYXXYL x٥XYXYX悥q~m\8傅\]h"IiIiIiIi ץHHLҺHHLנnoL ҥIiIi攥IiIiƔ8吥呰 ` of"f fofn8no8&&`ffofn&&`hhhh @إIi[8\Z][LL h~hZ~ȥ[~Lh~h~Zȱ~[&'LҩlLhh0HHLҨIiIiHHLҺ}}LhIihIiHHLҺ8Lҩonff nenoeofofnff`hh0 hhL(hL==LҺLhhIHIHLҍXXhhQX0XŗiX`0\XE0XLXŖC?8XX&XeYei无8XYLҥXiXYL h~hhh~&Zȥ[Ze~Z[ehh~ȥLҍXȘ ~X)XYXHXHXe~XYLҍX~ 8倐~hrhsrHrHLLэX~e~e~tu~LhththhLҺh}~h}~Lhhh~hhe~~he~Lhrhshthu Umo nHnHL{ҍX Ѡ Uѥhelniemoni nooHnHL{ҍX Ѡ Uѥhelniemo hnhnL{ҍX Uѽeh~ei~H~HL{ҍX Uѽeh~eih~h~L{ҍX UѽeheiHHL{h~hȱ~H~HLh~h~YLҩHHLҠXHXHL{飨RHRHLҠ zeRneSo nHnHLҠ zeReSi HHLҠ zeRneSo hnhnLèPHPHLҠ zePneQo nHnHLҠ zePeQi HHLҠ zePneQo hnhnLҍX Ѡ Uѥhelnie[,($  abc    !8TU 8X再4Y凍5T.V0/1LXiX0Y,XiX#YHHXYX ҍlXYX ҍlh)hLhX0 eXXYLeT~eU~8~X%ֻu%%\H~%%%%%%%)0>N%LXiXYX h&i` hi`XXYX *` `RlSml~ȱlm~l`&'`Z'[&'`1~LHD&'Z\]bHiHLҩHHLҩHHL?? vXLiLLL   UFifhLߠ Uhhh~hXYhL߱~р~iLOLSLKhh8L (PASCALSYUSERPROGFIOPRIMSPRINTERRINITIALIGETCMD FILEPROC  `1 b~ éÍ~  , Ą쓡"á  :"ë á 쓡ת$  ńȄ!~Í`~W ˡ!  ,ȫ$* "ë넡,~ *Í2~ š˄ K7"á61 ɚ V %ɡšɡš  PꟚšw#ńE z 0šQȡ2 š:X f Ą ɡ 낫š ꓡ1š땫Ě@7"á1ꓡ삫Ú š ȡ*ńȄ4šáRתPńȄ ,ń.áš蕿@1á6   Q lPš蕫š 쾿  /P ná " *  ɡ'áצ-32768 ^ 逫-ġ>o00ń0ˡ oɡa š  %4á0ȡ==> ?r??:@@AABB,CCDDDE&FFFGTGnGGH\JJxKL6M6NNNOrOOOOP^PPvQ```:צPascal system size is 128K;;ȡ1Copyright Apple Computer -ë0zY 000á'6á 0z00 rT\   áá  T& "ˡ  J    00áQP 0á0 é000+-Í ë  q8 "ˡ,8 )á á áaˡ á Nšá áÄPress CONTROL-RESETC^ Íáɡ 럚肚X  ššƁƂ6&06ˡ6áƁ8:9" &8(2ȡ4'*4 ?4 3-bi ö >(4ȡ &ǀǏȡ &20(FCOPYRIGHT 1979,1980,1983-1985 APPLE COMPUTER, INC. ALL RIGHTS RESERVED(   d˯7 H Pצצ22ȡ5233 ȡ 23aĩ3zȄ 23aA22š*á?%áצ:22ȡá;2á!2ȡ5252š[ץ22š2222ȡ2š5252á4w4]ץ11á4\1šV42233z 3042221é42é1Ä2*á444ń5   ġނš  šš!۞ۂۂەߓS  ! "ˡ.! "ˡ ߡ  šۢ ::87CONSOLE1:7SYSTERM2:7GRAPHIC3:7PR P:NEWC/C.CODE:6REMOUT8PSb.:=b4/#b:a@:%aF:`L!I`R[/`X)`2 4j P:NEWC/C.CODEDEDEKYKK.2 4k/P/NEWC/C.CODE.CODE8FNo user programתP8F0ERM2:7GRAPHIC3:7PRINTER6:5REMIN7:6REMOUT8E/KY Kh Pt.PE87CONSOLE187CONSOLE1:7SYSTERM2:7GRAPHIC3:7PRINTER6:5REMIN7:6REMOUT8P IYIL: P/.P> 8:E&*E$ á"ˡ"& E ##&Eá 9'29:Eá.0:: ,S0b:,SI Fb ˡ?ء "ˡ7ߕނ߂ɡ F b7} š.ö}Ä-D8W2EEHצE#  9 *,.0246 I/O error #  d4ˡ.$  š t@5,á/š ġ 5,+á"š ġ Z |6?š?Put in :P?FP'&then press RETURN *q# 2צS# أ , P# أ צ, I# أ \3צExecution error #   á&ˡ 퓄 Ä퓡w š   ɍL  "ˡ.ˡ   d쓡  16!~?^Fצfile-, } .}ˡ2Error writing exec file-} l/E2:Eá *0  š迶Ŷ} / š/áá-`,3# , , ,//~6\-}ˡ2Error reading exec ÄȄĄMȄtiȡF ōɍ ō ȍ  dč "쓡ë 쓡ת!!9 D*驁&F+}'Press to continue) & Í ˫N V(&:0:azȄaA:)~áë  Ä *@#5$$&ˡ 5 56%ˡ 5Jˡ 55ˡ+&ȡ 5& t&$&F5P.TEXTׯ]צ.CODEJ.BACKׯ7צ.INFO$.GRAFׯצ.FOTO /T! ȡ   צ0H" ġ 2ب"́$ʁ$ ʁ$ ʁ$ ʁ$ʁ$!"ʁ$ʁ$ʁ$ʁ$FZ   ނ ń1 áނ š   šš$ !۞ۂۂەߓh  ! "ˡ ɡ!  ! "ˡ ߡ š  ńá4 á,á" r 1٦׷)צ: ܢܢH d    0&תת.ת??? *SYSTEM.WRK.TEXTײ& צ*SYSTEM.WRK.CODE ,CONSOLEצSYSTERMGRAPHICצPRINTERREMINצREMOUT{B77::9988:9  6 ۪*ʁd ضá0?ʁd*SYSTEM.STARTUPת(߫7́%́eʁ%ʁeȡlضʁ%ʁbQ́fƁfʁdƁfƁ&ʁ% Ɓf(ߡʁ% ʁbʁ%́bʁ%́%;??ٟá'C "á ~٤  :SYSTEM.ASSMBLERת :SYSTEM.COMPILERת :SYSTEM.EDITORת :SYSTEM.FILERת צ:SYSTEM.LINKERƁ&<́b́cʁcȡ~ؤ́dʁdתʁdس0ʁdʁd؞&"á>ʂ>ʂ>ʂ>ʂ>ʂ>ʂ>88ʂ>  תʂ>ʂ>ʂ>̂?Ƃ?Ƃ? Ƃ?ʂ>ˡdتٞ&ʁ =ʁ"*ʁ+̂=ʂ=Gʂ=Hʂ=Iʂ=%O tƁ&̂=ʂ=ʂ=ʂ=ʂ=%̂>8ʂ>ʂ>ʂ>ʂ>ʂ> ʂ>ʂ> ʂ> ʂ> ʂ>  ʂ>ʂ=̂>ʂ>ʂ٢ š٢ ٢٢ 4$88ؗ(/88ؗ(tDoo odoo'z*SYSTEM.MISCINFOתPƁƁ!must read a multiple of 512 bytes-Nצunknown ProFile error-0({gO8#tLצ I/O error: -Unimplemented instructionת-Floating point errorת-צString overflow-zצProgrammed HALT-bצProgrammed break-point-CCodespace overflowת-( |`>'t^A<0.|t openת-bad input formatת-צdisk write protected-illegal block #ת-illegal buffer addressת-xצ!must read a multiple of 512 bytes-Nצunknown ProFile error-0({gO8#tLצ I/O error: -Unimplemented instructionת-Floating point errorת-צString overflow-zצProgrammed HALT-bצPn volumeת-volume not foundת-צfile not found-duplicate directory entryת-file already openת- file not openת-bad input formatת-צdisk write protected-illegal block #ת-illegal buffer addressת-xצed by user-צSystem I/O error- unknown causeת-צ parity (CRC)-illegal volume #ת-צillegal I/O request-צdata-com timeout-volume went off-lineת-צfile lost in directory- bad file nameת-no room oצUnknown run-time error-צValue range error-צNo procedure in segment-table-צExit from uncalled procedure-Stack overflowת-צInteger overflow-Divide by zeroת-צNIL pointer reference-צProgram interrupt8 ́$ʁ$ ʁ$ ʁ$ ʁ$ʁ$!"ʁ$ʁ$ʁ$ʁ$FZ   ނ ń1 áނ š   šš$ !۞  7 :9CONSOLE:ת(:9צSYSTERM:(8:98 6øצ???JanתצFebMarתצAprMayתצJunJulתצAug Sepת צOct Novת צDec ???תצ??????ת6!צ  HצTתP%%@99ˡ|́ŕsʁśtʁtˡ  צ not codeʁs2ʁt"ˡצ Bad block #0ڡmƀ ˡ`SYSTEM.COMPILER RFORTRAN: .  is not version 1.3ړ22Ɓ2 bޡ: LA?̃Aʃȡ@A|A:'A צ @@@áAAM5 r  ߪPƁ_Ɓ6 PƁ6ƁcƁgƁoƁp!́qƁcʁq ת "ˡCܡ>"áצIllegal file nameNo file  Ƃ;P Bń"CB̃CʃȡDC)CC Ƃצ*SYSTEM.LIBRARYPƂ?:צ-Error: Required library files are not present ?צ3Error: These required intrinsic(s) not available: @:ڢ̡d?kt d;.2>!2+2š$2צ.CODE 22 š22 ;.צ:2.LIBP۪PB?D)؞D)ؿ؂پáپ$áڸBBBi ȡؾaġ زؾ $ 2dd;"ákt"áFLIÄ*LIBRARY FILES:ׯá`?kt"á 8צ Warning: צ is not used?צ&Warning: Cannot open the library file dRپáپ$ò$ÄiȡXP  ٲ`ݤۼ: T $ ȡ\q٤زضؗ ٤d n | تPdd"آڤ á4á/آ*Í]  hޢ ȡWڤ ˡD۳-ܢ0ۤ ݢ`ڤá ^| ȡ2ݤˡ"ޢڳ@@YyÍ, 4ۢڤ ɡ?š2ڪP-19:!1ׯ)Illegal filenamenT(ˡ-C ;;ȡצPascal system size is 128K;;ȡ1Copyright Apple Computer 1979,1980,1983,1984,1985צCopyright U.C. Regents 1979%System re-initialized` 6:v#z,H"   P  Welcome ?, to Apple II Pascal 1.3Based on UCSD Pascal II.1צCurrent date is C -C-C ;;ȡצPascal system size is 128K;;ȡ1Copyright Apple Computer 1979,1980,1983,1984,1985צCopyright U.C. Regents 1979%System re-initializedPLE7:::% š tWelcome ?, to Apple II Pascal 1.3Based on UCSD Pascal II.1צCurrent date is C -C'Version 1.3 of SYSTEM.PASCAL cannot runצ&with a non-1.3 version of SYSTEM.APPLE@9988)The 128K version of SYSTEM.PASCAL cannot צ(run with the 64K version of SYSTEM.APinking...ݡ #צMust L(ink first|Ɓ2ƀ¼:צ.Conflict between intrinsic and user segment(s)0ƀ¼ 2 2 Ɓ_& ۤ  áۤ  !~!!f!צ*V! ""!"צ:" "ۤ   ۤ    áۤ  R   88K7AX0bM=3 C(,.*u Cjp6$ h  <$((T2&^ 66!.j2쓡 צ Linking...ˡ& Restarting... U not allowedQáPצ-Do you wish to exit the Pascal system? (Y/N) YyÍQZQIÍ-Qá6O, C(omp, L(ink, X(ecute, A(ssem, ? [1.3]P')%?áZFDCommand: U(ser restart, I(nitialize, S(wap, M(ake exec, Q(uit [1.3]תP')% 6!.j2쓡 צ Lin98:9á/)*SYSTEM.ATTACH  áá(צ*SYSTEM.STARTUP %áá 6   HˡFצDCommand: F(ile, E(dit, R(un]ˡ([8]+("á%צ Terminator=צ , change it?)צNew terminator:} ȡ/,-Z N:0Í1Í2Íسs2ø1öRצ to exit): P+! Vf%צ:!צ Running...vצSwapping levels:צ 0 = system is not swapp%צ what file ( to exit) ? Pšš+00.0.0ȡ#+.//a/zȄ +./ ..+צEXEC/eVP+"á(.}צ.CODE.  "á.צNested exec commands illegal"צError opening execd 6~}6 "ء HP\צExecuteening ,;   áث 7b7T 7 š, š%צSYSTEM.WRK.CODEsSYSTEM.WRK.CODE׷Fš5צ(To what codefile ( for workfile) ? (צáצHá<$88š8(8+,,"ˡd;": I/O Error #:  occured while opá(+(.TEXT888Ä8 "ˡ$ Can't find <<9 ƀ:ײ9 ƀ<צSYSTEM.SWAPDISK&<(7,צ*SYSTEM.WRK.CODE[*];(áצ Assemblingצ Compiling...á999'<<<צ:<&<(áAssembleCompileצ! what textfile ( to exit) ? (ׯking...ˡ& Restarting... U not allowedQáPצ-Do you wish to exit the Pascal system? (Y/N) YyÍQZQIÍ-Qá6Oڢڢڢڣ ڣ ١ڢ ڣ ڣ١ ڢڣڣ ڣ áڣڣġ ڢڣڣ hڢ ڢ١ڢ!ڣڣ ڢ!ڣڣ ڢÄڣ &ڢ ڣ ڢ! ڢ!ڣڣ ڢڢ ڣڢÄڢ  24<& צ š š۾.ˡצ([šܕ!!(š۾:ˡ١.TEXTת .CODEת!!ȡ3ܾܾ ܾ ɡ?š!!Ȅ!!P!x!P &(8L@JBGD> Z`dhdޢá ~תޢޢޢ024<& צ š š۾.ˡצ([šܕ!!(š۾:ˡ١.TEXTת .CODEת!!ȡ3ܾܾ ܾ ɡ?š!ݓۤ  dÄÍ"ߢ ˄"ɡۤ  dáߢ  dá ߢ C#ޣC˄ ߢ C ߢ ۤ ߢޣ ޣߢ ޣޢ ޢۤ ޢ áޢá ~תޢޢޢ0ˡ) ! 767䚹 :V\28˄ޢߢšáޢ ޣ ߢ  dޣޢޣޣߢ  dÍÍޢˡ ݓۤ ۤ Ä˄~ݤ ת   ١  n ١ á9 ٓ/! !!١á ~ݤݚ ˄ܟń ١á  ޤ wš  iá Ä,ޤ  ɡ"áޤ lܟġMáš7 ܂ۻݪ d #(   !š Í 7ÄU ǐɄ:6ń~66! šá٢.ٕ۶š ڸ۸۶ š۸ ڸ:   ȡQ  ȡ   ȡ? ȡ  ġ  á