home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Softdisk G-S 131
/
SGDS 131.2mg
/
SDGS.131
/
SDC131
/
C
/
MD.1
(
.txt
)
< prev
next >
Encoding:
Amiga
Atari
Commodore
DOS
FM Towns/JPY
Macintosh
Macintosh JP
NeXTSTEP
RISC OS
UTF-8
Wrap
Applesoft BASIC Source Code
|
1992-08-24
|
11.1 KB
|
384 lines
|
[FC] Applesoft BASIC Program (0x0801)
120 DIM M$(12),Z$(11),R%(16),S%(16)
170 HG = 49234: HCOLOR= 3
180 MP = 1:CH = 32:BS$ = CHR$(8):FS$ = CHR$(21):CR$ = CHR$(13):UP$ = CHR$(11):DN$ = CHR$(10):ES$ = CHR$(27):BL$ = CHR$(7)
190 GOSUB 4120
200 :
210 VTAB 12: HTAB 5: PRINT "Working...";
220 FOR X = 1 TO 16: READ R%(X),S%(X): NEXT X
230 DATA 4,19,6,16,6,22,8,13,8,19,8,25,10,10,10,16,10,22,10,28
240 DATA 12,13,12,19,12,25,14,16,14,22,16,19
250 FOR X = 1 TO 6: READ W$(X): NEXT X
260 DATA "9-cell Diamonds","16-cell Diamonds","The 8 PATHS"
270 DATA "How to make Magic Diamonds","Make Your Own","QUIT"
280 FOR X = 1 TO 5: READ N$(X): NEXT X
290 DATA A,B,C,D,MENU
300 FOR X = 1 TO 10: READ L$(X): NEXT X
310 DATA A,B,C,D,E,F,G,H,A(L)L,MENU
320 FOR C1 = 1 TO 12: READ M$(C1): NEXT C1
330 DATA A,B,C,D,E,F,G,H,I,J,K,MENU
340 GOSUB 4120: GOTO 1370
350 REM ** 4 OBLIQUE COLUMNS **
360 D = 21/10:E = 16/10
370 X1 = 123.25:Y1 = 127:X2 = 207.25:Y2 = 63: GOSUB 1260
380 X1 = 102.25:Y1 = 111:X2 = 186.25:Y2 = 47: GOSUB 1260
390 X1 = 81.25:Y1 = 95:X2 = 165.25:Y2 = 31: GOSUB 1260
400 X1 = 60.25:Y1 = 79:X2 = 144.25:Y2 = 15: GOSUB 1260
410 GOSUB 1930: GOSUB 1330: GOSUB 1170: RETURN
420 REM ** 4 OBLIQUE ROWS **
430 D = -21/10:E = 16/10
440 X1 = 133.75:Y1 = 15:X2 = 217.75:Y2 = 79: GOSUB 1260
450 X1 = 112.75:Y1 = 31:X2 = 196.75:Y2 = 95: GOSUB 1260
460 X1 = 91.75:Y1 = 47:X2 = 175.75:Y2 = 111: GOSUB 1260
470 X1 = 70.75:Y1 = 63:X2 = 154.75:Y2 = 127: GOSUB 1260
480 GOSUB 1930: GOSUB 1330: GOSUB 1170: RETURN
490 REM ** 1 HORIZONTAL DIAGONAL **
500 D = -21/10:E = 16/10
510 X1 = 70.75:Y1 = 63:X2 = 91.75:Y2 = 79: GOSUB 1260
520 X1 = 112.75:Y1 = 63:X2 = 133.75:Y2 = 79: GOSUB 1260
530 X1 = 154.75:Y1 = 63:X2 = 175.75:Y2 = 79: GOSUB 1260
540 X1 = 196.75:Y1 = 63:X2 = 217.75:Y2 = 79: GOSUB 1260
550 GOSUB 1930: GOSUB 1330: GOSUB 1170: RETURN
560 REM ** 1 VERTICAL DIAGONAL **
570 D = -21/10:E = 16/10
580 X1 = 133.75:Y1 = 15:X2 = 154.75:Y2 = 31: GOSUB 1260
590 X1 = 133.75:Y1 = 47:X2 = 154.75:Y2 = 63: GOSUB 1260
600 X1 = 133.75:Y1 = 79:X2 = 154.75:Y2 = 95: GOSUB 1260
610 X1 = 133.75:Y1 = 111:X2 = 154.75:Y2 = 127: GOSUB 1260
620 GOSUB 1930: GOSUB 1330: GOSUB 1170: RETURN
630 REM ** 1 OPP. SIDE COMBO,B TO T **
640 D = -21/10:E = 16/10
650 X1 = 154.75:Y1 = 31:X2 = 196.75:Y2 = 63: GOSUB 1260
660 X1 = 91.75:Y1 = 79:X2 = 133.75:Y2 = 111: GOSUB 1260
670 GOSUB 1930: GOSUB 1330: GOSUB 1170: RETURN
680 REM ** 1 OPP. SIDE COMBO,L TO R **
690 D = 21/10:E = 16/10
700 X1 = 81.25:Y1 = 63:X2 = 123.75:Y2 = 31: GOSUB 1260
710 X1 = 144.25:Y1 = 111:X2 = 186.25:Y2 = 79: GOSUB 1260
720 GOSUB 1930: GOSUB 1330: GOSUB 1170: RETURN
730 REM ** 1 ENDS OF MAJOR DIAGONAL **
740 D = -21/10:E = 16/10
750 X1 = 91.75:Y1 = 47:X2 = 112.75:Y2 = 63: GOSUB 1260
760 X1 = 91.75:Y1 = 79:X2 = 112.75:Y2 = 95: GOSUB 1260
770 X1 = 175.75:Y1 = 47:X2 = 196.75:Y2 = 63: GOSUB 1260
780 X1 = 175.75:Y1 = 79:X2 = 196.75:Y2 = 95: GOSUB 1260
790 GOSUB 1930: GOSUB 1330: GOSUB 1170: RETURN
800 REM ** 1 ENDS OF MINOR DIAGONAL **
810 D = -21/10:E = 16/10
820 X1 = 112.75:Y1 = 31:X2 = 133.75:Y2 = 47: GOSUB 1260
830 X1 = 154.75:Y1 = 31:X2 = 175.75:Y2 = 47: GOSUB 1260
840 X1 = 112.75:Y1 = 95:X2 = 133.75:Y2 = 111: GOSUB 1260
850 X1 = 154.75:Y1 = 95:X2 = 175.75:Y2 = 111: GOSUB 1260
860 GOSUB 1930: GOSUB 1330: GOSUB 1170: RETURN
870 REM ** 1 FOUR CORNERS **
880 D = -21/10:E = 16/10
890 X1 = 133.75:Y1 = 15:X2 = 154.75:Y2 = 31: GOSUB 1260
900 X1 = 196.75:Y1 = 63:X2 = 217.75:Y2 = 79: GOSUB 1260
910 X1 = 133.75:Y1 = 111:X2 = 154.75:Y2 = 127: GOSUB 1260
920 X1 = 70.75:Y1 = 63:X2 = 91.75:Y2 = 79: GOSUB 1260
930 GOSUB 1930: GOSUB 1330: GOSUB 1170: RETURN
940 REM ** 4 INNER DIAMONDS **
950 D = 21/10:E = 16/10
960 X1 = 102.25:Y1 = 47:X2 = 144.25:Y2 = 15: GOSUB 1260
970 X1 = 123.25:Y1 = 63:X2 = 165.25:Y2 = 31: GOSUB 1260
980 X1 = 102.25:Y1 = 111:X2 = 144.25:Y2 = 79: GOSUB 1260
990 X1 = 123.25:Y1 = 127:X2 = 165.25:Y2 = 95: GOSUB 1260
1000 D = -21/10:E = 16/10
1010 X1 = 175.75:Y1 = 47:X2 = 217.75:Y2 = 79: GOSUB 1260
1020 X1 = 154.75:Y1 = 63:X2 = 196.75:Y2 = 95: GOSUB 1260
1030 X1 = 91.75:Y1 = 47:X2 = 133.75:Y2 = 79: GOSUB 1260
1040 X1 = 70.75:Y1 = 63:X2 = 112.75:Y2 = 95: GOSUB 1260
1050 GOSUB 1930: GOSUB 1330: GOSUB 1170: RETURN
1060 REM ** 1 INNERMOST DIAMOND **
1070 D = -21/10:E = 16/10
1080 X1 = 133.75:Y1 = 47:X2 = 175.75:Y2 = 79: GOSUB 1260
1090 X1 = 112.75:Y1 = 63:X2 = 154.75:Y2 = 95: GOSUB 1260
1100 GOSUB 1930: GOSUB 1330: GOSUB 1170: RETURN
1110 REM ** DRAWS 9-CELL DIAMOND **
1120 HPLOT 139,11 TO 202,59 TO 139,107 TO 76,59 TO 139,11
1130 HPLOT 118,27 TO 181,75: HPLOT 160,27 TO 97,75
1140 HPLOT 97,43 TO 160,91: HPLOT 181,43 TO 118,91
1150 RETURN
1160 REM ** DRAWS 16-CELL DIAMOND **
1170 HPLOT 55,75 TO 139,11 TO 223,75 TO 139,139 TO 55,75
1180 HPLOT 76,59 TO 160,123
1190 HPLOT 97,43 TO 181,107
1200 HPLOT 118,27 TO 202,91
1210 HPLOT 76,91 TO 160,27
1220 HPLOT 97,107 TO 181,43
1230 HPLOT 118,123 TO 202,59
1240 RETURN
1250 REM **FILL ROUTINE**
1260 FOR X = 1 TO 5
1270 X1 = X1 +D:Y1 = Y1 +E
1280 X2 = X2 +D:Y2 = Y2 +E
1290 HPLOT X1,Y1 TO X2,Y2
1300 NEXT X
1310 RETURN
1320 REM **ERASE DIAMOND**
1330 FOR R = 2 TO 17
1340 VTAB R: HTAB 1: PRINT SPC( 32)
1350 NEXT R: VTAB 18: HTAB 20: PRINT SPC( 2): RETURN
1360 REM ** MAIN MENU **
1370 M1 = 1
1380 CALL 54915: GOSUB 4120
1390 VTAB 1: HTAB 13: PRINT "MAGIC DIAMONDS"
1400 VTAB 3: HTAB 15: INVERSE : PRINT "-- MENU --": NORMAL
1410 FOR C1 = 1 TO 6: IF M1 = C1 THEN INVERSE
1420 HTAB 7: VTAB 2 *C1 +3: PRINT W$(C1): NORMAL
1430 NEXT
1440 VTAB 24: HTAB 1: PRINT "ARROWS MOVE HIGHLIGHT - RETURN SELECTS"
1450 GET K$
1460 NORMAL : HTAB 7: VTAB 2 *M1 +3: PRINT W$(M1)
1470 IF (K$ = BS$ OR K$ = UP$) THEN M1 = M1 -1: IF M1 <1 THEN M1 = 6
1480 IF (K$ = FS$ OR K$ = DN$) THEN M1 = M1 +1: IF M1 >6 THEN M1 = 1
1490 IF K$ = CR$ THEN INVERSE : HTAB 7: VTAB 2 *M1 +3: PRINT W$(M1): NORMAL : GOTO 1530
1500 IF K$ = ES$ THEN M1 = 6: GOTO 1530
1510 INVERSE : HTAB 7: VTAB 2 *M1 +3: PRINT W$(M1): NORMAL
1520 GOTO 1450
1530 ON M1 GOTO 1550,1560,1570,1580,1590,1600
1540 GOTO 1410
1550 GOSUB 4120: GOSUB 3470: GOSUB 1120: GOTO 2320
1560 GOSUB 4120: GOSUB 1170: GOSUB 3610: GOSUB 1170: GOSUB 1730: GOTO 1620
1570 GOSUB 4120: GOSUB 1170: GOSUB 3900: GOSUB 1170: GOTO 2420
1580 PRINT CHR$(4);"RUNMD.2"
1590 PRINT CHR$(4);" RUN MD.3"
1600 GOSUB 4120: GOTO 4190
1610 REM ** CHOICES FOR 20 4-CELL SETS **
1620 MP = 1
1630 VTAB 24: HTAB 2: FOR C1 = 1 TO 12: IF MP = C1 THEN INVERSE
1640 PRINT M$(C1);: NORMAL : PRINT " ";: NEXT
1650 IF K$ < > CHR$(255) THEN GET K$
1651 IF K$ >"@" AND K$ <"L" THEN MP = ASC(K$) -64: GOTO 1630
1652 IF K$ >"`" AND K$ <"l" THEN MP = ASC(K$) -96: GOTO 1630
1653 IF K$ = "M" OR K$ = "m" THEN MP = 12: GOTO 1630
1660 IF (K$ = BS$ OR K$ = UP$) THEN MP = MP -1: IF MP <1 THEN MP = 12
1670 IF (K$ = FS$ OR K$ = DN$) THEN MP = MP +1: IF MP >12 THEN MP = 1
1680 IF (K$ = CR$ OR K$ = CHR$(255)) THEN 1710
1690 IF K$ = ES$ THEN MP = 12:K$ = CHR$(255): GOTO 1630
1700 GOTO 1630
1710 ON MP GOSUB 360,430,500,570,880,640,690,740,810,950,1070,1380
1720 GOTO 1630
1730 REM ** 20 4-CELL SETS MENU **
1740 GOSUB 1170
1750 Z$(1) = "A 4 slant columns"
1760 Z$(3) = "B 4 slant rows"
1770 Z$(5) = "C 1 horiz row"
1780 Z$(7) = "D 1 vert row"
1790 Z$(9) = "E 1 four corners"
1800 Z$(2) = "F 1 opp side pair"
1810 Z$(4) = "G 1 opp side pair"
1820 Z$(6) = "H 1 ends hor diag"
1830 Z$(8) = "I 1 ends ver diag"
1840 Z$(10) = "J 4 inner diamonds"
1850 Z$(11) = "K 1 inner diamond"
1860 VTAB 18: HTAB 1
1870 FOR X = 1 TO 10 STEP 2
1880 PRINT Z$(X);: HTAB 22: PRINT Z$(X +1)
1890 NEXT X
1900 HTAB 11: PRINT Z$(11)
1910 VTAB 1: HTAB 1: PRINT "Each marked set's sum is the MAGIC SUM."
1920 RETURN
1930 VTAB 4: HTAB 1: PRINT "Press any key"
1940 PRINT "to continue.": GET P$: IF P$ = ES$ THEN POP : GOTO 1370
1950 RETURN
1960 REM ** 3 OBLIQUE COLUMNS **
1970 D = 21/10:E = 16/10
1980 X1 = 123.25:Y1 = 95:X2 = 186.25:Y2 = 47: GOSUB 1260
1990 X1 = 102.25:Y1 = 79:X2 = 165.25:Y2 = 31: GOSUB 1260
2000 X1 = 81.25:Y1 = 63:X2 = 144.25:Y2 = 15: GOSUB 1260
2010 GOSUB 1930: GOSUB 1330: GOSUB 1120: RETURN
2020 REM ** 3 OBLIQUE ROWS **
2030 D = -21/10:E = 16/10
2040 X1 = 133.75:Y1 = 15:X2 = 196.75:Y2 = 63: GOSUB 1260
2050 X1 = 112.75:Y1 = 31:X2 = 175.75:Y2 = 79: GOSUB 1260
2060 X1 = 91.75:Y1 = 47:X2 = 154.75:Y2 = 95: GOSUB 1260
2070 GOSUB 1930: GOSUB 1330: GOSUB 1120: RETURN
2080 REM ** 1 HORIZONTAL DIAGONAL **
2090 D = -21/10:E = 16/10
2100 X1 = 91.75:Y1 = 47:X2 = 112.75:Y2 = 63: GOSUB 1260
2110 X1 = 133.75:Y1 = 47:X2 = 154.75:Y2 = 63: GOSUB 1260
2120 X1 = 175.75:Y1 = 47:X2 = 196.75:Y2 = 63: GOSUB 1260
2130 GOSUB 1930: GOSUB 1330: GOSUB 1120: RETURN
2140 REM ** 1 VERTICAL DIAGONAL **
2150 D = 21/10:E = 16/10
2160 X1 = 123.25:Y1 = 31:X2 = 144.25:Y2 = 15: GOSUB 1260
2170 X1 = 123.25:Y1 = 63:X2 = 144.25:Y2 = 47: GOSUB 1260
2180 X1 = 123.25:Y1 = 95:X2 = 144.25:Y2 = 79: GOSUB 1260
2190 GOSUB 1930: GOSUB 1330: GOSUB 1120: RETURN
2200 REM ** CHOICES FOR 8 3-CELL SETS **
2210 NP = 1
2220 VTAB 24: HTAB 12: FOR C1 = 1 TO 5: IF NP = C1 THEN INVERSE
2230 PRINT N$(C1);: NORMAL : PRINT " ";: NEXT
2240 IF K$ < > CHR$(255) THEN GET K$
2241 IF K$ >"@" AND K$ <"E" THEN NP = ASC(K$) -64: GOTO 2220
2242 IF K$ >"`" AND K$ <"e" THEN NP = ASC(K$) -96: GOTO 2220
2243 IF K$ = "M" OR K$ = "m" THEN NP = 5: GOTO 2220
2250 IF (K$ = BS$ OR K$ = UP$) THEN NP = NP -1: IF NP <1 THEN NP = 5
2260 IF (K$ = FS$ OR K$ = DN$) THEN NP = NP +1: IF NP >5 THEN NP = 1
2270 IF (K$ = CR$ OR K$ = CHR$(255)) THEN 2300
2280 IF K$ = ES$ THEN NP = 5:K$ = CHR$(255): GOTO 2220
2290 GOTO 2220
2300 ON NP GOSUB 1970,2030,2090,2150,1380
2310 GOTO 2220
2320 REM ** 8 3-CELL SETS MENU **
2330 J$(1) = "A 3 slant columns"
2340 J$(3) = "B 3 slant rows"
2350 J$(2) = "C 1 horiz diag"
2360 J$(4) = "D 1 vert diag"
2370 VTAB 20: HTAB 1
2380 FOR X = 1 TO 4 STEP 2
2390 PRINT J$(X);: HTAB 22: PRINT J$(X +1)
2400 NEXT X
2410 GOSUB 1910: GOTO 2210
2420 VTAB 1: HTAB 14: PRINT "The 8 PATHS."
2430 NP = 1
2440 VTAB 22: HTAB 2: FOR C1 = 1 TO 10: IF NP = C1 THEN INVERSE
2450 PRINT L$(C1);: NORMAL : PRINT " ";: NEXT
2460 PP = 0
2470 IF K$ < > CHR$(255) THEN GET K$
2471 IF K$ >"@" AND K$ <"I" THEN NP = ASC(K$) -64: GOTO 2440
2472 IF K$ >"`" AND K$ <"i" THEN NP = ASC(K$) -96: GOTO 2440
2473 IF K$ = "L" OR K$ = "l" THEN NP = 9: GOTO 2440
2474 IF K$ = "M" OR K$ = "m" THEN NP = 10: GOTO 2440
2480 IF (K$ = BS$ OR K$ = UP$) THEN NP = NP -1: IF NP <1 THEN NP = 10
2490 IF (K$ = FS$ OR K$ = DN$) THEN NP = NP +1: IF NP >10 THEN NP = 1
2500 IF (K$ = CR$ OR K$ = CHR$(255)) THEN 2530
2510 IF K$ = ES$ THEN NP = 10:K$ = CHR$(255): GOTO 2440
2520 GOTO 2440
2530 ON NP GOSUB 2570,2620,2670,2720,2770,2820,2870,2920,2560,1380
2540 VTAB 24: HTAB 1: PRINT SPC( 40)
2550 GOSUB 4250: GOSUB 1170: GOTO 2440
2560 GOSUB 4250: GOSUB 1170:PP = 1
2570 VTAB 4: HTAB 20: PRINT "A";
2580 VTAB 10: HTAB 23: PRINT "A";
2590 VTAB 12: HTAB 14: PRINT "A";
2600 VTAB 14: HTAB 23: PRINT "A";
2610 IF PP < >1 THEN GOSUB 4140: RETURN
2620 VTAB 4: HTAB 21: PRINT "B";
2630 VTAB 10: HTAB 17: PRINT "B";
2640 VTAB 12: HTAB 26: PRINT "B";
2650 VTAB 14: HTAB 17: PRINT "B";
2660 IF PP < >1 THEN GOSUB 4140: RETURN
2670 VTAB 8: HTAB 20: PRINT "C";
2680 VTAB 8: HTAB 26: PRINT "C";
2690 VTAB 10: HTAB 11: PRINT "C";
2700 VTAB 14: HTAB 24: PRINT "C";
2710 IF PP < >1 THEN GOSUB 4140: RETURN
2720 VTAB 6: HTAB 23: PRINT "D";
2730 VTAB 10: HTAB 12: PRINT "D";
2740 VTAB 12: HTAB 20: PRINT "D";
2750 VTAB 12: HTAB 27: PRINT "D";
2760 IF PP < >1 THEN GOSUB 4140: RETURN
2770 VTAB 6: HTAB 24: PRINT "E";
2780 VTAB 8: HTAB 14: PRINT "E";
2790 VTAB 10: HTAB 24: PRINT "E";
2800 VTAB 16: HTAB 20: PRINT "E";
2810 IF PP < >1 THEN GOSUB 4140: RETURN
2820 VTAB 6: HTAB 17: PRINT "F";
2830 VTAB 8: HTAB 27: PRINT "F";
2840 VTAB 10: HTAB 18: PRINT "F";
2850 VTAB 16: HTAB 21: PRINT "F";
2860 IF PP < >1 THEN GOSUB 4140: RETURN
2870 VTAB 8: HTAB 15: PRINT "G";
2880 VTAB 8: HTAB 21: PRINT "G";
2890 VTAB 10: HTAB 29: PRINT "G";
2900 VTAB 14: HTAB 18: PRINT "G";
2910 IF PP < >1 THEN GOSUB 4140: RETURN
2920 VTAB 6: HTAB 18: PRINT "H";
2930 VTAB 10: HTAB 30: PRINT "H";
2940 VTAB 12: HTAB 15: PRINT "H";
2950 VTAB 12: HTAB 21: PRINT "H";
2960 IF PP < >1 THEN GOSUB 4140: RETURN
2970 PP = 0: GOSUB 4140: RETURN
3330 GOSUB 4140: GOSUB 4120
3340 VTAB 1: HTAB 13: PRINT "MAGIC DIAMONDS": VTAB 6: HTAB 1
3350 PRINT "Welcome to the World of Magic Diamonds!"
3360 PRINT "This program will help you learn about"
3370 PRINT "9 and 16 cell magic diamonds. You will"
3380 PRINT "learn how to make your own 16 cell"
3390 PRINT "magic diamonds with cells containing"
3400 PRINT "numbers you choose!!": PRINT
3410 PRINT "Follow along to see just what is magic"
3420 PRINT "about them. You'll have a chance to try"
3430 PRINT "to make a basic magic diamond of each"
3440 PRINT "type and then concentrate on the 16"
3450 PRINT "cell diamond. READ ON and ENJOY!!"
3470 GOSUB 1120: VTAB 1: HTAB 13: PRINT "MAGIC DIAMONDS"
3480 VTAB 19: HTAB 1
3490 PRINT "This is a 9-cell diamond. Fill it with"
3500 PRINT "9 numbers so that each slant column,"
3510 PRINT "each slant row, and each diagonal add"
3520 PRINT "to the same number (the MAGIC SUM) and"
3530 PRINT "it's called a MAGIC DIAMOND of 9 cells."
3540 GOSUB 4140: GOSUB 4180: VTAB 19: HTAB 1
3550 PRINT "This MAGIC DIAMOND is just a rotated"
3560 PRINT "3x3 MAGIC SQUARE, squashed a bit. Use"
3570 PRINT "the menu on the next page to see the 8"
3580 PRINT "3-cell sets each of which adds up to"
3590 PRINT "the MAGIC SUM!"
3600 GOSUB 4140: GOSUB 4120: RETURN
3610 VTAB 1: HTAB 13: PRINT "MAGIC DIAMONDS"
3620 VTAB 19: HTAB 1
3630 PRINT "This is a 16-cell diamond. It's much"
3640 PRINT "more interesting than the 9-cell one."
3650 PRINT "Fill the 16 cells with the correct"
3660 PRINT "numbers, and there are 20 4-cell sets"
3670 PRINT "which add up to the MAGIC SUM!"
3680 GOSUB 4140: GOSUB 4180
3690 VTAB 19: HTAB 1
3700 PRINT "Better still, many cells can be made to"
3710 PRINT "hold numbers special for you. Like"
3720 PRINT "dates, ages, years, or any number"
3730 PRINT "of importance to you, your friends or"
3740 PRINT "to your own family."
3750 GOSUB 4140: GOSUB 4180
3760 VTAB 19: HTAB 1
3770 PRINT "This program is designed to tell you"
3780 PRINT "about MAGIC DIAMONDS and allow you to"
3790 PRINT "make 16-cell MAGIC DIAMONDS of your own"
3800 PRINT "design and print copies of the cells"
3810 PRINT "in diamond form."
3820 GOSUB 4140: GOSUB 4180
3830 VTAB 19: HTAB 1
3840 PRINT "These 20 4-cell sets, in which each set"
3850 PRINT "adds to the MAGIC SUM, are not easy to"
3860 PRINT "define. Usually, only some of them are"
3870 PRINT "remembered by people. Use the menu on"
3880 PRINT "the next page to see them all."
3890 GOSUB 4140: GOSUB 4120: RETURN
3900 VTAB 1: HTAB 13: PRINT "MAGIC DIAMONDS";: VTAB 19: HTAB 1
3910 PRINT "The secret in making 16-cell MAGIC"
3920 PRINT "DIAMONDS is the existance of 8 special"
3930 PRINT "4-cell sets called PATHS. When you add"
3940 PRINT "the same number to each cell in a PATH"
3950 PRINT "you change the numbers in these cells."
3960 GOSUB 4140: GOSUB 4180
3970 VTAB 19: HTAB 1
3980 PRINT "These numbers can be made to be"
3990 PRINT "almost any number you wish. The magic"
4000 PRINT "properties of the diamond are retained."
4010 PRINT "The 8 PATHS are so located that each"
4020 PRINT "of the 16 cells is part of two PATHS."
4030 GOSUB 4140: GOSUB 4180
4040 VTAB 19: HTAB 1
4050 PRINT "So.. the way to make MAGIC DIAMONDS"
4060 PRINT "is to know the 8 PATHS and just add"
4070 PRINT "numbers to these PATHS! Use the menu"
4080 PRINT "on the next page to locate the PATHS."
4090 PRINT "( No..you won't need a good memory! )"
4100 GOSUB 4140: GOSUB 4120: RETURN
4110 REM ** CLEAR SCREEN **
4120 HCOLOR= 0: HPLOT 0,0: CALL -3082: HCOLOR= 3: RETURN
4130 REM ** PRESS KEY **
4140 VTAB 24: HTAB 13: PRINT "-Press a Key-";: GET A$
4150 IF A$ = ES$ THEN POP : GOTO 1370
4160 RETURN
4170 REM ** ERASE 6 LINES **
4180 VTAB 19: HTAB 1: FOR X = 19 TO 24: VTAB X: HTAB 1: PRINT SPC( 40): NEXT X: RETURN
4190 VTAB 12: HTAB 2
4200 PRINT "Are you sure you want to quit (Y/N) ?";: GET A$
4210 IF A$ < >"Y" AND A$ < >"y" AND A$ < >"N" AND A$ < >"n" THEN PRINT BL$;: GOTO 4190
4220 IF A$ = "N" OR A$ = "n" THEN GOTO 1380
4230 PRINT CHR$(4)"BYE"
4240 REM ** CLEAR DIAMOND CELLS **
4250 FOR X = 1 TO 16: VTAB R%(X): HTAB S%(X): PRINT SPC( 4): NEXT X: RETURN