Annotation of researchv10dc/630/src/pcbs.c, revision 1.1

1.1     ! root        1: #define PCBSZ  20
        !             2: #define STKSZ  100
        !             3: #define MSTK    1024
        !             4: #define ISTKSZ 64
        !             5: #define RESETSZ 256
        !             6: #define EXCEP_TAB_SIZE 32
        !             7: #define EXCEP_PSW  0x281e100
        !             8: 
        !             9: extern int excep_norm(); /* exception handlers */
        !            10: extern int excep_proc();
        !            11: extern int excep_stack();
        !            12: extern int excep_int();
        !            13: 
        !            14: 
        !            15: extern int _start,key_int,host_int,out_int,msvid_int,pioh_int,piol_int;
        !            16: int istack[ISTKSZ];            /* interrupt stack */
        !            17: int ststk[RESETSZ];            /* reset exception stack */
        !            18: int procstk[STKSZ];            /* process exception stack */
        !            19: int stackstk[STKSZ];           /* stack exception stack */
        !            20: int hoststk[STKSZ];            /* host input handler stack */
        !            21: int outstk[STKSZ];             /* host output handler stack */
        !            22: int piohstk[STKSZ];            /* pioh stack */
        !            23: int keystk[STKSZ];             /* keyboard interrupt handler stack */
        !            24: int msvidstk[STKSZ];           /* mouse-video interrupt stack */
        !            25: int piolstk[STKSZ];            /* piol stack */
        !            26: int strstk[STKSZ];             /* stray interrupt handler stack */
        !            27: int mainstk[MSTK];             /* stack for user program */
        !            28:                                /* 4K bytes is default.  User .text, .data and */
        !            29:                                /* .bss follow this, so if it is reduced, it */
        !            30:                                /* will leave more room for user sections - */
        !            31:                                /* just change definition of MSTK and rebuild */
        !            32:                                /* jpcbs.c */
        !            33: 
        !            34: /* bss, gets loaded after the following .data stuff */
        !            35: 
        !            36: int proc_pcb[PCBSZ]={  /* process exceptions and interrupt exceptions */
        !            37:        0x281e180,
        !            38:        (int)excep_proc,
        !            39:        (int)procstk,
        !            40:        0x281e100,
        !            41:        (int)excep_proc,
        !            42:        (int)procstk,
        !            43:        (int)procstk,
        !            44:        (int)&procstk[STKSZ-1],
        !            45:        0,0,0,0, 0,0,0,0, 0,0,0,0,
        !            46: };
        !            47: int stack_pcb[PCBSZ]={ /* stack exceptions */
        !            48:        0x281e180,
        !            49:        (int)excep_stack,
        !            50:        (int)stackstk,
        !            51:        0x281e100,
        !            52:        (int)excep_stack,
        !            53:        (int)stackstk,
        !            54:        (int)stackstk,
        !            55:        (int)&stackstk[STKSZ-1],
        !            56:        0,0,0,0, 0,0,0,0, 0,0,0,0,
        !            57: };
        !            58: int host_pcb[PCBSZ]={  /* RS-232 input interrupts */
        !            59:        0x281e180,
        !            60:        (int)&host_int,
        !            61:        (int)hoststk,
        !            62:        0x281e100,
        !            63:        (int)&host_int,
        !            64:        (int)hoststk,
        !            65:        (int)hoststk,
        !            66:        (int)&hoststk[STKSZ-1],
        !            67:        0,0,0,0, 0,0,0,0, 0,0,0, 0,
        !            68: };
        !            69: int out_pcb[PCBSZ]={   /* RS-232 output interrupts */
        !            70:        0x281e180,
        !            71:        (int)&out_int,
        !            72:        (int)outstk,
        !            73:        0x281e100,
        !            74:        (int)&out_int,
        !            75:        (int)outstk,
        !            76:        (int)outstk,
        !            77:        (int)&outstk[STKSZ-1],
        !            78:        0,0,0,0, 0,0,0,0, 0,0,0, 0,
        !            79: };
        !            80: int pioh_pcb[PCBSZ]={  /* parallel interface, high priority */
        !            81:        0x281e180,
        !            82:        (int)&pioh_int,
        !            83:        (int)piohstk,
        !            84:        0x281e100,
        !            85:        (int)&pioh_int,
        !            86:        (int)piohstk,
        !            87:        (int)piohstk,
        !            88:        (int)&piohstk[STKSZ-1],
        !            89:        0,0,0,0, 0,0,0,0, 0,0,0,0,
        !            90: };
        !            91: int key_pcb[PCBSZ]={   /* keyboard interrupts */
        !            92:        0x281e180,
        !            93:        (int)&key_int,
        !            94:        (int)keystk,
        !            95:        0x281e100,
        !            96:        (int)&key_int,
        !            97:        (int)keystk,
        !            98:        (int)keystk,
        !            99:        (int)&keystk[STKSZ-1],
        !           100:        0,0,0,0, 0,0,0,0, 0,0,0, 0,
        !           101: };
        !           102: int msvid_pcb[PCBSZ]={ /* mouse buttons and 60Hz vertical retrace */
        !           103:        0x281c180,
        !           104:        (int)&msvid_int,
        !           105:        (int)msvidstk,
        !           106:        0x281c100,
        !           107:        (int)&msvid_int,
        !           108:        (int)msvidstk,
        !           109:        (int)msvidstk,
        !           110:        (int)&msvidstk[STKSZ-1],
        !           111:        0,0,0,0, 0,0,0,0, 0,0,0, 0,
        !           112: };
        !           113: int piol_pcb[PCBSZ]={  /* parallel interface, low priority */
        !           114:        0x281e180,
        !           115:        (int)&piol_int,
        !           116:        (int)piolstk,
        !           117:        0x281e100,
        !           118:        (int)&piol_int,
        !           119:        (int)piolstk,
        !           120:        (int)piolstk,
        !           121:        (int)&piolstk[STKSZ-1],
        !           122:        0,0,0,0, 0,0,0,0, 0,0,0,0,
        !           123: };
        !           124: int int_pcb[PCBSZ]={   /* stray interrupts */
        !           125:        0x281e180,
        !           126:        (int)excep_int,
        !           127:        (int)strstk,
        !           128:        0x281e100,
        !           129:        (int)excep_int,
        !           130:        (int)strstk,
        !           131:        (int)strstk,
        !           132:        (int)&strstk[STKSZ-1],
        !           133:        0,0,0,0, 0,0,0,0, 0,0,0,0,
        !           134: };
        !           135: int excep_tab[EXCEP_TAB_SIZE] = {      /* This could be done just as  */
        !           136:                        /* copies to save rom space exceptab[2] and mult   */
        !           137:        EXCEP_PSW,(int)excep_norm, EXCEP_PSW, (int)excep_norm,
        !           138:        EXCEP_PSW,(int)excep_norm, EXCEP_PSW, (int)excep_norm,
        !           139:        EXCEP_PSW,(int)excep_norm, EXCEP_PSW, (int)excep_norm,
        !           140:        EXCEP_PSW,(int)excep_norm, EXCEP_PSW, (int)excep_norm,
        !           141:        EXCEP_PSW,(int)excep_norm, EXCEP_PSW, (int)excep_norm,
        !           142:        EXCEP_PSW,(int)excep_norm, EXCEP_PSW, (int)excep_norm,
        !           143:        EXCEP_PSW,(int)excep_norm, EXCEP_PSW, (int)excep_norm,
        !           144:        EXCEP_PSW,(int)excep_norm, EXCEP_PSW, (int)excep_norm
        !           145:                  };
        !           146: int main_pcb[PCBSZ]={  /* muxterm itself (short-lived) */
        !           147:        0x281e180,
        !           148:        (int)&_start,
        !           149:        (int)mainstk,
        !           150:        0x281e100,
        !           151:        (int)&_start,
        !           152:        (int)mainstk,
        !           153:        (int)mainstk,
        !           154:        (int)&mainstk[MSTK-1],
        !           155:        0,0,0,0, 0,0,0,0, 0,0,0,0,
        !           156: };

unix.superglobalmegacorp.com

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