`L i=L\Ʃx ? N'i  ͭЅ?0ȱ Ѕ?iȱi lԠԠ͠ԠϠŠͮŠ SYSTEM.APPLE   L$JN^vgˠmw GENSORT.TEXTvgIw{SORTDEMO2.TEXTgˠ{SORTDEMO2.CODEgˠ STARTUP.TEXTvgˠ GRUSS.TEXT=vgˠSYSTEM.STARTUPgˠ9= SORTDEMO.CODEvg+=? LINEFEED.CODEvg+?ASYSTEM.CHARSETgAQ SYSTEM.SYNTAXvgQU SYNTAX.TEXTvgˠUX SYNTAX.CODEvgˠX^PI.TEXTr=vg2^f HANOI.TEXT=vgˠfi HANOI.CODE=vgˠimPI.CODEr=PSCAL05  INTKORR.TEXTvg  INTKORR.CODEvg MONITOR.DATAvgڡ MONITOR.TEXTvgڡ  MONITOR.CODEvgڡ * SORTDEMO.TEXTvgY*. LINEFEED.TEXTvg.1 CROSSREF.CODEvg19 CROSSREF.TEXTvg&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xH&x'8*7Ixix&&  ') + &п x) ++`FG8`0($ p,&") (jJJ>L+ "?I>  N `  ` x V Nx .x- z `V0^*^*>` aI꽌ɪVɭ&Y&&Y& 꽌ɪ\8`&(*$I-*)  PROGRAM FIXCOMPARE;  TYPE DISKINFO=RECORD &DADDR: INTEGER; &LENG: INTEGER %END; % %NAME=PACKED ARRAY [1..8] OF CHAR; % %SEGDIC=RECORD &DINFO: ARRAY [0..15] OF DISKINFO; &SEGNAME:ARRAY [0..15] OF NAME; &FILLER: ARRAY [1..416] OF INTEGEJLKMMLILLILLLLy 2L,PQ܅x݅yL آ8ЕNЕKʵ˕ە LkLMNܕ`LΥΥLMLʥMː ʥ˰JυKL  8Mϕڥ۰եZU FINDENJצFEHLERSTELLE IN SEGMENT  צ NICHT ZU FINDEN5צ#KEINE "LONG INTEGER"-UNIT ZU FINDEN)KORREKTURPROGRAMM BEENDETjruiWWá#FEHLER KORRIGIERT:צ"FEHLER BEI DER KORREKTUR, SEGMENT  WáFצSEGMENT  צ - FEHLER SCHON KORRIGIERTJצFEHLERSTELLE IN SEGMENT  צ NICHT AME DES BIBLIOTHEKSFILES: .P. "ÍWˡW멃WȡwLONGINTI WWˡWáWáצFEHLERSTELLE GEFUNDENWEIN/AUSGABEFEHLER(2צ$DIESES PROGRAMM KORRIGIERT LIBRARIESצ!DER NAME DER BIBLIOTHEK IST VOLL-STAENDIG ANZUGEBEN, Z.B.:צNAME:SYSTEM.LIBRARYN" FIXCOMPA "END; !IF NOTFOUND THEN WRITELN('KEINE "LONG INTEGER"-UNIT ZU FINDEN') !ELSE WRITELN('KORREKTURPROGRAMM BEENDET');  END.  ER KORREKTUR, SEGMENT ',I) 'END $ ELSE 'IF DATA[494]=240 THEN (WRITELN('SEGMENT ',I,' - FEHLER SCHON KORRIGIERT') 'ELSE (WRITELN('FEHLERSTELLE IN SEGMENT ',I,' NICHT ZU FINDEN') %ELSE WRITELN('FEHLERSTELLE IN SEGMENT ',I,' NICHT ZU FINDEN') $END %IF BLOCKREAD(F,DATA,1,J) <> 1 THEN READERROR; %IF DATA[495]=244 THEN &IF DATA[494]=208 THEN 'BEGIN (WRITELN('FEHLERSTELLE GEFUNDEN'); (DATA[494]:=240; (IF BLOCKWRITE(F,DATA,1,J) = 1 THEN )WRITELN('FEHLER KORRIGIERT') (ELSE )WRITELN('FEHLER BEI D); READLN(S); "RESET(F,S) !UNTIL EOF OR (IORESULT=0);  IF BLOCKREAD(F,BLOCKZERO,1,0) <> 1 THEN READERROR; !FOR I:=0 TO 15 DO "BEGIN #IF BLOCKZERO.SEGNAME[I]='LONGINTI' THEN $BEGIN %NOTFOUND:=FALSE; %J:=BLOCKZERO.DINFO[I].DADDR + 1; OTFOUND:=TRUE; !WRITELN('DIESES PROGRAMM KORRIGIERT LIBRARIES'); !WRITELN('DER NAME DER BIBLIOTHEK IST VOLL-'); !WRITELN('STAENDIG ANZUGEBEN, Z.B.:'); !WRITELN; !WRITELN('NAME:SYSTEM.LIBRARY'); !WRITELN; !REPEAT "WRITE('NAME DES BIBLIOTHEKSFILES: 'R %END; % %BLOCK=PACKED ARRAY [0..511] OF 0..255; %  VAR I,J: INTEGER; $NOTFOUND: BOOLEAN; $F: FILE; $S: STRING; $BLOCKZERO: SEGDIC; $DATA: BLOCK; $  PROCEDURE READERROR;  BEGIN !WRITE('EIN/AUSGABEFEHLER'); EXIT(PROGRAM)  END;   BEGIN !Nڅʥۅ , ` :L΄<Ȅ>=?`ʕ>?>`8M˕   , ` L:L``F`$ ܪȱ 婠Lܤ`Ś25 a0 穠LJKH۰hЅѠȱ0@ȱHШhh0J L赟0L0ܤ } L赟L0ܤ } L ` ` [ S oP YVPL6 O 5OPL Ι_LfP0Q@PPxA@QPa`qp`HP8εxh`ɅLN^ڡڡ . $ ; &?1?=A>?I i`HH11`쩺듧ƙɾ5Ö+]̵Y4ɺл1>@@A`41`>BD`8>6>) `LfL u ?l:L4 uLCL@ 'A=?<) < `JJJ>Ie=?<=`K i! Ȉ2 ,`H h*:` `: V:8 J8L Lӭpd`HVTQ PS 6" (!#%L" PJ TuVTvP` P&Q&R&S8RTSURSP`/T P 8/`HJ) )h)i( ((`ɇ@ 0`$($$!f`ɠbZH&bTDThDt(ntJrtttrDh2"&&rr&HDD h,h-<:B/ Y`EL\lY@5)I:< ?L<EhH 0l( Lh:h; LehHh:h;/ V; THH::;:-H,H E@A  J 0`i H/.  `0 .: VȘ L `8/;e:` T0 "T3  T3  T; "D3 D"D3 D"D3 "D3 &1!YMJؤ#]#)i#$S#$S[[i$$)|mi)S4i#J G(i.&E0%.Q&&` , iH h-`/'-'0 (`HJ) 'h)i& &&`0i)0 00`J G&(JJJJ)`:; H:J jɢ )Jb y.)/) JJJ Ȉ` H:  J/Ȑh,--&,*ʵ``` f f` &L L fLC`8i`uu  ee`` ` 0` ` ` 5I` 5Iй` f f`L ?5=ɥD 5 5 D4ɻɍЀL\ɠ` }Ɏ$ ``LXWVhY `XWYHV(` Jhh LH) JQ JJJH`HJ`hh ?l8e` %GQ/[҅n3peJ?>ʊ:>Ș;k/=:   S;:L 4 40K14 L= BC D..=D5֤4 J :3 g ɠɤ ɓՊ x= 4   &B&C= 44ݴ 4ݺ ɤ4&D L# ȱ0` 4 `u` 7$ 8`0 &&` { %Ppĥ uv` 2e   %F8 2 8Hh&&&&& 0hhI`LLHxܥyݥPQLuƵPxLhQεyϱΠ L 4) ؘ 甠` uHɃLh` ☪ T`  甠`ѥ΅ ΅ҥυө 甠0ХҠ ӕ "L 4i` F`ٚ .L 4 `$$L$Ն$L,L 8!$` & @`a hhLY52BJצ DURCH REBOOT: * 6 -P צWUENSCHEN SIE DEN MONITOR? ,,--.P WWצ#W.QWצ :MONITOR.DATA^W---ɡ -"é-Í-áDצ"FILE MONITOR.DATA NICHT VORHANDEN.++--ˡ- LESEFEHLER!/  צSTART DES MONITOR-PROGRAMMSRUECKKEHR INS PASCAL-SYSTEM NURצ DURCH REBOOT: * 6 -P צWUENSCHEN SIE DEN MONITOR? ' MONITOR  PAGE(OUTPUT); !UEBERTRAGEN  END.  (IORESULT=0) OR (I=8); !(*$I+ *) !IF I=8 THEN "BEGIN WRITELN('FILE MONITOR.DATA NICHT VORHANDEN.',CHR(7)); #EXIT(PROGRAM) "END; !NEW(B); !I:=BLOCKREAD(F,B^,8); !IF I<>8 THEN "BEGIN WRITELN('LESEFEHLER!',CHR(7)); #EXIT(PROGRAM) "END; -P '); !WRITELN; !WRITE('WUENSCHEN SIE DEN MONITOR? ',CHR(7)); !READ(CH); !IF NOT (CH IN ['J','Y']) THEN EXIT(PROGRAM); !(*$I- *) !I:=5; !REPEAT "STR(I,ISTR); "RESET(F,CONCAT('#',ISTR,':MONITOR.DATA'));  I:=I-1; "IF I<4 THEN I:=12 !UNTIL I:INTEGER; $ISTR:STRING;   PROCEDURE UEBERTRAGEN; EXTERNAL;   BEGIN !PAGE(OUTPUT); !GOTOXY(0,10); !WRITELN('START DES MONITOR-PROGRAMMS'); !WRITELN; !WRITELN('RUECKKEHR INS PASCAL-SYSTEM NUR'); !WRITELN; !WRITELN('DURCH REBOOT: * 6 PROGRAM MONITOR;  (* DIESES PROGRAMM LAEDT TEILE DES #MONITORS IN DIE LANGUAGE-CARD #UND STARTET DEN MONITOR. RUECKKEHR #IN DAS PASCAL-PROGRAMM NICHT MOEGLICH *)   TYPE BUF=PACKED ARRAY [0..8191] OF CHAR;   VAR F:FILE; $B:^BUF;  CH:CHAR;  ,,--.P WWצ#W.QWצ :MONITOR.DATA^W---ɡ -"é-Í-áDצ"FILE MONITOR.DATA NICHT VORHANDEN.++--ˡ- LESEFEHLER!N^'YPARTITION *) 'WHILE SORTSEQUENCE(A[LOWER],MIDRECORD) DO (LOWER := LOWER + 1; 'WHILE SORTSEQUENCE(MIDRECORD,A[UPPER]) DO (UPPER := UPPER - 1; 'IF LOWER <= UPPER THEN (BEGIN )TEMP := A[LOWER]; )A[LOWER] := A[UPPER]; )A[UPPER] := TEMP; )LOWER := LOW A[MIDDLE]; (A[MIDDLE] := A[FIRST]; (A[FIRST] := TEMP 'END; &IF SORTSEQUENCE(A[LAST],A[MIDDLE]) THEN 'BEGIN (TEMP := A[LAST]; (A[LAST] := A[MIDDLE]; (A[MIDDLE] := TEMP 'END; &MIDRECORD := A[MIDDLE]; &LOWER := FIRST; &UPPER := LAST; &REPEAT (* &(* SELECT SPLIT POINT BY MEDIAN OF TREE *) &MIDDLE := (FIRST + LAST) DIV 2; &IF SORTSEQUENCE(A[LAST],A[FIRST]) THEN 'BEGIN (TEMP := A[LAST]; (A[LAST] := A[FIRST]; (A[FIRST] := TEMP 'END; &IF SORTSEQUENCE(A[MIDDLE],A[FIRST]) THEN 'BEGIN (TEMP := (SCAN := FIRST - 1; (WHILE SORTSEQUENCE(TEMP,A[SCAN]) DO )BEGIN *A[SCAN+1] := A[SCAN]; *SCAN := SCAN -1 )END; (A[SCAN+1] := TEMP; (FIRST := FIRST + 1 'END %END % " $ELSE (* USE QUICKSORT *) %BEGIN E,SCAN,UPPER: INTEGER; "MIDRECORD,TEMP: SORTRECORD; !BEGIN (* SORT *) "REPEAT #IF (LAST - FIRST <= 10) AND (FIRST <> GFIRST) # $THEN (* USE STRAIGHT INSERTION SORT *) %BEGIN &FIRST := FIRST + 1; &WHILE FIRST <= LAST DO 'BEGIN (TEMP := A[FIRST];AST]. USE A STRAIGHT INSERTION *) "(* FOR SHORT SEGMENTS. THE INSERTION SORT REQUIRES THAT *) "(* A[FIRST-1] <= ALL VALUES IN A[FIRST..LAST], THUS IT CANNOT *) "(* BE USED WHEN FIRST = GFIRST. REQUIRES FIRST <= LAST. *) !VAR LOWER,MIDDL ---------------------------- !$I GENSORT   ***************************************************) #      PROCEDURE GENSORT(VAR A:SORTARRAY; GFIRST,GLAST: INTEGER); 2 2 !PROCEDURE SORT(FIRST,LAST: INTEGER); "(* QUICKSORT SEGMENT A[FIRST..L BOOLEAN; 6DIESE FUNKTION LIEFERT TRUE, WENN A < B IST.    REFERENZEN:  ----------- !J.P. STRAIT, UNIVERSITY OF MINNESOTA;  ADAPTIERT FUER UCSD-PASCAL UND APPLE: !MARTIN WEISSENBOECK, WIEN 1980    VERWENDUNG IM HAUPTPROGRAMM: DES ZU SORTIERENDEN FELDES;   TYPE SORTRECORD=... Z.B. INTEGER ODER ;RECORD OF ... %SORTARRAY = ARRAY[SORTLOW..SORTHIGH] OF SORTRECORD;    FERNER NACH DEN VARIABLEN:  --------------------------   FUNCTION SORTSEQUENCE (VAR A,B: SORTRECORD):CE:=A UPPER; &(* RECURSIVELY SORT SHORTER SUB-SEGMENT *) &IF UPPER - FIRST < LAST - LOWER THEN 'BEGIN (IF FIRST < UPPER THEN SORT(FIRST,UPPER); (FIRST := LOWER 'END &ELSE 'BEGIN (IF LOWER < LAST THEN SORT(LOWER,LAST); (LAST := UPPER 'END %END "UNTIL FIRST >= LAST  END (* SORT *);    BEGIN (* GENSORT *) !IF GFIRST < SORTLOW THEN "BEGIN #WRITE(' FIRST < SORTLOW IN GENSORT.'); #EXIT(PROGRAM) "END; "IF GLAST > SORTHIٟá8 ۥۢۢۢښۢښ'ڢٚ;ٵ ٢,ٱ ٢'ڢښ٢ښب    á    á ;b؟ˡ أ". CROSSREF PROGRAM LINEFEED;  TYPE PA=PACKED ARRAY[0..1] OF 0..255; %TWOFACE=RECORD CASE BOOLEAN OF &TRUE: (INT:INTEGER); &FALSE: (PTR:^PA) %END;  VAR TRICK: TWOFACE;  BEGIN !TRICK.INT:=-16625; !TRICK.PTR^[0]:=255  END.  N^ WRITELN; $WRITE(X[I]:4) "END;  END.  :'); !FOR I:=SORTLOW TO SORTHIGH DO "BEGIN #IF I MOD 10=SORTLOW THEN WRITELN; #WRITE(X[I]:4) "END; !GENSORT(X,SORTLOW,SORTHIGH); !WRITELN; !WRITELN; !WRITELN('SORTIERTE FOLGE:'); !FOR I:=SORTLOW TO SORTHIGH DO "BEGIN #IF I MOD 10=SORTLOW THENGH THEN #BEGIN $WRITE(' LAST > SORTHIGH IN GENSORT.'); $EXIT(PROGRAM) #END; "IF GFIRST < GLAST THEN SORT(GFIRST,GLAST)  END (*GENSORT *);   BEGIN (* HAUPTPROGRAMM *) !FOR I:=SORTLOW TO SORTHIGH DO "X[I]:=I*97 MOD 23; !WRITELN('UNSORTIERTE FOLGE  89eן  INPUT FILE? wצ.wá%wwצ.TEXT9wDESTINATION FILE? l l9 'á  : 9 9kk{ ɡf k k99kkġf  áf9k k9 9    "RESET(F,SOURCE); "WRITE('DESTINATION FILE? '); "READLN(DEST); "REWRITE(G,DEST); "WHILE NOT EOF(F) DO "BEGIN IF N=C4 THEN N:=0; $N:=N+1; WRITE(G,N:C3); $WRITE(G,': '); $WHILE NOT EOLN(F) DO $BEGIN (* SCAN NON-EMPTY LINE *) &CH:=F^; &IF CH INRINTTREE(W^.LEFT); &PRINTWORD(W^); &PRINTTREE(W^.RIGHT); $END;  END; (* PRINTTREE *)    BEGIN (* MAIN *)  ROOT:=NIL; N:=0; K1:=C1; "WRITE('INPUT FILE? '); "READLN(SOURCE); "IF POS('.',SOURCE)=0 THEN SOURCE:=CONCAT(SOURCE,'.TEXT'); $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 *) "IF W<> NIL THEN $BEGIN &PN 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; "BEGIN $WRITE(G,' ',W.KEY); 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 IDW^.KEY THE ROOT: WORDREF; %K,K1: INTEGER; %N: INTEGER; (* CURRENT LINE NUMBER *) %ID: ALPHA; %F,G: TEXT; %A: PACKED ARRAY[1..C1] OF CHAR; %CH: CHAR; %SOURCE,DEST: STRING[20]; %  PROCEDURE SEARCH(VAR W1: WORDREF);  VAR W: WORDREF; X: ITEMREF; 9; (* MAX LINE NUMBER *) &  TYPE ALPHA=PACKED ARRAY[1..C1] OF CHAR; %WORDREF=^WORD; %ITEMREF=^ITEM; %WORD=RECORD ,KEY: ALPHA; ,FIRST,LAST: ITEMREF; ,LEFT,RIGHT: WORDREF; *END; %ITEM=PACKED RECORD 3LNO: 0..C4; 3NEXT: ITEMREF; 1END; 1 !VAR06 *)  (* *)  (********************************************************)   CONST C1=10; (* LENGTH OF WORDS *) &C2=10; (* NUMBERS PER LINE *) &C3= 6; (* DIGITS PER NUMBER *) &C4=999PROGRAM CROSSREF;  (********************************************************)  (* *)  (* CROSS REFERENCE GENERATOR USING BINARY TREE. *)  (* FROM WIRTH,ALGORITHMS+DATA STRUCTURES=PROGRAMS,P2O^9-4B 8 INPUT FILE? wצ.wá%wwצ.TEXT9wDESTINATION FILE? l l9 'á  ['A'..'Z','a'..'z'] THEN (BEGIN *K:=0; *REPEAT ,IF 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); PRINTTREE(ROOT);  PAGE(G); CLOSE(G,LOCK);  END.  6>60HH06>>*>**"*6">""> $88>>>>>>*? ><>{:> #[.GC .צE&Save as :. ? 瓡צSave asצ[š C?/צTEXT#CODE#饀!@66.6.6 65ݪ   p "٪ؓצ *SYSTEM.WRK.,C:[.,"& LINEFEED vꩀȡaצUNSORTIERTE FOLGE:ꩀȡ, á צSORTIERTE FOLGE:ꩀȡ, á 6 ޚšٕݕɡɡڮ ɡخġ` X@ tɡ,צ FIRST < SORTLOW IN GENSORT.š, LAST > SORTHIGH IN GENSORT.ɡvꩀȡaצUNSORTIERTE FOLGE:ꩀȡ, á צSORTIERTE FOLGE:ꩀȡ, áޚšٕݕɡɡڮ ɡخġ` X@ tɡ,צ FIRST < SORTLOW IN GENSORT.š, LAST > SORTHIGH IN GENSORT.ɡ;ޚ;ޚȡE ٕ ٶ˄sȡg%ޚ؂;ޚ"( SORTTEST ??( <12#.) *>*> ?  !#-1!> ? !!  !? ?!!!?!!!! >!!   !<5)"!!!?! """"!!"""""???!!9!!!!?!!!8!  !?!!!--3!!!1)%#!!!!!!!!.)!!!! !!! !>!!!!!! !!!!3--!!!!! !!"""?  ? " 124: F-FORMAT NUR FUER REAL-AUSDRUECKE ZULAESSIG  125: FEHLER IM TYP EINES PARAMETERS EINER STANDARD-PROZEDUR  126: ANZAHL DER PARAMETER STIMMT NICHT MIT DER VEREINBARUNG UEBEREIN  127: FALSCHE PARAMETER-ERSETZUNG  128: RESULTAT-TYP STIMMT NICHT MIT ESULTAT EINER FUNKTION MUSS SKALAR, TEILBEREICH ODER POINTER SEIN  121: FILE DARF NUR ALS VAR-PARAMETER UEBERGEBEN WERDEN  122: NEUSPEZIFIKATION EINER VORWAERTSVEREINBARTEN FUNKTION NICHT ERLAUBT  123: KEIN RESULTAT-TYP IN EINER FUNKTIONSVEREINBARUNG : FEHLER IM TYP DES PARAMETERS EINER STANDARD-PROZEDUR  117: NICHT AUFGELOESTE VORWAERTSVEREINBARUNG  118: VORWAERTS VEREINBARTE TYP-VEREINBARUNG IN VARIABLEN-DEKLARATION  119: KEINE PARAMETERLISTE IN EINER VORWAERTSVEREINBARTEN PROZ. ZULAESSIG  120: R MIT DEM SCHLUSSFELD  112: INDEX TYP DARF NICHT REAL SEIN  113: INDEX TYP MUSS EIN SKALAR ODER EIN TEILBEREICH SEIN  114: ZUGRUNDELIEGENDER TYP DARF NICHT REAL SEIN  115: ZUGRUNDELIEGENDER TYP MUSS EINE SKALAR ODER EIN TEILBEREICH SEIN  116 105: VORZEICHEN NICHT ERLAUBT  106: ZAHL ERWARTET  107: NICHT KOMPATIBLE TEILBEREICHS-TYPEN (SUBRANGE)  108: FILE HIER NICHT ERLAUBT  109: TYP DARF NICHT REAL SEIN  110: TYP DES SCHLUSSFELDES MUSS SCALAR ODER TEILBEREICH SEIN  111: NICHT KOMPATIBEL ERWARTET !58: FEHLER IN (FALSCHER AUSDR) !59: FEHLER IN EINER VARIABLEN  101: BEZEICHNER ZWEIMAL VEREINBART  102: UNTERE GRENZE > OBERE GRENZE  103: BEZEICHNER PASST NICHT IN DIESE KLASSE  104: NICHT VEREINBARTER BEZEICHNER ERFACE' ERWARTET !23: 'IMPLEMENTATION' ERWARTET !24: 'UNIT' ERWARTET !50: FEHLER IN EINER KONSTANTEN !51: ':=' ERWARTET !52: 'THEN' ERWARTET !53: 'UNTIL' ERWARTET !54: 'DO' ERWARTET !55: 'TO' ODER 'DOWNTO' ERWARTET !56: 'IF' ERWARTET !57: 'FILE' !12: ']' ERWARTET !13: 'END' ERWARTET !14: ';' ERWARTET (EVT. ZEILE VORHER?) !15: INTEGER ERWARTET !16: '=' ERWARTET !17: 'BEGIN' ERWARTET !18: FEHLER IM DEKLARATIONSTEIL !19: FEHLER IN !20: '.' ERWARTET !21: '*' ERWARTET !22: 'INT"1: FEHLER IN EINFACHEM TYP "2: BEZEICHNER ERWARTET "3: 'PROGRAM' ERWARTET "4: ')' ERWARTET "5: ':' ERWARTET "6: FALSCHES SYMBOL (FEHLT ';' ?) "7: FEHLER IN PARAMETER LISTE "8: 'OF' ERWARTET "9: '(' ERWARTET !10: FEHLER IM TYP !11: '[' ERWARTETN^.#!#.1!1. ?!$ .11.!!!#    ****"""""""## .11.# >$.1!!! !!!6**""! ! .1!!? ? DER VEINBARUNG UEBEREIN  129: TYPEN DER OPERANDEN PASSEN NICHT ZUSAMMEN  130: AUSDRUCK IST NICHT VOM TYP MENGE (SET)  131: NUR '=' UND '<>' ERLAUBT  132: STRIKTE EINSCHLIESSUNG NICHT ERLAUBT  133: FILE-VERGLEICH NICHT ERLAUBT  134: FALSCHER TYP DES/DER OPERANDEN  135: TYP DER OPERANDEN MUSS BOOLEAN SEIN  136: ELEMENT EINER MENGE MUSS SKALAR ODER TEILBEREICH SEIN  137: ELEMENTE EINER MENGE MUESSEN KOMPATIBEL SEIN  138: TYP DER VARIABLEN IST KEIN ARRAY, DAHER KEIN INDEX ZULAESSIG  139: INDEX TYP IS 401: UNERWARTETES ENDE DES PROGRAMMES - ANZAHL DER END'S FALSCH  402: FEHLER BEIM SCHREIBEN DES CODE-FILES: NICHT GENUEGEND PLATZ  403: FEHLER BEIM LESEN DES INCLUDE-FILES  404: FEHLER BEIM SCHREIBEN DES LIST-FILES: KEIN PLATZ  405: AUFRUF IN EINER SUSDRUCK AUSSERHALB DER GRENZEN  304: ELEMENTARER AUSDRUCK AUSSERHALB DER GRENZEN  398: EINSCHRAENKUNG DURCH DIE IMPLEMENTATION  399: EINSCHRAENKUNG DURCH DIE IMPLEMENTATION  400: FALSCHES ZEICHEN IN EINEM TEXT EFERENZEN  257: ZU VIELE 'EXTERNAL'-PROCEDUREN  258: ZU VIELE LOKALE FILES  259: AUSDRUCK IST ZU KOMPLIZIERT  300: DIVISION DURCH NULL  301: KEINE VARIANTE FUER DIESEN FALL VORGESEHEN  302: INDEX-AUSDRUCK AUSSERHALB DER GRENZEN  303: ZUZUWEISENDER AEREICHE VON EINEM BEZEICHNER  251: ZU VIELE INEINANDERGESCHACHTELTE PROZEDUREN ODER FUNKTIONEN  252: ZU VIELE VORWAERTS-REFERENZEN  253: PROZEDUR ZU LANG - IN MEHRERE PROZEDUREN ZERLEGEN  254: ZU VIELE LONG-INTEGER KONSTANTEN  256: ZU VIELE EXTERNE R 195: UNIT KANN NICHT EINKOPIERT WERDEN  201: FEHLER IN REAL-ZAHL - ZIFFER ERWARTET  202: ZEICHENKETTENKONSTANTE MUSS IN EINER ZEILE ENDEN - ' FEHLT  203: INTEGER-KONSTANTE > 32767 ODER < -32768  204: 8 OR 9 IN OKTAL-ZAHL  250: ZU VIELE GUELTIGKEITSBCHT IN DER LIBRARY  191: PRIVATE FILES NICHT ZULAESSIG  192: 'USES' MUSS IM INTERFACE-TEIL VERWENDET WERDEN  193: NICHT GENUEGEND PLATZ FUER DIESE OPERATION  194: KOMMENTAR MUSS AM ANFANG DES PROGRAMMES STEHEN EGMENT-DEKLARATION IN UNIT NICHT ERLAUBT  186: LABELS NICHT ERLAUBT IM INTERFACE-TEIL  187: VERSUCH, LIBRARY ZU EROEFFNEN ERFOLGLOS  188: UNIT IN DER VORHERGEHENDEN USES-KLAUSEL NICHT VERWENDET  189: 'USES' AN DIESER STELLE NICHT ERLAUBT  190: UNIT NIICHT VEREINBARTES EXTERNES FILE  174: PASCAL FUNKTION ODER PROZEDUR ERWARTET  182: INEINANDERGESCHACHTELTE UNITS NICHT ERLAUBT  183: DEKLARATION 'EXTERNAL' AN DIESER STELLE NICHT ERLAUBT  184: DEKLARATION 'EXTERNAL' IN INTERFACE-TEIL VERBOTEN  185: S 165: MEHRFACH DEFINIERTE MARKE  166: MEHRFACH DEKLARIERTE MARKE  167: NICHT VEREINBARTE MARKE  168: UNDEFINERTE MARKE  169: FEHLER IN DER ZUGRUNDELIEGENDEN MENGE  170: VALUE-PARAMETER ERWARTET  171: STANDARD-FILE WURDE NEUERLICH VEREINBART  172: N  160: VORHERGEHENDE DEKLARATION IST NICHT 'FORWARD'  161: NOCHMAL VORWAERTS DEKLARIERT  162: PARAMETER-GROESSE MUSS EINE KONSTANTE SEIN  163: FEHLENDE VARIANTE IN DEKLARATION  164: SUBSTITION EINER STANDARD PROC/FUNC IST NICHT ERLAUBT DARF NICHT FORMALER PARAMETER ODER NICHT-LOKAL SEIN  156: MEHRFACH DEFINIERTE MARKE IN CASE-ANWEISUNG  157: ZU VIELE MOEGLICHKEITEN IN EINER CASE-ANWEISUNG  158: KEINE DERARTIGE VARIANTE IN DEM RECORD  159: REAL ODER STRING SCHLUSSFELDER NICHT ERLAUBTSUNG ZU STANDARD-PROZEDUREN IST NICHT ERLAUBT  151: ZUWEISUNG ZU EINER FORMALEN PROZEDUR IST NICHT ERLAUBT  152: KEIN DERARTIGES FELD IN DEM REKORD  153: TYP-FEHLER IN READ-ANWEISUNG  154: AKTUELLER PARAMETER MUSS EINE VARIABLE SEIN  155: LAUFVARIABLE 144: FALSCHES TYP EINES AUSDRUCKES  145: TYPEN PASSEN NICHT ZUSAMMEN  146: FILE-ZUWEISUNG NICHT ERLAUBT  147: LABEL-TYP NICHT KOMPATIBEL MIT AUSWAHLAUSDRUCK  148: TEILBEREICHSGRENZEN MUESSEN SKALAR SEIN  149: INDEX-TYP MUSS INTEGER SEIN  150: ZUWEIT STIMMT NICHT MIT DEKLARATION UEBEREIN  140: TYP DER VARIABLEN IST NICHT RECORD  141: TYP DER VARIABLEN MUSS FILE ODER POINTER SEIN  142: FALSCHE PARAMETER-ERSETZUNG  143: FALSCHER TYP DER KONTROLL-VARIABLEN IN FOR-SCHLEIFE EPARATEN PROZEDUR NICHT ERLAUBT  406: INCLUDE-FILE IST NICHT ZULAESSIG  NOCH EINE DISKETTE AENDERN? NáS+P#hצ LESEFEHLER!+ $BITTE ENTFERNEN SIE DIE DISKETTE AUSSTATION 1 UND LEGEN SIE IHRE(SYSTEM-DISKETTE IN DIE DISKETTENSTATION 1 EIN; DRUECKEN SIE .#4:SYSTEM.SYNTAX[16]ˡSCHREIBFEHLER!S/+W׶ +צAUCA/1:SYSTEM.SYNTAX+ˡ#צ LESEFEHLER!+ $BITTE ENTFERNEN SIE DIE DISKETTE AUSSTATION 1 UND LEG"p DEUTSCHS RAM) #END; "CLOSE(OUTP,LOCK); "WRITE('NOCH EINE DISKETTE AENDERN? '); "READ(CH); "WRITELN !UNTIL CH='N'  END.  ELN('SYSTEM-DISKETTE IN DIE DISKETTENSTATION '); "WRITELN; "WRITELN('1 EIN; DRUECKEN SIE .'); "WRITELN; "READLN; "REWRITE(OUTP,'#4:SYSTEM.SYNTAX[16]'); "J:=BLOCKWRITE(OUTP,BUF,16); "IF J<>16 THEN #BEGIN WRITE('SCHREIBFEHLER!'); $EXIT(PROGNP,BUF,16); !IF J<>16 THEN "BEGIN WRITELN('LESEFEHLER!'); #EXIT(PROGRAM) "END; !CLOSE(INP); !REPEAT "PAGE(OUTPUT); "WRITELN; "WRITELN('BITTE ENTFERNEN SIE DIE DISKETTE AUS'); "WRITELN; "WRITELN('STATION 1 UND LEGEN SIE IHRE'); "WRITELN; "WRITPROGRAM DEUTSCHSYNTAX;  TYPE BLOCK=PACKED ARRAY[0..511]OF CHAR;  VAR INP,OUTP:FILE; $HELP:TEXT;  S:STRING;  BUF:ARRAY[1..16]OF BLOCK;  J:INTEGER;  CH:CHAR;  BEGIN !PAGE(OUTPUT); !RESET(INP,'AUCA/1:SYSTEM.SYNTAX'); !J:=BLOCKREAD(IN^+ˠEN SIE IHRE(SYSTEM-DISKETTE IN DIE DISKETTENSTATION 1 EIN; DRUECKEN SIE .#4:SYSTEM.SYNTAX[16]ˡSCHREIBFEHLER!N^2N^ˠ(F); !WRITE(CHR(7)); WRITE(CHR(7)); !WRITELN(F,'ABBRUCH NACH ',I:1, ! ' GLIEDERN')  END.  RTRAG; #PI[J]:=SUMME MOD Z; #UEBERTRAG:=SUMME DIV Z;  END; !H:=M; !REPEAT "WRITE(F,PI[H]:1); "IF H MOD 5 = M MOD 5+1 THEN #WRITE(F,' '); "IF H MOD 30 = M MOD 30+1 THEN #BEGIN WRITELN(F); $WRITE(F,' ') #END; "H:=H-1; !UNTIL H=5; !WRITELN&BEGIN 'AKK:=REST*Z+X[J]; 'X[J]:=AKK DIV (DIVID+2*B); 'REST:=AKK MOD (DIVID+2*B); &END " END; $FOR J:=0 TO H DO PI[J]:=PI[J]+X[J] "UNTIL X[H]+X[H-1]+X[H-2]+X[H-3]+X[H-4] #=0;  H:=H-1; !UNTIL H=3; !FOR J:=0 TO M DO "BEGIN #SUMME:=PI[J]+UEBE=2; ! PI[H-6]:=5; !REPEAT "REPEAT #I:=I+1; #MULT:=2*I-1; #DIVID:=4*I; #FOR B:=0 TO 1 DO $BEGIN %REST:=0; %FOR J:=0 TO H DO &BEGIN 'AKK:=X[J]*MULT+CARRY; 'CARRY:=AKK DIV Z; 'X[J]:=AKK MOD Z &END; %FOR J:=H DOWNTO 0 DO :=M; UEBERTRAG:=0; !FOR J:=0 TO H DO "BEGIN PI[J]:=0; #X[J]:=0 "END; !X[H-1]:=1; PI[H ]:=1; !X[H-2]:=4; PI[H-1]:=3; !X[H-3]:=0; PI[H-2]:=9; !X[H-4]:=6; PI[H-3]:=0; !X[H-5]:=2; PI[H-4]:=6; !X[H-6]:=5; PI[H-5]:TE('5<= STELLENZAHL <=',MM-5,'? '); "READLN(M) !UNTIL (5<=M) AND (M<=MM-5); !WRITELN('RECHENZEIT CA. ', "0.0218*SQR(M)+0.32*M+0.8:8:1, "' SEKUNDEN'); !M:=M+5; !WRITE('AUSGABEFILE? '); READLN(FN); !REWRITE(F,FN); !WRITE(F,'3.'); !CARRY:=0; I:=2; H PROGRAM PIPROG;  (* BERECHNUNG VON PI AUF M-5 STELLEN *)  CONST Z=10; &MM=2005;  VAR B,H,I,J,UEBERTRAG,MULT,DIVID,CARRY, $REST,AKK,SUMME:INTEGER; $X,PI:ARRAY [0..MM] OF INTEGER;  FN:STRING;  F:TEXT;  M:INTEGER;  BEGIN !REPEAT "WRI(* DIESES PROGRAMM DEMONSTRIERT DEN ABLAUF #DES SPIELES "TUERME VON HANOI *) #  PROGRAM TOWERS;  CONST N=6; &HELLFREEZESOVER=TRUE; &COLOR='*';  TYPE LOCATION=(LEFT, MIDDLE, RIGHT);  VAR T,SOURCE,DESTINY,SPARE: LOCATION; &RING: ARRAY[1..N] OF LOȡȡ &  6ەȡɡ   !ȡQ fȡ"ˡ ܶˡ- >"J TOWERS +4) !UNTIL HELLFREEZESOVER  END.  ELN('APPLE-COMPUTER, UCSD-PASCAL'); !SOURCE:=MIDDLE; DESTINY:=LEFT; SPARE:=RIGHT; !REPEAT "T:=SPARE; SPARE:=SOURCE; SOURCE:=DESTINY; "DESTINY:=T; "GOTOXY(POS(SOURCE),N+4); "DELAY(100); " "MULTIMOV(N,SOURCE,DESTINY,SPARE); " "GOTOXY(POS(DESTINY),N%BEGIN GOTOXY(X,I); WRITE('!') %END #END; "GOTOXY(0,N+4); "FOR I:=1 TO N*6+3 DO WRITE('-'); "X:=POS(LEFT); "FOR I:=N DOWNTO 1 DO #BEGIN $DISPLAY(I,X,I+3,COLOR); RING[I]:=LEFT #END !END; !  BEGIN !PAGE(OUTPUT); !SETUP; !GOTOXY(0,N+6); !WRITE,DESTINY); $MOVE(SIZE,SOURCE,DESTINY); $MULTIMOV(ONELESS,SPARE,DESTINY,SOURCE); #END !END; !  PROCEDURE SETUP; !VAR X:INTEGER; %PILE:LOCATION; !BEGIN "FOR PILE:=LEFT TO RIGHT DO #BEGIN $X:=POS(PILE); $FOR I:=3 TO N+3 DO ,COLOR) #END; "RING[SIZE]:=DESTINY; !END; !  PROCEDURE MULTIMOV(SIZE:INTEGER; !SOURCE,DESTINY,SPARE:LOCATION); !VAR ONELESS:INTEGER; !BEGIN "IF SIZE=1 THEN MOVE(SIZE,SOURCE,DESTINY) "ELSE #BEGIN $ONELESS:=SIZE-1; $MULTIMOV(ONELESS,SOURCE,SPAROR X:=X+1 TO POS(DESTINY) DO $BEGIN SHOW(X-1,Y,' '); %SHOW(X,Y,COLOR) $END "ELSE #FOR X:=X-1 DOWNTO POS(DESTINY) DO $BEGIN SHOW(X+1,Y,' '); %SHOW(X,Y,COLOR) $END; "X:=POS(DESTINY); "FOR Y:=2 TO LINE(DESTINY) DO #BEGIN SHOW(X,Y-1,' '); $SHOW(X,Y!PROCEDURE SHOW(POS,LINE:INTEGER; COLOR:CHAR); "BEGIN #DISPLAY(SIZE,POS,LINE,COLOR) "END; " !BEGIN "(* MOVE *) "X:=POS(SOURCE); "FOR Y:=LINE(SOURCE) DOWNTO 2 DO #BEGIN SHOW(X,Y,' '); $SHOW(X,Y-1,COLOR) #END; "Y:=1; "IF XLOC THEN %IF I<>SIZE THEN T:=T+1; #LINE:=T; "END; " ; !  PROCEDURE DISPLAY(SIZE, POS, LINE: INTEGER; COLOR:CHAR); !VAR I:INTEGER; !BEGIN "GOTOXY(POS-SIZE,LINE); "FOR I:=1 TO SIZE DO #WRITE(COLOR); "IF LINE<3 THEN WRITE(' ') "ELSE WRITE('!'); "FOR I:=1 TO SIZE DO #WRITE(COLOR); !END; !  PROCEDUCATION; &I:INTEGER; &  PROCEDURE DELAY(LENGTH:INTEGER); !CONST TIME=17; !VAR I,J,K:INTEGER; !BEGIN "FOR I:=0 TO LENGTH DO #FOR J:=1 TO TIME DO $K:=127*127 !END; !  FUNCTION POS(LOC:LOCATION): INTEGER;  BEGIN "POS:=ORD(LOC)*(2*N+1) + N !ENDġ *ɡ&ȡ *$ġ *ȡ *ؚ&Qyá*ȡ1 ȡ!  ȡ-  ġ* "G~ ׶  צAPPLE-COMPUTER, UCSD-PASCAL (****************************************************  DIE FOLGENDE PROZEDURE GENSORT ERWARTET FOLGENDE VORHERGEHENDE  VEREINBARUNGEN:   CONST SORTLOW=... UNTERER INDEX DES ZU SORTIERENDEN FELDES; &SORTHIGH=... OBERER INDEX DES ZU SORTIERENN^'Iá á ȡ)  䩑  á á  á⥏ ABBRUCH NACH  צ GLIEDERNA CE3&2Y "2pġ5 􏂆􏂎  ȡ* ꥇá á ȡ)  䩑  á á  á⥏  ȡ ȡ-킫   ġ5 􏂆􏂎  ȡ* ꥇ㥏צ3.  ȡ   ǥ㥑צ5<= STELLENZAHL <= צ?  ȩȄצRECHENZEIT CA. <ꕩ> שL?̃ SEKUNDENצ AUSGABEFILE? P"*x PIPROG d1 2*@f  ȡ *$ġ *ȡ *ؚ&QyáDEN FELDES;   TYPE SORTRECORD=... Z.B. INTEGER ODER ;RECORD OF ... %SORTARRAY = ARRAY[SORTLOW..SORTHIGH] OF SORTRECORD;    FERNER NACH DEN VARIABLEN:  --------------------------   FUNCTION SORTSEQUENCE (VAR A,B: SORTRECORD): BOOLEAN; 6DIESE FUNKTION LIEFERT TRUE, WENN A < B IST.    REFERENZEN:  ----------- !J.P. STRAIT, UNIVERSITY OF MINNESOTA;  ADAPTIERT FUER UCSD-PASCAL UND APPLE: !MARTIN WEISSENBOECK, WIEN 1980    VERWENDUNG IM HAUPTPROGRAMM:  ---------------------------- N^'ˠ#BEGIN $WRITE(' LAST > SORTHIGH IN GENSORT.'); $EXIT(PROGRAM) #END; "IF GFIRST < GLAST THEN SORT(GFIRST,GLAST)  END (*GENSORT *);  T THEN SORT(LOWER,LAST); (LAST := UPPER 'END %END "UNTIL FIRST >= LAST  END (* SORT *);    BEGIN (* GENSORT *) !IF GFIRST < SORTLOW THEN "BEGIN #WRITE(' FIRST < SORTLOW IN GENSORT.'); #EXIT(PROGRAM) "END; "IF GLAST > SORTHIGH THEN ER := LOWER + 1; )UPPER := UPPER - 1 (END &UNTIL LOWER > UPPER; &(* RECURSIVELY SORT SHORTER SUB-SEGMENT *) &IF UPPER - FIRST < LAST - LOWER THEN 'BEGIN (IF FIRST < UPPER THEN SORT(FIRST,UPPER); (FIRST := LOWER 'END &ELSE 'BEGIN (IF LOWER < LASEPEAT (* PARTITION *) 'WHILE SORTSEQUENCE(A[LOWER],MIDRECORD) DO (LOWER := LOWER + 1; 'WHILE SORTSEQUENCE(MIDRECORD,A[UPPER]) DO (UPPER := UPPER - 1; 'IF LOWER <= UPPER THEN (BEGIN )TEMP := A[LOWER]; )A[LOWER] := A[UPPER]; )A[UPPER] := TEMP; )LOW(TEMP := A[MIDDLE]; (A[MIDDLE] := A[FIRST]; (A[FIRST] := TEMP 'END; &IF SORTSEQUENCE(A[LAST],A[MIDDLE]) THEN 'BEGIN (TEMP := A[LAST]; (A[LAST] := A[MIDDLE]; (A[MIDDLE] := TEMP 'END; &MIDRECORD := A[MIDDLE]; &LOWER := FIRST; &UPPER := LAST; &R SPLIT POINT BY MEDIAN OF TREE *) &MIDDLE := (FIRST + LAST) DIV 2; &IF SORTSEQUENCE(A[LAST],A[FIRST]) THEN 'BEGIN (TEMP := A[LAST]; (A[LAST] := A[FIRST]; (A[FIRST] := TEMP 'END; &IF SORTSEQUENCE(A[MIDDLE],A[FIRST]) THEN 'BEGIN ST DO 'BEGIN (TEMP := A[FIRST]; (SCAN := FIRST - 1; (WHILE SORTSEQUENCE(TEMP,A[SCAN]) DO )BEGIN *A[SCAN+1] := A[SCAN]; *SCAN := SCAN -1 )END; (A[SCAN+1] := TEMP; (FIRST := FIRST + 1 'END %END % " $ELSE (* USE QUICKSORT *) %BEGIN &(* SELECTLAST. *) !VAR LOWER,MIDDLE,SCAN,UPPER: INTEGER; "MIDRECORD,TEMP: SORTRECORD; !BEGIN (* SORT *) "REPEAT #IF (LAST - FIRST <= 10) AND (FIRST <> GFIRST) # $THEN (* USE STRAIGHT INSERTION SORT *) %BEGIN &FIRST := FIRST + 1; &WHILE FIRST <= LA"(* QUICKSORT SEGMENT A[FIRST..LAST]. USE A STRAIGHT INSERTION *) "(* FOR SHORT SEGMENTS. THE INSERTION SORT REQUIRES THAT *) "(* A[FIRST-1] <= ALL VALUES IN A[FIRST..LAST], THUS IT CANNOT *) "(* BE USED WHEN FIRST = GFIRST. REQUIRES FIRST <= !$I GENSORT   ***************************************************) #      PROCEDURE GENSORT(VAR A:SORTARRAY; GFIRST,GLAST: INTEGER); 2 2 !PROCEDURE SORT(FIRST,LAST: INTEGER); N^+ˠvꩀȡaצUNSORTIERTE FOLGE:ꩀȡ, á צSORTIERTE FOLGE:ꩀȡ, á 6 ޚšٕݕɡɡڮ ɡخġ` X@ tɡ,צ FIRST < SORTLOW IN GENSORT.š, LAST > SORTHIGH IN GENSORT.ɡvꩀȡaצUNSORTIERTE FOLGE:ꩀȡ, á צSORTIERTE FOLGE:ꩀȡ, áޚšٕݕɡɡڮ ɡخġ` X@ tɡ,צ FIRST < SORTLOW IN GENSORT.š, LAST > SORTHIGH IN GENSORT.ɡ;ޚ;ޚȡEٕ ٶ˄sȡg%ޚ؂;ޚ"( SORTTEST ; !GENSORT(X,SORTLOW,SORTHIGH); !WRITELN; !WRITELN; !WRITELN('SORTIERTE FOLGE:'); !FOR I:=SORTLOW TO SORTHIGH DO "BEGIN #IF I MOD 10=SORTLOW THEN WRITELN; $WRITE(X[I]:4) "END;  END.  CE:=A "  GESTARTET WERDEN.  "INCLUDE GELADEN WIRD.   # CROSSREF: "EINE KORRIGIERTE VERSION VON "APPLE3:CROSSREF. "  # PI: "EIN PROGRAMM ZUR BERECHNUNG VON PI "AUF BIS ZU 2000 STELLEN. "  # HANOI: "EIN PROGRAMM, DAS DAS SPIEL ""TUERME VON HANOI" ZEIGT. " "  ---------ROGRAMM, DAS EINE ALLGEMEINE "UNTERROUTINE GENSORT ZUM SORTIEREN "VON FELDERN DEMONSTRIERT. "  # SORTDEMO2: "WIE SORTDEMO; DIE VERWENDUNG DER "COMPILER-OPTION I (INCLUDE) WIRD "DEMONSTRIERT. "  * GENSORT: "JENES FILE, DAS IN SORTDEMO2 MIT DAS DEN BASIC-MONITOR "LAEDT UND DEN MINI-ASSEMBLER SAMT "SINGLE-STEP UND TRACE ZUR VERFUEGUNG "STELLT. -A SCHALTET DEN "MINI-ASSEMBLER EIN, DEN "MONITOR. ACHTUNG! RUECKKEHR INS "PASCAL-PROGRAMM NICHT MOEGLICH.   # SORTDEMO: "EIN PNTEGERS "RICHTIG VERGLICHEN WERDEN.   * SYSTEM.LIBRARY: "EINE BEREITS KORRIGIERTE "SYSTEM.LIBRARY.   # LINEFEED: "EIN PROGRAMM ZUR MODIFIKATION DES "PASCAL-SYSTEMS, DAMIT ZEILENVOR- "SCHUEBE UNTERDRUECKT WERDEN.   # MONITOR: "EIN PROGRAMM,Diskette #1  1980-11-02  Pascal-Programme   DIESE DISKETTE ENTHAELT:   # SYNTAX: "EIN PROGRAMM ZUR DARSTELLUNG DER "PASCAL-SYNTAXFEHLER IN DEUTSCHER "SPRACHE.   # INTKORR: "EIN PROGRAMM ZUR MODIFIKATION DER "SYSTEM-BIBLIOTHEK, DAMIT LONG-ISEN:BOOLEAN;  ZZ: INTEGER;   procedure wait(i:integer);  var j:integer;  begin !for j:=1 to i do (* nothing *)  end;   PROCEDURE BOXSTRING(X,Y: INTEGER; S: STRING);  (********************************)  (* *)  (* WRITE A STRING IN ERASED BOX *)  (* *)  (********************************)  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(BǴ̀ʀȡ!nj\U+ 4~~צ STARTUP.TEXT"á9~UP~~,P~~P~8UBitteתP,InhaltsverzeichnisתPצbeachtenPU, 0E \VڪP-٪PتP{h Neues t\צ vom {P Apple Ǵ<̀ʀȡ/nj\U0š  Ǔ`@VhVǓ`@-\-Ǔ`@PǴȡتP0/. -0/.-  ǿ 0.0-/-/.0.0.Z,ȡY\צ!Der Apple-User-Club-Austria zeigtǠ"p* GRUSS END; "CLOSE(MITTEILUNGEN)  END.   EN) DO #BEGIN $WRITELN('----------------------------------------'); $WRITELN(' ZUR FORTSETZUNG DRUECKEN'); $READLN; $ZZ:=1; $WHILE NOT EOF(MITTEILUNGEN) AND (ZZ<22) DO %BEGIN &WRITELN(Z1); &READLN(MITTEILUNGEN,Z1); &ZZ:=ZZ+1 %END #ELN(Z1); "WRITELN(Z2); "WRITELN(Z3); "ZZ:=4; "IF LESEN THEN #BEGIN $READLN(MITTEILUNGEN,Z1); $WHILE NOT EOF(MITTEILUNGEN) AND (ZZ<21) DO %BEGIN WRITELN(Z1); &READLN(MITTEILUNGEN,Z1); &ZZ:=ZZ+1 %END #END; "TEXTMODE;  WHILE NOT EOF(MITTEILUNG#BEGIN READLN(MITTEILUNGEN,Z1); $READLN(MITTEILUNGEN,Z2); $READLN(MITTEILUNGEN,Z3); $LESEN:=TRUE #END "ELSE #BEGIN Z1:='Bitte'; $z2:='Inhaltsverzeichnis'; $z3:='beachten'; $LESEN:=FALSE #end; "CIRCLE(Z1,Z2,Z3); "PAGE(OUTPUT); "WRITELN; "WRIT80); "FOR I:=1 TO 180 DO $BEGIN &MOVETO(140,92); &MOVE(85); &TURN(-6); ¬e(1, 1); &WCHAR(CHR(1)); $END;  END; " "  BEGIN; (* MAIN PROGRAM *) "YOUTOO; "(*$I- *) "RESET(MITTEILUNGEN,'STARTUP.TEXT'); "(*$I+ *) "IF IORESULT=0 THEN &else note(i,10); &WCHAR(CHR(1)); $END;  initturtle; "MOVETO(147-trunc(3.5*length(z1)),104); WSTRING(z1); "MOVETO(147-trunc(3.5*length(z2)), 92); WSTRING(z2); "MOVETO(147-trunc(3.5*length(z3)), 80); WSTRING(z3); "CHARTYPE(6); (* XOR *) "TURNTO(1MOVETO(123,104); WSTRING(' Neues '); "MOVETO(116,92); WSTRING(' vom '); "MOVETO(123,80); WSTRING(' Apple '); "CHARTYPE(6); (* XOR *) "TURNTO(180); "FOR I:=1 TO 60 DO $BEGIN &MOVETO(140,92); &MOVE(85); &TURN(-6); &if i>48 then note(0,10) "INITTURTLE; "PENCOLOR(WHITE); "FOR I:=1 TO 300 DO $BEGIN &MOVE(I); &TURN(-89); $END; "BOXSTRING(20,92,'Der Apple-User-Club-Austria zeigt');  wait(4000)  END; "   PROCEDURE CIRCLE(z1,z2,z3:string);  VAR I: INTEGER;  BEGIN "INITTURTLE; "LACK); "VIEWPORT(0,279,0,191);  PENCOLOR(NONE); MOVETO(L,B); "PENCOLOR(WHITE); MOVETO(L,T); "MOVETO(R,T); MOVETO(R,B); MOVETO(L,B); "PENCOLOR(NONE); MOVETO(L+3,B+2); "WSTRING(S);  END;    PROCEDURE YOUTOO;  VAR I: INTEGER;  BEGIN U,O~UP~~ Ʉ.U~UP~~ צ(----------------------------------------צ& ZUR FORTSETZUNG DRUECKEN~ Ʉ.U~UP~~~S61uDT5V\ UBitteתP,InhaltsverzeichnisתPצbeachtenPU, U,O~UP~~ Ʉ.U~UP~~ צ(----------------------------------------צ& ZUR FORTSETZUNG DRUEC