|
|
1.1 ! root 1: /*----------------------------------------------------------------------*/ ! 2: /* */ ! 3: /* PACMAN for BBN BitGraphs */ ! 4: /* */ ! 5: /* File: */ ! 6: /* Contents: */ ! 7: /* Author: Bob Brown (rlb) */ ! 8: /* Purdue CS */ ! 9: /* Date: May, 1982 */ ! 10: /* Description: */ ! 11: /* */ ! 12: /* */ ! 13: /* */ ! 14: /*----------------------------------------------------------------------*/ ! 15: ! 16: #include "style.h" ! 17: #include "pacman.h" ! 18: ! 19: /* ! 20: #define IOADDR(n) ((char *) (384*1024L+(n<<6)+056)) ! 21: char *rport = IOADDR(2); ! 22: char *reg = IOADDR(0); ! 23: char *wport = IOADDR(1); ! 24: */ ! 25: ! 26: int tonegen(), snd_dot(); ! 27: ! 28: int ! 29: sounddot() ! 30: { ! 31: if ( Silent ) return; ! 32: snd_dot(NULL,0); ! 33: } ! 34: int ! 35: snd_dot(junk,part) ! 36: char *junk; ! 37: int part; ! 38: { ! 39: switch(part){ ! 40: case 0: ! 41: tonegen(1,1200,12); ! 42: eladd(SNDDOTDELAY,snd_dot,NULL,1); ! 43: break; ! 44: case 1: ! 45: tonegen(1,1000,15); ! 46: eladd(SNDDOTDELAY,snd_dot,NULL,2); ! 47: break; ! 48: case 2: ! 49: tonegen(1,0); ! 50: } ! 51: } ! 52: /* ! 53: ** This is the sound when a monster is killed ! 54: */ ! 55: #define KILLFROM 200 ! 56: #define KILLTO 50 ! 57: ! 58: soundkill() ! 59: { ! 60: tonegen(1,KILLFROM,13); ! 61: psgsweep(0,KILLFROM,KILLTO,5); ! 62: tonegen(1,0,0); ! 63: } ! 64: psgsweep(t,f1,f2,v) ! 65: { ! 66: int i,f; ! 67: i = (f1 > f2) ? -1 : 1; ! 68: for (f = f1; f != f2; f += i) { ! 69: tonegen(t+1,f,v); ! 70: sleep(1); ! 71: } ! 72: } ! 73: int ! 74: tonegen(t,p,v) ! 75: register t,p,v; ! 76: { ! 77: /* ! 78: char enable = 077; ! 79: if ( p > 0 ) { ! 80: enable &= ~(1<<(t-1)); ! 81: psgwrite(p&0xff,(t-1)*2); ! 82: psgwrite((p>>8),t*2-1); ! 83: psgwrite(v,7+t); ! 84: psgwrite(enable,7); ! 85: } else ! 86: psgwrite(0,7+t); ! 87: */ ! 88: } ! 89: /* ! 90: psgwrite(i,n) ! 91: { ! 92: *reg = n; ! 93: *wport = i; ! 94: } ! 95: ! 96: psgread(n) ! 97: { ! 98: register i; ! 99: *reg = n; ! 100: i = *rport; ! 101: return (i&0377); ! 102: } ! 103: */ ! 104: soundoff() ! 105: { ! 106: /* ! 107: psgwrite(0,8); ! 108: psgwrite(0,9); ! 109: psgwrite(0,10); ! 110: */ ! 111: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.