image of READY prompt

Wang2200.org

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"