0707070000020076731006440001460001440000010431540361302637600000500000000004Size100 0707070000020074401006660001460001440000010675070361302641300000500000000041NameSnake -- 1/7/85 from THE STORE! 0707070000020076631007770001460001440000010675110361705730600001000000001200Installecho "Installing: Snake... Please wait...." GAMES=/usr/games if [ ! -d $GAMES ]; then mkdir $GAMES chmod 755 $GAMES fi ln ./snake $GAMES if [ ! -d $GAMES/SRC ]; then mkdir $GAMES/SRC chmod 755 $GAMES/SRC fi ln ./snake.c $GAMES/SRC/snake.c uaupd -r "Toybox" -a Office Office if [ -r $UA/Toybox ] ; then uaupd -r "Snake" -a Toybox Toybox else ln Toybox $UA/Toybox chmod 666 $UA/Toybox fi message -i "The source code for snake, snake.c, has been placed in $GAMES/SRC for your enjoyment. If you improve on the graphics, send a copy to THE STORE!\n\nThis version uses (h,j,k,l) and (H,J,K,L) to move.\nPress to continue." 0707070000020076721007770001460001440000010675120361705642500000700000000174Removeecho "Removing: Snake... Please wait...." GAMES=/usr/games rm -rf $GAMES/snake $GAMES/SRC/snake.c uaupd -r "Snake" Toybox 0707070000020076671006660001460001440000010675130361303041500000700000000050OfficeName=Toybox Default=Open Open=UA Toybox 0707070000020076661006660001460001440000010676460361303275700000700000000066ToyboxName=Snake Default=Run Run=EXEC -pwd /usr/games/snake 0707070000020077571007770001460001440000010676470361031753100000600000065024snakeR _T .text_T .data d@.bss   OQ./HJf/H# N,/N_<0<N@NV f n .N3# _ѹ . /< N5XNY.N4.p/NRVX.Jp/NRVX.Jp/NRVXN  B9 y  . /<T/9 N]XPy B9 . /<T/9 N]XP. N jp./ 9 S/p/N v @# p.p/ 9 S/ 9 S/N v @# J o 9 "9 ]op# p*.//9 N P y B( y B(p.//9 N)JP. /9 NX. Nr. Nr. NrNPNjJ gS 9 `(. NUp.Hnp/N^PJm.HH.Nh`NVH p.NZJ @# "9 T y r !A y B p@./9 NjXt$y `2p.NZJ @&H'J %K S&'jpo./ N2XR$K m#  KB. NrL N^NuNV n./(/9 N)JP.HH./9 N'XN^NuNVp. 9 S//9 N)JP. NrN p.N_@0; NJ&^ `&V `< `> `@ 9 HH./.N X# . NrJ fNp.N7`@NVp.N6. N jp. 9 S//9 N)JP. NrN . NU. "N4. /< UN4XNN^NuNVp. 9 S//9 N)JP. NrN . NU. nNT @-H.f-| t.NQB B9 y  . /<T/9 N]XPy B9 . /<T/9 N]XPNN^NuNV. N j. Nr. N. Nr. N. Nrp.N7N^NuNVH<$n0*H(0*HS& j&P "H(qt`.((RmSt`& "j q.H "j qRoJ*f* gp HH.NL Ѐ"j3Rm І f. Jf f Jf Ѕ f J`NVHn /./9 N* N^NuNVHn/. /.N N^NuNV|A-H-H-||Hn/./. N7Z Sm nRr`Hnp/NVPHn/.N'xPN^NuNVH $nJ9 g6.xp//9 N2pP.xp//9 N2pPB9  y 3  3 "t# fp`p $J*f y J(f J9 $gx* f y J(g^.xp//9 N2pP y r0 y 1A3 "3  y B(J9 $f . N.NB*J9 fHJjg.S m y R r `. p /NVXJ9 $f . Nt`B0HЀ"j qg.0H./ NXJf pL N^Nu0HЀ"j3RBjmJ*gr y 0  y 1y "0*y  0* y "Jy  m009  jl$Jy "m09 "jl4  5y "`hp5@4`^0*H2* HЁ.0H2*HЁ/09 "H/09  H/N y 2j0 y 2*j 1AvB . NU `NVH<$n0.HЀ"j410.j80.HЀ"j61J9 $g(| `00.H2*HЁ.0H2* HЁ"y "i"QI0.H"j qG J g^J9 $fT0.H-@0*HS"j"QK`0.H"jcS  g0.H"j q" *J9 $f*y `ʹCn*g0H2* HЁ.0H/09 "H/09  H/N 3  0j 3 "gCn g0Hm  f09  H-@ 9 S"y "i"QK  f MSb09  H"y "i q" 0* H,. NZ"mv0*Hlj y ( g$.xp//9 N2pP y h .xp//9 N2pP0j 3 "0RBHn `J gtHH"y 2) HgPg&.xp//9 N2pP y  `$.xp//9 N2pP y h RBjm>0.H2*HSf*J*g0* H f,J9 f$.xp//9 N2pP y h J9 $fS m y R `. 2/NVX.N&* gJ9 $f . N&0*R3  0* j3 "`Z* gSB3 "pLS m y R `. 2/NVXJ gLgFS m y R r`. p/NVX.xp//9 N2pPR`T0H2* HЁ29 "Hg0j 3 "`شCm:* g,J9 f$.xp//9 N2pP y h p`fCnRJ9 $fRRB`NVH$n0*H&0*HS(t` Ѐ"jBq Ѐ"jA"0RmLN^NuNVH<<$nt`v "j*q0*I&M`  g-Kpf & Repgt Ѐ"j01Hn Ѐ qf Ѐ"jA"0 "j(1 Ѐ"j01H".ܒl "j012.ޒ@: Ѐ"j3R0*Hm@p45@L<S m y R r `. p /NVXSJ9 fB & 9 Sn 9 2 *lJ9 fJ "f # * 2. 2/9 ./9 &N0P @$HJ9 g.NZ.NJo&p.N# 2 *# . &L N^Nu.xp// N2pP`NVH. S m y R LN^Nu. 0/NVX`NVH.  :HH# 6*9 &,9 *J *gJ9 .g2 9 .jDD`"9 .j DD`Ё$`$9 . 9 . &m`JjDD`"9 &jDD`扐&J9 .g"Jg 9 .j DD`ր`H 9 . &&`8 9 & .n"J9 /fJ 2g 9 & .&$` R& 9 * 2(l D(ք й 2l(."Rp//9 *N2pPp# *# &`NJ 6gF 9 S 2( ЄTl,."Rp//9 6N2pPB & 9 S# *J9 .g2 9 .j DD`"9 .jDD`Ё$`$9 . 9 & .&J9 :fJ9 f 9 * 2mJ9 ;g 9 * 2l Rn" 9 & .ohJ9 /f^J 2fTp .N&J9 ;gp .NR *B &`.R *p .NJ 6mJ9 :fJ9 fB & 9 * 2mJ >g(. >NZ(`."Rp//9 2N2pP 9 & .o"J 6m`S &J 2fp.Nn` 9 * 2o*S *."Rp//9 "N2pPJ 6l`J9 .g 9 . &ro 9 &jDD`R$ .n$J Bgn."Rp//9 BN2pP`Z 9 . &ro lJ 2f J9 /gJ Bg,."Rp//9 BN2pP`p .Nx# &`Zp .Nf# &`"."Rp//9 2N2pP`p.N< 9 & .oS &J 2g` 9 & .lJ gJ9 :g S 6` 9 *"y 2)H-@ 9 &2) H"y "i"Q1HH"y 2) Hf4S m y R `D. 0/NVX`*J Fg."Rp//9 FN2pP`p .N6R &J 6l J9 :g # &# * 9 6LN^NuNVH. J9 :gS 6LN^NuS m y R `. 0/NVX`NVH$n. NU.xp// N2pPLN^NuNV. /<T/9 N]XPJm. /<T/9 N]XP | "| """"2. /<T/9 N]XPJl | "| """"209 @3 @9 gp`N^Nup p09 @fp`p .9 fp`p :`NVH$nJf$| Bt.HnN*Xrgԁ. EHnN^:XJ f. NN-#  np` 0 op0# J f. QN-#  n pP# `  o # # @ N. /9 /9 &N0P @ OfB9 B &` J 0*Hl2Jm,Jm&.HHQ bD@0; NJ" 66&pr‚Ђ(`p ./ N~XJgRm`* g. "j q0(.g` Ѐ"j qf Ѐ"jA"08 Ѐ"j3`0 Ѐ"j01Hm Ѐ"j01Ho ЀA"0 * R"j"Q0*HmLtR0*Hm>J*g.Nr.N&S`$pL Ѐ"j3Lp%f nRHH$  %g +gB .gH 2g 3g >g Bg Dg dg~ igp ngT rfp-@`LB9  nRHH$fP. / N^:X |  LN^Nu `p` JgL . `Jp m,pdm d0pd. N]h&  0p . N]h0` .&`` nRHHo nRHHր`:R`2 nRHHրJgpg p gp fJJfJ "g "|  q%HA&H* HH"| #%jBLN^Nu "| A%HA(H* HH"| #`* HH"| A"jC .N],Jg `NVJfpN^Nup.N7-@.7p/NRVX @-HBBJgB .c .R`* .-@-nBS.p/NRVX. N74Jf.N7N7"p.N7-@Jm.p/NRVXJn JlJg .Ю.N7 .Ю`NVp./< N7DXN^Nu0<N@Nu0<N@dN_2BNu o HBNu o /fpL.NuNVH<$n&nBB.G(J`RHH$gp%f -@"gtѮ "f&Sm kR`P.p/NVX`> + f."/ /+NP*P @"'H`./."p// NN< Jf+ f .L<N^Nup-@-@-@-@-@RHH$  g$ #g" +g -fR`R`R`R`p*f$pѮ n -hl .D-@RR`Bp0fRB` .Ѐ"Ё"0Ё-@RHH$ | 0(f .gJg .`p-@`VR *fpѮ n -hR`8B` .Ѐ"Ё"0Ё-@RHH$ | 0(fBHH hg lfRR-| LAG-HHp-@-@HH$ Jgv Eg Gg XgT cg dgL eg fg gg og* sg ug xfp` p`p`p-@Jlp-@JfpdpѮ n -h>pdfBJ>l-| L >g* .>D-@>`Jg -| L`Jg-| LpXf | ` | -H*I\*L`Dp>-@ .>-@>.N]hЀЮ"n*1. .>NO-@>J>f Ю-@Jgȹg  Xg4 og xf-| L` lp-@`-| L`xJlp-@pѮ n -h6-h:Hn.Hn2 .Rrl .R`p//.:/.6NA @(HJ.g -| L`Jg -| L`Jg-| LKQJgHH`p0JfJg.-n`SJoJfIQ. /9  .6".:NF\XJg .2S-@"JlD`Jlp-@pѮ n -h6-h:Hn.Hn2 + f."/ /+NP*P @"'H`./."p// NN< SmVSm kRr0`.p0/NVX` kR"nHRH`. nHRHp/NVX nHJg$Sm` kRr `.p /NVXS .䰮&mSm`J"g@p . ."N]h0rH"nHp . ."NO-@"`pH nH0 nHCEbJ2n . /9  .6".:NF\XJfp+`p-rH"nH | 0(gpE`perH"nH`>NVp././././. /.N> @ N^NuNVp././././. /.N @ N^NuNVH<$n&| 6 ."KI . fp.NY/NOX. /9  .". NF\XJlp`p"n"g .". @-@-A B9 6B. /9  .". NF\XJgd*| R. ./ .". NGX-@-A -ђ`. D/9 @ .". NF\XJm`-y H-y L` -n-n./. 9 P"9 TNIX-@-A. /.".NF\XJo`. l/9 h .". NF\XJln`8./ .". NIX-@-A -` M o2./ .". NIX. t/9 pNF\XJl`Jgҹ 6eй c(| . |/9 x .". NF\XJg Ge0`T .". NK4$ 0 NJ./ .". NF\X./ 9 "9 NIX-@-A e$&L 5m0 6f1 6RJgR`R`R0R# 9nB | 6 L<N^Nu M o./ .". NF\XJm`./. .". NGXNK4$ 0 NJ./.NIX./ .". NF\X-@-A R. \/9 X .".NF\XJo^. d/9 ` .".NGX-@-A`ZH?L ` H?LN "LNuH? o "($/ &/$N " LNuH? o/NKX$/ &/$N//NKHP LNuH?$& /"/ `H?$/&/ /$"/(Nj "LNuH? o$&( / "/$NF " LNuH? o/NKX$& / "/$N//NKHP LNu@UUŰcBCEHNLJGf(g~JFf `0 FgrFDGQGmfJf` ^GkQJkցՀd RF Fm`LdFED@NLLNLM fBNuNL`(fFfJj$<B`$<B`H?$& /"/ `H?$/&/ /$"/(Nj "LNuH? o$&( / "/$NF " LNuH? o/NKX$& / "/$N//NKHP LNu*BNb:G8<a,8<aᏄg$&<FNLv`.HGODfJfJgRGSGgNu8<@ANBCFgDgNg Dg,NuNJk&Fg"Jg `Jk6g2$<`N LNu"`"/H8NVN0 LNu$<&HCĀ(f<Jg,<`&HBJ Bf4<`<Jg<`SB<B2Nu m `B>BFCNBNr, AKNux ,<.̂(ȃ⊄(΀ȁ∀NuJf F m F BJgk [ZNu< V   & Z ^ b f j n * r v z 6 ~ F <   B  " xxxx|dumb:licoambseohzinmimsncosulxnalbcbtcdceclcmdcdldmdoedeihoicimipllmandpcsesfsosrtatetiucueupusvbvsve unknownTERMCAPTERM/etc/termcap/etc/termcapTermcap entry too long Bad termcap entry Infinite tc= loop Termcap entry too long E^^\\::n r t bf OOPS5MS7) -+ 0123456789ABCDEF0123456789abcdef0x0X-+ -+ Fn CAy7Aׄ@È@Y@$C@@$@$@$@$@$?@$@$ ((((( H /bin/shsh-c    0707070000020071541006660001460001440000010536640361031747200001000000011436snake.c/* * Snake, from worm Written by Michael Toy * UCSC * modified by a.wiedemann 05.17.82 * Siemens AG Munich * ZTI INF 212 * * herpetology added by David Fiedler, InfoPro Systems * {astrovax, harpo, whuxcc}!infopro!dave * * compile with "cc -O -s -o snake snake.c -lcurses -ltermcap * */ #include #include #include char *getenv(); #define newlink() (struct body *) malloc(sizeof (struct body)); #define HEAD '@' #define BODY 'o' #define UP 1 #define DOWN 2 #define LEFT 3 #define RIGHT 4 #define LENGTH 7 #define RUNLEN 8 #define when break;case #define otherwise break;default #define CNTRL(p) ('p'-'A'+1) WINDOW *tv; WINDOW *stw; struct body { int x; int y; struct body *prev; struct body *next; } *head, *tail, goody, *malloc(); int growing = 0; int running = 0; int score = 0; int start_len = LENGTH; char lastch; char outbuf[BUFSIZ]; main(argc, argv) char **argv; { int leave(), wake(), suspend(); char ch; if (argc == 2) { start_len = atoi(argv[1]); score += (start_len - LENGTH); } setbuf(stdout, outbuf); srand(getpid()); signal(SIGALRM, wake); signal(SIGINT, leave); signal(SIGQUIT, leave); #ifdef SIGTSTP signal(SIGTSTP, suspend); /* process control signal */ #endif initscr(); crmode(); noecho(); clear(); stw = newwin(1, COLS-1, 0, 0); tv = newwin(LINES-1, COLS-1, 1, 0); /* snake cannot be bigger than the inner width of tv window !! */ if ((start_len <= 0) || (start_len > COLS - 6)) start_len = LENGTH; box(tv, '*', '*'); scrollok(tv, FALSE); scrollok(stw, FALSE); wmove(stw, 0, 0); wprintw(stw, " Snake"); refresh(); wrefresh(stw); wrefresh(tv); life(); /* Create the snake */ prize(); /* Put up a goal */ for (;;) { if (running) { running--; process(lastch); } else { fflush(stdout); if (read(0, &ch, 1) >= 0) process(ch); } } } life() { register struct body *bp, *np; register int i; head = newlink(); head->x = start_len+2; head->y = 12; head->next = NULL; display(head, HEAD); for (i = 0, bp = head; i < start_len; i++, bp = np) { np = newlink(); np->next = bp; bp->prev = np; np->x = bp->x - 1; np->y = bp->y; display(np, BODY); } tail = np; tail->prev = NULL; wrefresh(tv); } display(pos, chr) struct body *pos; char chr; { wmove(tv, pos->y, pos->x); waddch(tv, chr); } leave() { move(LINES - 1, 0); refresh(); endwin(); exit(0); } wake() { signal(SIGALRM, wake); fflush(stdout); process(lastch); } rnd(range) { return abs((rand()>>5)+(rand()>>5)) % range; } newpos(bp) struct body * bp; { do { bp->y = rnd(LINES-3)+ 2; bp->x = rnd(COLS-3) + 1; wmove(tv, bp->y, bp->x); } while(winch(tv) != ' '); } prize() { int value; value = rnd(9) + 1; newpos(&goody); waddch(tv, value+'0'); wrefresh(tv); } process(ch) char ch; { register int x,y; struct body *nh; static char headchar, dir; alarm(0); x = head->x; y = head->y; switch(ch) { when 'h': x--; dir=LEFT; when 'j': y++; dir=DOWN; when 'k': y--; dir=UP; when 'l': x++; dir=RIGHT; when 'H': x--; running = RUNLEN; ch = tolower(ch);dir=LEFT; when 'J': y++; running = RUNLEN/2; ch = tolower(ch);dir=DOWN; when 'K': y--; running = RUNLEN/2; ch = tolower(ch);dir=UP; when 'L': x++; running = RUNLEN; ch = tolower(ch);dir=RIGHT; when '\f': setup(); return; when CNTRL(Z): suspend(); return; when CNTRL(C): crash(); return; when CNTRL(D): crash(); return; otherwise: if (! running) alarm(1); return; } lastch = ch; if (growing == 0) { display(tail, ' '); tail->next->prev = NULL; nh = tail->next; free(tail); tail = nh; } else growing--; display(head, BODY); wmove(tv, y, x); if (isdigit(ch = winch(tv))) { growing += ch-'0'; prize(); score += growing; running = 0; wmove(stw, 0, 68); wprintw(stw, "Score: %3d", score); wrefresh(stw); } else if(ch != ' ') crash(); nh = newlink(); nh->next = NULL; nh->prev = head; head->next = nh; nh->y = y; nh->x = x; switch (dir) { case UP: headchar = '^'; break; case DOWN: headchar = 'V'; break; case LEFT: headchar = '<' ; break; case RIGHT: headchar = '>' ; break; default: headchar = HEAD ; } display(nh, headchar); head = nh; wrefresh(tv); if (! running) alarm(1); } crash() { sleep(2); clear(); move(LINES - 1, 0); refresh(); endwin(); fflush(stdout); printf("Well you ran into something and the game is over.\n"); printf("Your final score was %d\n", score); leave(); } suspend() { char *sh; move(LINES-1, 0); refresh(); endwin(); fflush(stdout); #ifdef SIGTSTP kill(getpid(), SIGTSTP); signal(SIGTSTP, suspend); #else sh = getenv("SHELL"); if (sh == NULL) sh = "/bin/sh"; system(sh); #endif crmode(); noecho(); setup(); } setup() { clear(); refresh(); touchwin(stw); wrefresh(stw); touchwin(tv); wrefresh(tv); alarm(1); } 0707070000020076641006440001460001440000010414300361717366500000600000000130Files./Size ./Name ./Install ./Remove ./Office ./Toybox ./snake ./snake.c ./Files ./MAKEcpio 0707070000020075211007770001460001440000010275350361705674000001100000000042MAKEcpiocat Files | cpio -ocBv > SNAKE+IN 0707070000020075211007770001460001440000010275350361705674000001300000000000TRAILER!!!ead->y = 12; head->next = NULL; display(head, HEAD); for (i = 0, bp = head; i < start_len; i++, bp = np) { np = newlink(); np->next = bp; bp->prev = np; np->x = bp->x - 1; np->y = bp->y; display(np, BODY); } tail = np; tail->prev = NULL; wrefresh(tv); } display(pos, chr) struct body *pos; char chr; { wmove(tv, pos->y, pos->x); waddch(tv, chr); } leave() { move(LINES - 1, 0); refresh(); endwin(); exit(0); } wake() { signal(SIGALRM, wake); fflush(stdout); process(lastch); } rnd(range) { return abs((rand()>>5)+(rand()>>5)) % range; } newpos(bp) struct body * bp; { do { bp->y = rnd(LINES-3)+ 2; bp->x = rnd(COLS-3) + 1; wmove(tv, bp->y, bp->x); } while(winch(tv) != ' '); } prize() { int value; value = rnd(9) + 1; newpos(&goody); waddch(tv, value+'0'); wrefresh(tv); } process(ch) char ch; { register int x,y; struct body *nh; static char headchar, dir; alarm(0); x = head->x; y = head->y; switch(ch) { when 'h': x--; dir=LEFT; when 'j': y++; dir=DOWN; when 'k': y--; dir=UP; when 'l': x++; dir=RIGHT; when 'H': x--; running = RUNLEN; ch = tolower(ch);dir=LEFT; when 'J': y++; running = RUNLEN/2; ch = tolower(ch);dir=DOWN; when 'K': y--; running = RUNLEN/2; ch = tolower(ch);dir=UP; when 'L': x++; running = RUNLEN; ch = tolower(ch);dir=RIGHT; when '\f': setup(); return; when CNTRL(Z): suspend(); return; when CNTRL(C): crash(); return; when CNTRL(D): crash(); return; otherwise: if (! running) alarm(1); return; } lastch = ch; if (growing == 0) { display(tail, ' '); tail->next->prev = NULL; nh = tail->next; free(tail); tail = nh; } else growing--; display(head, BODY); wmove(tv, y, x); if (isdigit(ch = winch(tv))) { growing += ch-'0'; prize(); score += growing; running = 0; wmove(stw, 0, 68); wprintw(stw, "Score: %3d", scor