Annotation of researchv9/jtools/src/demo/pacman/sounds.c, revision 1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.