Listing of file='FLAGDAY' on disk='vmedia/2282_graphics_crt_demos.wvd.zip'
# Sector 241, program filename = 'FLAGDAY' 0001 REM %HOLIDAY GREETING PROGRAM - 06/11/82 - by R.L. Droz 0002 COM P$3 0003 DIM S1$64,L(7,2),B$1,K$1,M$80 0005 PRINT HEX(0D03),,HEX(020400020F0E);" FLAG DAY GREETING PROGRAM " : PRINT 0006 LINPUT "GRAPHIC CRT IS AT WHICH ADDRESS?" -P$ 0007 MAT SEARCH "13151604", = STR(P$,2,2) TO L$ : IF STR(L$,,2)=HEX(0000) THEN 5 0008 SELECT PLOT <P$>,#15<P$> : $OPEN #15 0015 SELECT D 0020 PRINT AT(21,0,);BOX(3,79);" Drawing initial image ..."; 0023 B$="B" 0025 $PSTAT="GREETING" 0043 PLOT <,,HEX(0603E5)> : ERRORGOTO 5 0045 GOSUB '60(1000,"]]Happy Flag Day]]") 0047 F=50 0055 GOSUB '70(200,350,20) 0056 B=MOD(B+1,7) 0060 FOR J=1 TO 100 : $BREAK 255 : NEXT J 0065 IF B<>0 THEN 80 0070 IF F=13 THEN 75 0071 PLOT <,,HEX(E2)> : GOSUB '72(200,350,20) 0072 PLOT <,,HEX(E1)> : GOSUB '73(200,350,20) 0073 F=13 : GOTO 80 0075 PLOT <,,HEX(E2)> : GOSUB '73(200,350,20) 0076 PLOT <,,HEX(E1)> : GOSUB '72(200,350,20) 0077 F=50 0080 RESTORE LINE 95,INT(3*RND(1))+1 0081 PLOT <,,HEX(E2)> : GOSUB '60(30,M$) 0082 READ M$ 0083 PLOT <,,HEX(E1)> : GOSUB '60(30,M$) 0086 KEYIN K$,86,87 : IF B$="F" THEN 90 : $IF OFF /005,90 : GOSUB 110 : GOTO 90 0087 IF VAL(K$)=31 THEN 9999 : IF VAL(K$)<>4 THEN 86 : B$="B" : $RELEASE TERMINAL 0090 GOTO 56 0095 DATA "You're a Grand Old Flag","Hats off! Salute the flag!!" 0096 DATA "Run it up the flag pole and see who salutes..." 0100 REM % BACKGROUND MESSAGE HANDLER 0110 SELECT P 0115 PRINT AT(21,0,);BOX(3,79); : PRINT " Flag Day Greeting program running ..." 0120 PRINT : PRINT " KEY SF '4 for background operation, or SF '31 to exit program."; 0130 PRINT HEX(0106) : SELECT P6 : B$="F" : RETURN 0600 REM % CENTER WORDS 0605 DEFFN'60(Y9,S1$) : C=MIN(INT(80/LEN(S1$)),4) : S=MAX(10*C,800/LEN(S1$)) 0610 $TRAN (S1$, " ] ") R : PLOT <,,R>,<C,,C>,<S,,S>,<S/2,MIN(512-S,Y9),S1$> 0615 Y9=MIN(Y9,512)-2.5*S : RETURN 0620 REM % DRAW FLAG 0625 DEFFN'70(X,Y,M1) : PLOT <,,R>,<X,Y,U> 0630 PLOT <20*M1,0,D>,<0,-13*M1,D>,<-20*M1,0,D>,<0,13*M1,D> 0635 PLOT <8*M1,0,U>,<0,-7*M1,D>,<-8*M1,0,D>,<0,7*M1,U> 0640 PLOT <20*M1,0,U> : S3=3 0645 FOR S1=1 TO 13 : IF S1<8 THEN L1=12 : ELSE L1=20 0650 IF MOD(S1,2)=1 THEN 670 0655 FOR S2=1 TO M1-S3 STEP S3 0660 PLOT <0,-S3,U>,<-L1*M1,0,D>,<L1*M1,0,U> 0665 NEXT S2 : PLOT <0,INT(.5+(M1-S3)/S3)*S3,U> 0670 PLOT <0,-M1,U>,<-L1*M1,0,D>,<L1*M1,0,U> 0675 NEXT S1 0680 PLOT <-19.5*M1,12.5*M1,U> : S3=1 0685 FOR S1=1 TO 7 0690 FOR S2=1 TO 8 : IF MOD(S1,2)=0 AND S2=1 THEN 700 : IF MOD(S1,2)=0 AND S2=8 THEN 700 0695 GOSUB '71(S3*M1) 0700 PLOT <M1,0,U> : NEXT S2 0705 PLOT <-8*M1,-M1,U> : NEXT S1 : RETURN 0710 REM % DRAW STAR 0715 DIM P2(5,2) 0720 DEFFN'71(M2) : IF M3=M2 THEN 730 0725 FOR P3=1 TO 5 : P2(P3,2)=ROUND((M2*COS(P3*72)/2,0) : P2(P3,1)=ROUND((M2*SIN(P3*72)/2,0) : NEXT P3 0730 M3=M2 0735 PLOT <P2(1,1),P2(1,2),U> 0740 FOR P3=2 TO 11 STEP 2 : P4=MOD(P3,5)+1 : P5=MOD(P3-2,5)+1 0745 PLOT <P2(P4,1)-P2(P5,1), P2(P4,2)-P2(P5,2), D> : NEXT P3 0750 PLOT <-P2(1,1),-P2(1,2),U> : RETURN 0900 REM % DRAW 50 STAR FIELD 0905 DEFFN'72(X,Y,M1) : PLOT <,,R>,<X,Y,U> 0910 PLOT <+.5*M1,-.5*M1,U> : S3=1 0915 FOR S1=1 TO 7 0920 FOR S2=1 TO 8 : IF MOD(S1,2)=0 AND S2=1 THEN 930 : IF MOD(S1,2)=0 AND S2=8 THEN 930 0925 GOSUB '71(S3*M1) 0930 PLOT <M1,0,U> : NEXT S2 0935 PLOT <-8*M1,-M1,U> : NEXT S1 : RETURN 0950 REM % DRAW 13 STAR FIELD 0951 DIM P3(13,2) 0955 DEFFN'73(X,Y,M1) : PLOT <,,R>,<X,Y,U>,<4.5*M1,-3.5*M1,U> 0960 IF M4=M1 THEN 980 0965 FOR P3=0 TO 12 0970 P3(P3+1,2)=ROUND((3*M1*COS(P3*360/13),0) : P3(P3+1,1)=ROUND((3*M1*SIN(P3*360/13),0) 0975 NEXT P3 0980 M4=M1 : PLOT <0,3*M1,U> : S3=1 0982 FOR S1=1 TO 13 : P6=MOD(S1,13)+1 : P7=MOD(S1-1,13)+1 0983 GOSUB '71(S3*M1) 0985 PLOT < P3(P6,1)-P3(P7,1), P3(P6,2)-P3(P7,2), U> 0986 NEXT S1 0990 PLOT <-P3(1,1),-P3(1,2),U> : RETURN 9999 DEFFN'31 : SELECT P : COM CLEAR P$ : $CLOSE : LOAD T "START"