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