10 ' Program Name--DESIGN    7/2/82
20 ' To print nifty designs on the screen
21 '
22 '     Archie L. Abaire, Jr.
23 '     PO Box 29157
24 '     Richmond, Virginia  23233
25 '     (804) 740-7639
26 '
30 '
40 PRINT CHR$(26);
45 K$ = ""
50 FOR X = 1 TO 5:PRINT:NEXT
60 PRINT TAB(10);"1. Reflection"
70 PRINT TAB(10);"2. Wrap around"
72 PRINT TAB(10);"3. Wave in a box"
73 PRINT TAB(10);"4. Wave"
75 PRINT TAB(10);"5. Exit"
80 PRINT:PRINT
90 PRINT TAB(10);"Select ";
100 Q$ = INPUT$(1)
110 IF Q$ = "1" THEN 200
120 IF Q$ = "2" THEN 1000
122 IF Q$ = "3" THEN 2000
123 IF Q$ = "4" THEN 3000
125 IF Q$ = "5" THEN 3620
130 GOTO 40
200 DEFINT R,C,P
210 PRINT CHR$ (26)
220 FOR X = 1 TO 5:PRINT:NEXT
230 PRINT TAB(10);"Select a number between 40 and 51 ";
240 CLIMIT = VAL(INPUT$(2))
250 IF CLIMIT < 40 OR CLIMIT > 51 THEN 210
260 PRINT CHR$(26)
500 R = 0
510 COL = 0
520 PLACE = &HF000
530 WHILE LEN(K$) = 0
540    IF R = 0 THEN RDIR = 1
550    IF R = 23 THEN RDIR = -1
560    IF COL = 0 THEN CDIR = 1
570    IF COL = CLIMIT THEN CDIR = -1
580 '
590    PCHAR = PEEK(PLACE)
600    IF PCHAR = 32 THEN CHAR = 13:GOTO 660
610    IF PCHAR = 13 THEN CHAR = 0:GOTO 660
620    IF PCHAR = 0 THEN CHAR = 79:GOTO 660
630    IF PCHAR = 79 THEN CHAR = 22:GOTO 660
640    CHAR = 32
650 '
660    POKE PLACE,CHAR
670    R = RDIR*1 + R
680    ROW = R*&H80 + &HF000
690    COL = CDIR*1 + COL
700    PLACE = ROW + COL
710 '
720    K$ = INKEY$
730 WEND
735 GOTO 40
740 FOR X = 0 TO 32
750    POKE &HF000 + 2*X,X
760 NEXT
1000 DEFINT R,C,P
1010 PRINT CHR$(26);
1020 FOR X = 1 TO 5:PRINT:NEXT
1030 PRINT TAB(10);"Select a number between 40 and 51 ";
1040 CLIMIT = VAL(INPUT$(2))
1050 IF CLIMIT < 40 OR CLIMIT > 51 THEN 1010
1060 PRINT CHR$(26);
1070 R = 0
1080 COL = 0
1090 PLACE = &HF000
1100 WHILE LEN(K$) = 0
1110    IF R = 0 THEN RDIR = 1
1115    IF R = 23 THEN RDIR = -1
1120    IF COL = CLIMIT  THEN COL = 0
1130 '
1140    PCHAR = PEEK(PLACE)
1150    IF PCHAR = 32 THEN CHAR = 13:GOTO 1210
1160    IF PCHAR = 13 THEN CHAR = 0:GOTO 1210
1170    IF PCHAR = 0 THEN CHAR = 79:GOTO 1210
1180    IF PCHAR = 79 THEN CHAR = 22:GOTO 1210
1190    CHAR = 32
1200 '
1210    POKE PLACE,CHAR
1220    R = R + 1*RDIR
1230    ROW = R*&H80 + &HF000
1240    COL = COL + 1
1250    PLACE = ROW + COL
1260 '
1270    K$ = INKEY$
1280 WEND
1290 GOTO 40
2000 DEFINT R,C,P
2010 PRINT CHR$(26);
2020 FOR X = 1 TO 5:PRINT:NEXT
2030 PRINT TAB(10);"Select a number between 40 and 51 ";
2040 CLIMIT = VAL(INPUT$(2))
2050 IF CLIMIT < 40 OR CLIMIT > 51 THEN 2010
2060 PRINT CHR$(26);
2070 R = 0
2080 COL = 0
2090 PLACE = &HF000
2100 WHILE LEN(K$) = 0
2110    IF R = 0 THEN RDIR = 1
2120    IF R = 23 THEN RDIR = -1
2125    IF COL = 0 THEN CDIR = 1
2130    IF COL = CLIMIT  THEN CDIR = -1
2140 '
2150    PCHAR = PEEK(PLACE)
2160    IF PCHAR = 32 THEN CHAR = 13:GOTO 2220
2170    IF PCHAR = 13 THEN CHAR = 0:GOTO 2220
2180 '   IF PCHAR = 13 THEN CHAR = 79:GOTO 2220
2190 '   IF PCHAR = 79 THEN CHAR = 22:GOTO 2220
2200    CHAR = 32
2210 '
2220    POKE PLACE,CHAR
2230    X = X + .13
2232    IF X = 4 THEN X = 0
2234    R = 12 + INT(10*SIN(X))
2240    ROW = R*&H80 + &HF000
2250    COL = COL + 1*CDIR
2260    PLACE = ROW + COL
2270 '
2280    K$ = INKEY$
2290 WEND
2300 GOTO 40
3000 DEFINT R,C,P
3010 PRINT CHR$(26);
3020 FOR X = 1 TO 5:PRINT:NEXT
3030 PRINT TAB(10);"Select a number between 40 and 51 ";
3040 CLIMIT = VAL(INPUT$(2))
3050 IF CLIMIT < 40 OR CLIMIT > 51 THEN 3010
3060 PRINT CHR$(26);
3070 R = 0
3075 RY = 0
3080 COL = 0
3085 COL1 = 0
3086 Y = 0
3087 X = 0
3088 Z = 0
3089 CHAR = 32
3090 PLACE = &HF000
3095 PLACE1 = &HF000
3100 WHILE LEN(K$) = 0
3140    IF COL = CLIMIT  THEN COL = 0
3145    IF COL1 = CLIMIT THEN COL1 = 0
3150 '
3160    PCHAR = PEEK(PLACE)
3170    IF PCHAR = 32 THEN CHAR = 13:GOTO 3310
3220 '
3310    IF Z = 2*CLIMIT THEN 3325
3320    Z = Z + 1:GOTO 3500
3325    POKE PLACE1,32
3330    Y = Y + .13
3340    IF Y = 4 THEN Y = 0
3350    RY = 12 + INT(10*SIN(Y))
3360    ROW1 = RY*&H80 + &HF000
3370    COL1 = COL1 + 1
3380    PLACE1 = ROW1 + COL1
3390 '
3500    POKE PLACE,CHAR
3510    X = X + .13
3520    IF X = 4 THEN X = 0
3530    R = 12 + INT(10*SIN(X))
3540    ROW = R*&H80 + &HF000
3550    COL = COL + 1
3560    PLACE = ROW + COL
3570 '
3580 '
3590    K$ = INKEY$
3600 WEND
3610 GOTO 40
3620 RUN "B:MENU"
    COL = COL + 1
3560 