image of READY prompt

Wang2200.org

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"