%EXTERNALSTRINGFNSPEC INTERRUPT %EXTERNALSTRINGFNSPEC TIME %EXTERNALLONGREALFNSPEC CPUTIME %EXTERNALROUTINESPEC USERS(%STRING (255) S) %EXTERNALROUTINESPEC METER(%STRING (255) S) %SYSTEMROUTINESPEC CONSOLE(%INTEGER EP, %INTEGERNAME AD, LEN) %OWNINTEGER LYNBAN=0 %EXTERNALROUTINE CLEAR LYN(%STRING (255) S) PRINTCH(19) PRINTCH(1) PRINTCH(18) PRINTCH(26) PRINTCH(4) %END %ROUTINE BAN CLEAR PRINTCH(27); PRINTCH('K') %END %ROUTINE BAN PLOT(%INTEGER X,Y) %RETURNUNLESS 0<=X<=79 %AND 0<=Y<=29 PRINTCH(27); PRINTCH('Y'); PRINTCH(X+31) PRINTCH(27); PRINTCH('X'); PRINTCH(Y+31) PRINTCH('*') %END %ROUTINE LYN PLOT(%INTEGER X,Y) %RETURNIF X=NL %OR Y=NL PRINTCH(24);PRINTCH(Y);PRINTCH(X);PRINTCH('*') %END %ROUTINE PLOT(%INTEGER X,Y) %IF LYNBAN = 0 %THEN LYNPLOT(X,Y) %ELSE %C BANPLOT(X,Y) %END %ROUTINE CLEAR %IF LYNBAN = 0 %THEN CLEARLYN("") %ELSE BANCLEAR %END %EXTERNALROUTINE LYNWOOD(%STRING (255) S) LYNBAN=0 %END %EXTERNALROUTINE BANTOM(%STRING (255) S) LYNBAN=1 %END %EXTERNALROUTINE TEST3(%STRING(63) S) %INTEGER I,J,K, N %STRING (255) T,U %EXTERNALROUTINESPEC DEFINE(%STRING (63) S) N=1 U=''; T='' %IF S->T.("/").U %START %IF T="1" %THEN N=1 %IF T="*" %THEN N=50000000 %IF T="9" %THEN N=9 %FINISH %IF U#"" %START DEFINE("1,".U) SELECT OUTPUT(1) %FINISH %CYCLE %CYCLE I = 1,1,70 %CYCLE J= 1,1,I PRINTSYMBOL('0'+J) %REPEAT NEWLINE %REPEAT %CYCLE I = 70, -1 , 1 %CYCLE J = 1,1, I PRINTSYMBOL('0'+J) %REPEAT NEWLINE %REPEAT N=N-1 %RETURN %IF N=0 %REPEAT %END %EXTERNALROUTINE TEST4 %INTEGER I I=0 %CYCLE PRINTSTRING("A "); WRITE(I, 1); NEWLINE I=I+1 %REPEAT %END %EXTERNALROUTINE TEST6(%STRING(63) S) %INTEGER I,J,K, N %STRING (255) T,U %EXTERNALROUTINESPEC DEFINE(%STRING (63) S) N=1 U=''; T='' %IF S->T.("/").U %START %IF T="1" %THEN N=1 %IF T="*" %THEN N=5000 %IF T="9" %THEN N=9 %FINISH %IF U#"" %START DEFINE("1,".U) SELECT OUTPUT(1) %FINISH I=0 %CYCLE WRITE(I, 1); NEWLINE I=I+1 %REPEAT %END %EXTERNALROUTINE INTTEST(%STRING(63) S) %STRING (255) U %CYCLE U=INTERRUPT %EXIT %IF U#"" %REPEAT PRINTSTRING("INT: """.U.""" SEEN ") %END %EXTERNALROUTINE TEST8(%STRING (255) S) %INTEGER I,J,K %CYCLE %CYCLE I='0', 1, '0'+71 PRINTSYMBOL(I) %REPEAT NEWLINE %REPEAT %END %EXTERNALROUTINE LYN(%STRING(255) S) PRINTCH(1) NEWLINE PRINTCH(19); ! ENABLE PRINTCH(25); ! START BLINK PRINTSTRING("THIS IS A LYNWOOD BLINKING TERMINAL ") PRINTCH(26); ! DISABLE BLINK NEWLINES(5) PRINTSTRING("END OF MESSAGE ") PRINTCH(25) %END %EXTERNALROUTINE LYN2(%STRING (255) S) %INTEGER I,J,K PRINTCH(1) %CYCLE I = 1, 1, 29 J = I+21 PRINTCH(24); PRINTCH(I); PRINTCH(J) PRINTCH('*') PRINTCH(24); PRINTCH(I); PRINTCH(72-J) PRINTCH('*') %REPEAT PRINTCH(24); PRINTCH(15); PRINTCH(20) %CYCLE I = 20, 1, 20+29;PRINTCH('*'); %REPEAT PRINTCH(24); PRINTCH(28); PRINTCH(0) NEWLINE %END %EXTERNALROUTINE COUNT(%STRING (255) S) %INTEGER I,J,K %STRING (15) INTM %STRING (8) TTIME K=0 CLEARLYN("") TTIME = TIME %CYCLE INTM = INTERRUPT %IF INTM#'' %START PRINTCH(24); PRINTCH(0); PRINTCH(0) PRINTSTRING("LAST INT WAS "); PRINTSTRING(INTM) PRINTSTRING(" AT"); WRITE(K, 1); NEWLINE %FINISH %IF TTIME#TIME %START TTIME = TIME PRINTCH(24); PRINTCH(0); PRINTCH(72-8) PRINTSTRING(TTIME) PRINTCH(24); PRINTCH(28); PRINTCH(0) METER("") PRINTCH(24); PRINTCH(28); PRINTCH(68) USERS("") %FINISH PRINTCH(24); PRINTCH(15); PRINTCH(35) WRITE(K, 1); NEWLINE K = K+1 %REPEAT %END %EXTERNALROUTINE LYN4(%STRING (255) S) %INTEGER I,J,K %STRING (15) INTM %STRING (8) TTIME %BYTEINTEGERARRAY X(0:50) %INTEGER AD,PT,LEN %ROUTINE P(%INTEGER N) X(PT)=N; PT=PT+1 %END %ROUTINE WRIT(%INTEGER N) %INTEGER M %IF N>=10 %THEN WRIT(N//10) P(N-10*(N//10)+'0') %END K=0 CLEARLYN("") NEWLINE TTIME = TIME %CYCLE INTM = INTERRUPT %IF INTM#'' %START PRINTCH(24); PRINTCH(0); PRINTCH(0) PRINTSTRING("LAST INT WAS "); PRINTSTRING(INTM) NEWLINE %FINISH %IF TTIME#TIME %START TTIME = TIME PRINTCH(24); PRINTCH(0); PRINTCH(72-8) PRINTSTRING(TTIME) NEWLINE %FINISH PT=0 P(24); P(15); P(35) WRIT(K) AD = ADDR(X(0)); LEN=PT-1 CONSOLE(10, AD, LEN) K = K+1 %REPEAT %END %EXTERNALROUTINE FILL SCREEN(%STRING (255) S) %INTEGER I,J,K CLEARLYN("") PRINTCH(24); PRINTCH(10); PRINTCH(10) PRINTCH('*') NEWLINE %CYCLE I = 0, 1, 79 %CYCLE J = 0, 1, 29 %UNLESS I=NL %OR J=NL %START PRINTCH(24); PRINTCH(J); PRINTCH(I); PRINTCH('*') %FINISH %REPEAT %REPEAT NEWLINE %END %EXTERNALROUTINE LYN3(%STRING (255)S ) PRINTSTRING("USE 'COUNT' ") COUNT(S) %END !! %EXTERNALROUTINE LYN5(%STRING (255) S) PRINTSTRING("USE 'FILL SCREEN' ") FILL SCREEN(S) %END %EXTERNALROUTINE SPIRAL(%STRING(255) S) %EXTERNALROUTINESPEC CLEAR LYN(%STRING(63) S) %ROUTINE XPLOT(%INTEGER X,Y) %RETURNIF X=NL %OR Y=NL PRINTCH(24);PRINTCH(Y);PRINTCH(X);PRINTCH('*') %END %INTEGER I, L, D, X, Y %INTEGER WIDTH,HEIGHT,MAX,STEP WIDTH=50;HEIGHT=0;MAX=29;STEP=1 CLEAR LYN("") X = 40+WIDTH//2; Y = 14+HEIGHT//2 PLOT(X, Y) D =- 1 %CYCLE L = 1, STEP, MAX %CYCLE I = 1, 1, L+WIDTH X = X+D; PLOT(X, Y) %REPEAT %CYCLE I = 1, 1, L+HEIGHT Y = Y+D; PLOT(X, Y) %REPEAT D =- D %REPEAT PLOT(0,0) %END %EXTERNALROUTINE CIRCLE(%STRING (255)S) %INTEGER D,X,Y,R %INTEGER MIDX,MIDY %ROUTINE XCLEAR LYN PRINTCH(19);PRINTCH(1);PRINTCH(18);PRINTCH(26);PRINTCH(4) %END %ROUTINE XPLOT(%INTEGER X,Y) %RETURNIF X=NL %OR Y=NL %RETURNUNLESS 0<=X<=79 %AND 0<=Y<=29 PRINTCH(24);PRINTCH(Y);PRINTCH(X);PRINTCH('*') %END %ROUTINE TRACE(%INTEGER X,Y) %LONGREAL Z Z=SQRT(X*X+Y*Y) X=MIDX+INT(X*R/Z);Y=MIDY+INT(Y*R/(Z*2)) PLOT(X,Y) %END CLEAR LYN("") MIDX=40;MIDY=15 %CYCLE R=29,-1,1 X=-R %CYCLE D=1,-2,-1 %CYCLE Y=-R*D,D,R*D TRACE(X,Y) %REPEAT %CYCLE X=-R*D,D,R*D TRACE(X,Y) %REPEAT %REPEAT %REPEAT PLOT(0,0) %END %EXTERNALROUTINE CIRCLER(%STRING (255) S) %EXTERNALSTRINGFNSPEC TIME %INTEGER I,J %INTEGER X,Y %ROUTINE XCLEAR PRINTCH(19);PRINTCH(1);PRINTCH(18);PRINTCH(26);PRINTCH(4) %END %ROUTINE XPLOT(%INTEGER X,Y) %RETURNIF X=NL %IF Y=NL %START PRINTCH(24); PRINTCH(Y-1); PRINTCH(X) PRINTCH(11); PRINTCH('*') %RETURN %FINISH %RETURNUNLESS 0<=X<=79 %AND 0<=Y<=29 PRINTCH(24);PRINTCH(Y);PRINTCH(X);PRINTCH('*') %END CLEAR I=1 %CYCLE J=1,1,4096 I=(I<<5+I<<3+I+1)&4095 Y=I X=Y//30 Y=Y-X*30 X=X-40 Y=Y-15 %IF X*X+4*Y*Y<30*30 %THENSTART PLOT(X+40,Y+15) %FINISH %REPEAT %END %ENDOFFILE