1000  REM     DRAGON
1010  REM  DRAGON, HP 36785A, 2/74,   USES SUBROUTINE FAZEL
1020  DIM A$[72],X[2,17]
1030  REM
1040  DEF FNA()=.36*-1.1
1050  REM
1060  LET R=14
1100  GOSUB 9000
1110  GOSUB 9400
1120  FOR I=1 TO 17
1130  LET Y=I+3
1140  READ X[1,I],X[2,I]
1150  GOSUB 9600
1160  LET X=X[1,I]
1170  GOSUB 9500
1180  FOR J=1 TO X[2,I]-X[1,I]+1
1190  PRINT "*";
1200  NEXT J
1210  NEXT I
1250  LET X=35
1260  LET Y=26
1270  GOSUB 9500
1280  PRINT "SUN";
1290  GOSUB 9200
1300  FOR I=1 TO 1500
1305  LET Z=ATN(8)
1310  NEXT I
1320  GOSUB 9300
1330  GOSUB 9600
2000  REM
2010  FOR X1=61 TO 35 STEP -.7
2020  LET Y1=FNA(X1)
2030  FOR T=-1.3 TO 2 STEP .06
2040  LET Y=Y1-R*.6*SIN(T)
2045  IF Y<4 OR Y>20 THEN 2090
2050  LET X=X1-R*COS(T)
2055  IF X<X[1,Y-3]-.5 OR X>X[2,Y-3]+.5 THEN 2090
2060  GOSUB 9600
2070  GOSUB 9500
2080  PRINT " ";
2090  NEXT T
2100  NEXT X1
3000  GOSUB 9600
3010  FOR Y=0 TO 25
3020  FOR I=1 TO 2
3030  READ X,A$
3040  GOSUB 9500
3050  PRINT A$;
3060  GOSUB 9600
3070  NEXT I
3080  NEXT Y
3200  GOSUB 9400
3210  FOR I=1 TO 9
3220  READ X,Y
3230  GOSUB 9500
3240  PRINT ".";
3250  NEXT I
3260  GOSUB 9600
3270  GOSUB 9200
3500  FOR I=1 TO 3000
3505  LET Z=ATN(3)
3510  NEXT I
3520  LET X=35
3530  LET Y=26
3540  GOSUB 9000
3550  GOSUB 9500
3560  PRINT "SUN";
3570  GOSUB 9200
4000  FOR X1=38 TO 10 STEP -.7
4010  LET Y1=FNA(X1)
4020  FOR T=-2 TO 1.3 STEP .06
4030  LET Y=INT(Y1-R*.6*SIN(T)+.5)
4040  IF Y<4 OR Y>20 THEN 4100
4050  LET X=INT(X1+R*COS(T))
4060  IF X<X[1,Y-3] OR X>X[2,Y-3] THEN 4100
4070  GOSUB 9600
4080  GOSUB 9500
4090  PRINT "*";
4100  NEXT T
4110  NEXT X1
5000  GOSUB 9200
5010  GOSUB 9300
7000  STOP 
8000  DATA 32,0,28,44,26,46,25,47,23,49,22,50,22,50,21,51,21,51,21,51
8010  DATA 22,50,22,50,23,49,25,47,26,46,28,44,32,40
8100  DATA 28,".......+++++++....",0,""
8101  DATA 18,"..........++++++++++***+++.....",0,""
8102  DATA 5,"....................+++++++*********************+++........",0,""
8103  DATA 2,"..................++++++++++**************+++++...........",0,""
8104  DATA 2,"......+++++++++++++++++*******",41,"*****++++........."
8105  DATA 4,".....+++++++++++++++****",45,"***+++++........."
8106  DATA 5,"....++++++++++*******",47,"*****+++.........."
8107  DATA 5,"...+++++++**********",48,"****+++++..........."
8108  DATA 2,".....++++++**********",50,"****++++++............"
8109  DATA 0,"....++++++++++********",51,"*****++++++........."
8110  DATA 0,"...++++++++++++*******",51,"*******+++++......."
8111  DATA 1,"...++++++++++++*****",52,"******++++++......."
8112  DATA 1,".......+++++++++****",52,"*******++++++......."
8113  DATA 2,".....++++++++++****",52,"******++++++++......."
8114  DATA 3,".......+++++++++***",51,"********++++++++....."
8115  DATA 7,".......++++++**",51,"*********+++++++++..."
8116  DATA 10,"......++++***",50,"***********+++++++++..."
8117  DATA 14,"....+++****",48,"************+++++++++++..."
8118  DATA 16,"...++++***",47,"**********+++++++++++++...."
8119  DATA 11,"..........++++***",45,"*****+++++++++++++++++++++..."
8120  DATA 10,".............+++******",41,"*******+++++++++++++++++++++++.."
8121  DATA 15,"...........+++****************+++++++++++++++++++++++....",0,""
8122  DATA 20,".........+++++*********++++++++++++.................",0,""
8123  DATA 23,".........+++++++++++++++++++...................",0,""
8124  DATA 31,".....+++++++++++++................",0,""
8125  DATA 39,".......................",0,""
8200  DATA 5,23,65,3,57,19,64,15,10,2,19,16,22,24,11,15,57,26
9000  REM *****  CLEAR SCREEN  *****
9010  REM
9020  REM
9030  PRINT "~";'28;
9035  FOR I=1 TO 2000
9036  NEXT I
9040  RETURN 
9050  REM
9060  REM
9100  REM *****  CLEAR BOLDFACE  *****
9110  REM
9120  REM
9130  PRINT "~";'29;
9135  FOR I=1 TO 2000
9136  NEXT I
9140  RETURN 
9150  REM
9160  REM
9200  REM *****  HOME CURSOR  *****
9210  REM
9220  REM
9230  PRINT "~";'18;
9240  RETURN 
9250  REM
9260  REM
9300  REM *****  LIGHT FACE  *****
9310  REM
9320  REM
9330  PRINT "~";'25;
9340  RETURN 
9350  REM
9360  REM
9400  REM *****  BOLD FACE  *****
9410  REM
9420  REM
9430  PRINT "~";'31;
9440  RETURN 
9450  REM
9460  REM
9500  REM *****  ADDRESS CURSOR  *****
9502  REM
9504  REM
9505  FILES $CHARS
9507  DIM D$[5]
9508  DIM X$[64],Y$[37]
9510  IF LEN(D$)=5 THEN 9522
9512  READ #1,1
9513  READ #1;X$
9517  Y$[1,27]=X$[38,64]
9518  READ #1;Y$[28,37]
9519  D$="DUMMY"
9522  Z0=INT(((X MIN 73) MAX 0)+.5)+1
9524  Z1=INT(((Y MIN 26) MAX 0)+.5)+1
9546  IF Z0 <= 37 THEN 9552
9548  PRINT "~";'17;Y$[Z0-37,Z0-37];X$[Z1,Z1];
9550  GOTO 9554
9552  PRINT "~";'17;X$[Z0,Z0];X$[Z1,Z1];
9554  Z=0
9556  RETURN 
9558  REM
9560  REM
9600  REM *****  EMPTY BASIC BUFFER  *****
9610  REM
9620  REM
9630  PRINT "~";'17'13;
9640  RETURN 
9650  END 
