1  REM *** SUN SIGN DESIGN - PEOPLE'S COMPUTER CENTER ***
2  REM *** BOX 310 MENLO PARK CALIFORNIA 94025 ***
3  REM *** PROGRAMMER : JANE WOOD ***
4  REM
10  DIM A$[72],B$[26]
20  B$="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
30  REM
100  REM *** INSTRUCTIONS ***
105  PRINT 
110  PRINT "DO YOU NEED INSTRUCTIONS ";
115  GOSUB 4000
120  PRINT 
125  IF X=0 THEN 200
130  PRINT "THIS PROGRAM PRINTS DESIGNS BASED ON A PERSON'S"
132  PRINT "NAME AND SUN SIGN. HERE IS A TABLE OF SUN SIGNS :"
134  PRINT 
136  PRINT "ARIES       MAR 21-APR 20   LIBRA       SEP 24-OCT 23"
138  PRINT "TAURUS      APR 21-MAY 21   SCORPIO     OCT 24-NOV 22"
140  PRINT "GEMINI      MAY 22-JUN 21   SAGITTARIUS NOV 23-DEC 21"
142  PRINT "CANCER      JUN 22-JUL 23   CAPRICORN   DEC 22-JAN 20"
144  PRINT "LEO         JUL 24-AUG 23   AQUARIUS    JAN 21-FEB 19"
146  PRINT "VIRGO       AUG 24-SEP 23   PISCES      FEB 20-MAR 20"
148  PRINT 
150  PRINT "THE PROGRAM ASKS FOR A FIRST, MIDDLE AND LAST"
152  PRINT "NAME. IF YOU DON'T HAVE A MIDDLE NAME TYPE A"
154  PRINT "CARRIAGE RETURN. THE PROGRAM ONLY PAYS ATTEN-"
156  PRINT "TION TO LETTERS, AND IGNORES ALL OTHER TELE-"
158  PRINT "TYPE CHARACTERS. HERE WE GO . . . . . . . ."
160  PRINT 
200  REM *** GET STRING PARAMETERS ***
205  PRINT 
210  PRINT 
215  PRINT "FIRST NAME   ";
220  GOSUB 3000
225  GOSUB 1000
230  V0=X
235  PRINT 
240  PRINT "MIDDLE NAME  ";
245  GOSUB 3000
250  GOSUB 1000
255  V2=X
260  PRINT 
265  PRINT "LAST NAME    ";
270  GOSUB 3000
275  GOSUB 1000
280  V4=X
285  PRINT 
290  PRINT "SUN SIGN     ";
295  GOSUB 3000
300  GOSUB 1000
305  V6=X
310  PRINT 
315  PRINT 
320  PRINT 
325  REM
400  REM *** COMPUTE NUMERIC PARAMETERS ***
405  V=V0
410  Q=9
415  GOSUB 2000
420  V1=M
425  V=V2
430  GOSUB 2000
435  V3=M
440  V=V4
445  Q=7
450  GOSUB 2000
455  V5=M
460  V=V6
465  Q=5
470  GOSUB 2000
475  V9=M
480  C=0
485  REM
500  REM *** PICTURE PRINTING LOOP ***
505  FOR J=-(V9+3) TO V9+2
510  A$="                 "
515  V0=V0-J
520  V2=V2-J
525  K0=2*V5+2
530  REM
535  REM *** COMPUTE ROW ***
540  FOR K=-K0 TO K0
545  K1=K0+K+18
550  V0=V0-K*V5
555  V=V0
560  Q=9
565  GOSUB 2000
570  V7=M
575  V2=V2-K*V3
580  V=V2
585  Q=7
590  GOSUB 2000
595  V8=M
600  IF K <> K0 THEN 610
605  V8=-1
610  GOTO SGN(V8-V7)+2 OF 625,615,635
615  A$[K1,K1]="O"
620  GOTO 640
625  A$[K1,K1]=" "
630  GOTO 645
635  A$[K1,K1]="*"
640  C=C+1
645  NEXT K
650  REM
655  REM *** PRINT ROW ***
660  K=1
665  IF C=0 THEN 695
670  PRINT A$[K,K];
675  IF A$[K,K]=" " THEN 685
680  C=C-1
685  K=K+1
690  IF K <= LEN(A$) THEN 665
695  PRINT 
700  NEXT J
800  REM *** ASK FOR ENCORE ***
805  PRINT 
810  PRINT 
815  PRINT 
820  PRINT 
825  PRINT "WOULD YOU LIKE TO DO ANOTHER ONE ";
830  GOSUB 4000
835  IF X=1 THEN 200
840  STOP 
845  REM
1000  REM *** CONVERT INPUT STRING TO NUMBER ***
1010  X=0
1020  J=1
1030  IF J>LEN(A$) THEN 1120
1040  K=1
1050  IF K>26 THEN 1100
1060  IF A$[J,J]=B$[K,K] THEN 1090
1070  K=K+1
1080  GOTO 1050
1090  X=X+K+192
1100  J=J+1
1110  GOTO 1030
1120  RETURN 
1130  REM
2000  REM *** MODULOUS FUNCTION ***
2010  M=V-INT(V/Q)*Q+1
2020  RETURN 
2030  REM
3000  REM *** FETCH STRING ***
3010  PRINT "? ";
3020  ENTER 255,T,A$
3030  IF T=-256 THEN 3020
3040  PRINT 
3050  RETURN 
3060  REM
4000  REM *** YES OR NO FETCH ***
4010  X=0
4020  INPUT A$
4030  IF A$="NO" THEN 4090
4040  X=1
4050  IF A$="YES" THEN 4090
4060  PRINT "PLEASE ANSWER YES OR NO ..."
4070  PRINT "ANSWER ";
4080  GOTO 4010
4090  RETURN 
4100  REM
9999  END 
