Listing of file='FOURTH' on disk='vmedia/2282_graphics_crt_demos.wvd.zip'
# Sector 213, program filename = 'FOURTH' 0001 REM %HOLIDAY GREETING PROGRAM - 07/03/81 - by R.L. Droz 0002 COM P$3 0003 DIM S1$64,L(7,2),B$1,K$1 0005 PRINT HEX(0D03),,HEX(020400020F0E);" FOURTH OF JULY 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,"]]Have a Bang-up]]") 0050 GOSUB '60(Y9,"]]Fourth of July]]") 0055 GOSUB '70(200,350,20) 0065 REM % DRAW FIGURE : M=3 0066 PLOT <,,R>,<320,20,U>,<0,10*M,D>,<60*M,0,D>,<0,-5*M,D>,<10*M,0,D>,<-10*M ,0,D>,<0,-5*M,D>,<-60*M,0,D> 0067 REM % BLINK LIGHTS 0068 RESTORE LINE 69 : FOR I=1 TO 7 : READ L : L(I,1)=M*(L+75)+320 : READ L : L(I,2)=M*L+25 : NEXT I 0069 DATA 2,2, -2,-2, -5,-5, 5,5, 7,-3, -9,7, 5,5 0070 PLOT <1,,C>,<10,,S> 0080 FOR J=1 TO 5000 : L=MOD(7*RND(1),7) : PLOT <,,R>,<L(L+1,1),L(L+1,2),"*"> 0085 IF RND(1)>.5 THEN PLOT <,,HEX(E1)> : ELSE PLOT <,,HEX(E2)> 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 $BREAK 255 : NEXT J 0091 PLOT <,,HEX(E2)> : FOR J=1 TO 7 : PLOT <,,R>,<L(J,1),L(J,2),"*"> : NEXT J 0092 PLOT <2,,C>,<20,15,S>,<,,R>,<360,20,HEX(E1)>,<,,"BANG !!"> 0093 FOR I=1 TO 10 : $IF OFF /005,94 : PRINT HEX(070D) 0094 FOR J=1 TO 30 : $BREAK 255 : NEXT J : NEXT I : GOTO 43 0100 REM % BACKGROUND MESSAGE HANDLER 0110 SELECT P 0115 PRINT AT(21,0,);BOX(3,79); : PRINT " Fourth of July 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 9999 DEFFN'31 : SELECT P : COM CLEAR P$ : $CLOSE : LOAD T "START"