1 static char sccsid[] = "	teach.c	4.1	82/05/11	";
2 
3 #include "back.h"
4 
5 char	*hello[];
6 char	*list[];
7 char	*intro1[];
8 char	*intro2[];
9 char	*moves[];
10 char	*remove[];
11 char	*hits[];
12 char	*endgame[];
13 char	*doubl[];
14 char	*stragy[];
15 char	*prog[];
16 char	*lastch[];
17 
18 extern char	ospeed;			/* tty output speed for termlib */
19 
20 char *helpm[] = {
21 	"\nEnter a space or newline to roll, or",
22 	"     b   to display the board",
23 	"     d   to double",
24 	"     q   to quit\n",
25 	0
26 };
27 
28 char *contin[] = {
29 	"",
30 	0
31 };
32 
33 main (argc,argv)
34 int	argc;
35 char	**argv;
36 
37 {
38 	register char	*s, *ts[];
39 	register int	i;
40 
41 	signal (2,getout);
42 	if (gtty (0,&tty) == -1)			/* get old tty mode */
43 		errexit ("teachgammon(gtty)");
44 	old = tty.sg_flags;
45 #ifdef V7
46 	raw = ((noech = old & ~ECHO) | CBREAK);		/* set up modes */
47 #else
48 	raw = ((noech = old & ~ECHO) | RAW);		/* set up modes */
49 #endif
50 	ospeed = old.sg_ospeed;				/* for termlib */
51 	tflag = getcaps (getenv ("TERM"));
52 #ifdef V7
53 	while (*++argv != 0)
54 #else
55 	while (*++argv != -1)
56 #endif
57 		getarg (&argv);
58 	if (tflag)  {
59 		noech &= ~(CRMOD|XTABS);
60 		raw &= ~(CRMOD|XTABS);
61 		clear();
62 	}
63 	text (hello);
64 	text (list);
65 	i = text (contin);
66 	if (i == 0)
67 		i = 2;
68 	init();
69 	while (i)
70 		switch (i)  {
71 
72 		case 1:
73 			leave();
74 
75 		case 2:
76 			if (i = text(intro1))
77 				break;
78 			wrboard();
79 			if (i = text(intro2))
80 				break;
81 
82 		case 3:
83 			if (i = text(moves))
84 				break;
85 
86 		case 4:
87 			if (i = text(remove))
88 				break;
89 
90 		case 5:
91 			if (i = text(hits))
92 				break;
93 
94 		case 6:
95 			if (i = text(endgame))
96 				break;
97 
98 		case 7:
99 			if (i = text(doubl))
100 				break;
101 
102 		case 8:
103 			if (i = text(stragy))
104 				break;
105 
106 		case 9:
107 			if (i = text(prog))
108 				break;
109 
110 		case 10:
111 			if (i = text(lastch))
112 				break;
113 		}
114 	tutor();
115 }
116 
117 leave()  {
118 	if (tflag)
119 		clear();
120 	else
121 		writec ('\n');
122 	fixtty(old);
123 	execl (EXEC,"backgammon",args,"n",0);
124 	writel ("Help! Backgammon program is missing\007!!\n");
125 	exit (-1);
126 }
127