Annotation of researchv10dc/630/src/pcbs.c, revision 1.1.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.