|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1980 Regents of the University of California. ! 3: * All rights reserved. ! 4: * ! 5: * Redistribution and use in source and binary forms are permitted ! 6: * provided that: (1) source distributions retain this entire copyright ! 7: * notice and comment, and (2) distributions including binaries display ! 8: * the following acknowledgement: ``This product includes software ! 9: * developed by the University of California, Berkeley and its contributors'' ! 10: * in the documentation or other materials provided with the distribution ! 11: * and in all advertising materials mentioning features or use of this ! 12: * software. Neither the name of the University nor the names of its ! 13: * contributors may be used to endorse or promote products derived ! 14: * from this software without specific prior written permission. ! 15: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR ! 16: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED ! 17: * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 18: */ ! 19: ! 20: #ifndef lint ! 21: char copyright[] = ! 22: "@(#) Copyright (c) 1980 Regents of the University of California.\n\ ! 23: All rights reserved.\n"; ! 24: #endif /* not lint */ ! 25: ! 26: #ifndef lint ! 27: static char sccsid[] = "@(#)teach.c 5.6 (Berkeley) 6/1/90"; ! 28: #endif /* not lint */ ! 29: ! 30: #include "back.h" ! 31: ! 32: char *hello[]; ! 33: char *list[]; ! 34: char *intro1[]; ! 35: char *intro2[]; ! 36: char *moves[]; ! 37: char *remove[]; ! 38: char *hits[]; ! 39: char *endgame[]; ! 40: char *doubl[]; ! 41: char *stragy[]; ! 42: char *prog[]; ! 43: char *lastch[]; ! 44: ! 45: extern char ospeed; /* tty output speed for termlib */ ! 46: ! 47: char *helpm[] = { ! 48: "\nEnter a space or newline to roll, or", ! 49: " b to display the board", ! 50: " d to double", ! 51: " q to quit\n", ! 52: 0 ! 53: }; ! 54: ! 55: char *contin[] = { ! 56: "", ! 57: 0 ! 58: }; ! 59: ! 60: main (argc,argv) ! 61: int argc; ! 62: char **argv; ! 63: ! 64: { ! 65: register int i; ! 66: ! 67: signal (2,getout); ! 68: if (gtty (0,&tty) == -1) /* get old tty mode */ ! 69: errexit ("teachgammon(gtty)"); ! 70: old = tty.sg_flags; ! 71: #ifdef V7 ! 72: raw = ((noech = old & ~ECHO) | CBREAK); /* set up modes */ ! 73: #else ! 74: raw = ((noech = old & ~ECHO) | RAW); /* set up modes */ ! 75: #endif ! 76: ospeed = tty.sg_ospeed; /* for termlib */ ! 77: tflag = getcaps (getenv ("TERM")); ! 78: #ifdef V7 ! 79: while (*++argv != 0) ! 80: #else ! 81: while (*++argv != -1) ! 82: #endif ! 83: getarg (&argv); ! 84: if (tflag) { ! 85: noech &= ~(CRMOD|XTABS); ! 86: raw &= ~(CRMOD|XTABS); ! 87: clear(); ! 88: } ! 89: text (hello); ! 90: text (list); ! 91: i = text (contin); ! 92: if (i == 0) ! 93: i = 2; ! 94: init(); ! 95: while (i) ! 96: switch (i) { ! 97: ! 98: case 1: ! 99: leave(); ! 100: ! 101: case 2: ! 102: if (i = text(intro1)) ! 103: break; ! 104: wrboard(); ! 105: if (i = text(intro2)) ! 106: break; ! 107: ! 108: case 3: ! 109: if (i = text(moves)) ! 110: break; ! 111: ! 112: case 4: ! 113: if (i = text(remove)) ! 114: break; ! 115: ! 116: case 5: ! 117: if (i = text(hits)) ! 118: break; ! 119: ! 120: case 6: ! 121: if (i = text(endgame)) ! 122: break; ! 123: ! 124: case 7: ! 125: if (i = text(doubl)) ! 126: break; ! 127: ! 128: case 8: ! 129: if (i = text(stragy)) ! 130: break; ! 131: ! 132: case 9: ! 133: if (i = text(prog)) ! 134: break; ! 135: ! 136: case 10: ! 137: if (i = text(lastch)) ! 138: break; ! 139: } ! 140: tutor(); ! 141: } ! 142: ! 143: leave() { ! 144: if (tflag) ! 145: clear(); ! 146: else ! 147: writec ('\n'); ! 148: fixtty(old); ! 149: execl (EXEC,"backgammon",args,"n",0); ! 150: writel ("Help! Backgammon program is missing\007!!\n"); ! 151: exit (-1); ! 152: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.