Annotation of cci/d/io/init.x, revision 1.1.1.1

1.1       root        1: 
                      2: /*     init.s                                                          */
                      3: 
                      4: 
                      5: /*     This file is a diagnostic version of locore.s.                  */
                      6: /*     It contains the following:                                      */
                      7: /*     *system data area = scb, dump buffer, interrupt stack,          */
                      8: /*     *system page table,user page tables,pcbs,iomap, & io buffers.   */
                      9: /*                                                                     */
                     10: /*     *system code = interrupt vectors, initialization of system data,*/
                     11: /*     *memory size calculation,initialization of SPT, zeroing of      */
                     12: /*     *unused memory, & loading of SBR & SLR.                         */
                     13: /*     *                                                               */
                     14: /*     *at the end of this code, you are ready to go to virtual mode.  */
                     15: /*     * --- GOOD LUCK!                                                */
                     16: 
                     17: 
                     18: /*     privileged registers addresses  */
                     19: #include       "prvreg.h"
                     20:        
                     21: /*     program status long word definition     */
                     22: #include       "psl.h" 
                     23: 
                     24: /*     page table entry definition             */
                     25: #include       "pte.h"
                     26:        
                     27: /*     process control block offsets   */
                     28: #include       "pcboffset.h"   
                     29: 
                     30: /*     fundamental constants for globl use     */
                     31: #include       "const.h"       
                     32: 
                     33: /*     system control block offsets*/
                     34: #include       "scboffset.h"
                     35: /*     SPT offsets                             */
                     36: #include       "sptoffset.h"
                     37: 
                     38: /*     trap numbers*/
                     39: #include       "trap.h"        
                     40: 
                     41: 
                     42: #define V_TRAP         0
                     43: #define V_SYSCALL      4
                     44: 
                     45:        .set    HIGH,0x1f       /*mask for disabling all interrupts     */
                     46:        .set    MCKVEC,4        /*scb offset for machinecheck vector    */
                     47:        .set    NISP,2          /*no. of interrupt stack pages          */
                     48:        .set    DONE,255        /*user process done code                */
                     49: 
                     50:        .text
                     51: 
                     52: #include "pstorage.s"          /* PROCESSOR STORAGE AREA               */
                     53: 
                     54:        .globl  _Entry
                     55: _Entry:
                     56:        jmp     start
                     57:        .space  (1024-6)
                     58: 
                     59: 
                     60: 
                     61: /*             globl dump buffer to be used for communication          */
                     62: /*             between tests & interrupt handlers, & other misc.       */
                     63: /*             purposes.                                               */
                     64:                                
                     65:                                /*physical page 3                       */
                     66: 
                     67:        .set    NLWU,34         /*no. of longwords already used         */
                     68:                                /*this must be changed when you define  */
                     69:                                /*additional variables below before     */
                     70:                                /*_dbuf                                 */
                     71:        .globl  _restart
                     72: _restart:
                     73:        .space  4               /*contains restart address for restarting*/
                     74:                                /*after power is restored (loaded by    */
                     75:                                /*power fail interrupt handler & used by*/
                     76:                                /*CPU 2                                 */      
                     77:        .globl  _maxmem
                     78: _maxmem:
                     79:        .space  4               /*memory size in no of bytes            */
                     80: 
                     81:        .globl  _maxpages
                     82: _maxpages:
                     83:        .space  4               /*memory size in no. of physical pages  */
                     84: 
                     85:        .globl  _lastadd
                     86: _lastadd:
                     87:        .space  4               /*address of the last long word         */
                     88: 
                     89:        .globl  _unused
                     90: _unused:
                     91:        .space  4               /*first unused page in system space     */
                     92: 
                     93:        .globl  _ctlblk
                     94: _ctlblk:
                     95:        .long   0               /* pointer to SCB */
                     96: 
                     97:        .globl  _savvec0        /*save vectors area                     */
                     98: _savvec0:
                     99:        .space  4
                    100: 
                    101:        .globl  _savvec1        /*save vectors area                     */
                    102: _savvec1:
                    103:        .space  4
                    104: 
                    105:        .globl  _savvec2        /*save vectors area                     */
                    106: _savvec2:
                    107:        .space  4
                    108: 
                    109:        .globl  _savvec3        /*save vectors area                     */
                    110: _savvec3:
                    111:        .space  4
                    112: 
                    113:        .globl  _savvec4        /*save vectors area                     */
                    114: _savvec4:
                    115:        .space  4
                    116: 
                    117:        .globl  _savvec5        /*save vectors area                     */
                    118: _savvec5:
                    119:        .space  4
                    120:        .globl  _savvec6        /*save vectors area                     */
                    121: _savvec6:
                    122:        .space  4
                    123:        .globl  _savvec7        /*save vectors area                     */
                    124: _savvec7:
                    125:        .space  4
                    126: 
                    127:        .globl  _savvec8        /*save vectors area                     */
                    128: _savvec8:
                    129:        .space  4
                    130: 
                    131:        .globl  badrtn
                    132: badrtn:
                    133:        .long   tfail 
                    134: 
                    135: testno: .long  0
                    136: 
                    137:        .globl  _dbuf           /*dump buffer left out of 1K            */
                    138:        .globl  _r_no
                    139: _r_no:
                    140:        .long   0
                    141:        .globl  _pt_base
                    142: _pt_base:
                    143:        .long   0
                    144:        .globl  _saved_psl
                    145: _saved_psl:
                    146:        .long   0
                    147:        .globl  _saved_sp
                    148: _saved_sp:
                    149:        .long   0
                    150:        .globl  _saved_fp
                    151: _saved_fp:
                    152:        .long   0
                    153:        .globl  _p_ptr
                    154: _p_ptr:
                    155:        .long   0
                    156:        .globl  _ret_adr
                    157: _ret_adr:
                    158:        .long   0
                    159:        .globl  _exp_par0
                    160: _exp_par0:
                    161:        .long   0
                    162:        .globl  _exp_par1
                    163: _exp_par1:
                    164:        .long   0
                    165:        .globl  _exp_par2
                    166: _exp_par2:
                    167:        .long   0
                    168:        .globl  _exp_par3
                    169: _exp_par3:
                    170:        .long   0
                    171:        .globl  _act_par0
                    172: _act_par0:
                    173:        .long   0
                    174:        .globl  _act_par1
                    175: _act_par1:
                    176:        .long   0
                    177:        .globl  _act_par2
                    178: _act_par2:
                    179:        .long   0
                    180:        .globl  _act_par3
                    181: _act_par3:
                    182:        .long   0
                    183:        .globl  _test_no
                    184: _test_no:
                    185:        .long   0
                    186:        .globl  _clk_cnt
                    187: _clk_cnt:
                    188:        .long   0               /* Clock int. count */
                    189: _dbuf:
                    190:        .space  NBPG - (NLWU *4)
                    191: edbuf:
                    192: 
                    193: 
                    194:        .globl  _intstack       /* Interrupt stack                      */
                    195: _intstack:                     /* Physical pages 4 & 5                 */
                    196:        .space  NISP*NBPG
                    197: eintstack:
                    198: 
                    199: 
                    200:        .set    SYSPTSIZE,512   /* No. of entries in SPT                */
                    201:  
                    202: /*
                    203:        System Page Table -- physical page 6 & 7
                    204: */ 
                    205:        .align  2
                    206:        .globl  _Sysmap
                    207: _Sysmap:
                    208:        .space  SYSPTSIZE*4     /* 512 max pages allowed for system     */
                    209: eSysmap:
                    210:        .globl  _Syssize
                    211:        .set    _Syssize,(eSysmap-_Sysmap)/4    /* should be SYSPTSIZE  */
                    212:        
                    213:        .globl  _iomap          /* Physical page 8      */
                    214: _iomap:        .space  1024            /* IOMAP - unused       */
                    215:        .globl  _eiomap
                    216: _eiomap:
                    217: 
                    218:        .globl  _pcb0           /* Physical page 9      */
                    219: _pcb0: .space  128             /*process control block 0               */
                    220:        .globl  _pcb1
                    221: _pcb1: .space 128              /*process control block 1               */
                    222:        .globl  _pcb2
                    223: _pcb2: .space 128              /*process control block 2               */
                    224:        .globl  _pcb3
                    225: _pcb3: .space 128              /*process control block 3               */
                    226:        .globl  _pcb4
                    227: _pcb4: .space 128              /*process control block 4               */
                    228:        .globl  _pcb5
                    229: _pcb5: .space 128              /*process control block 5               */
                    230:        .globl  _pcb6
                    231: _pcb6: .space 128              /*process control block 6               */
                    232:        .globl  _pcb7
                    233: _pcb7: .space 128              /*process control block 7               */
                    234: 
                    235: /*
                    236:        *user #0 page tables -- P0PT, P1PT, P2PT                        
                    237:        *physical memory     --  page10, 11, & 12  respectively
                    238: */
                    239:        .align  2
                    240:        .globl  _u0p0pt
                    241: _u0p0pt:
                    242:        .space  1024            /*255 max pages for user #0 text        */
                    243:        .globl  _u0p1pt
                    244: _u0p1pt:       
                    245:        .space  1024            /*255 max pages for user #0 data        */
                    246:        .globl  _u0p2pt
                    247: _u0p2pt:       
                    248:        .space  1020            /*255 max pages for user #0 stack       */
                    249: eu0p2pt:
                    250:        .space  4
                    251: 
                    252: /*
                    253:        *user #1 page tables -- P0PT, P1PT, P2PT                        
                    254:        *physical memory     --  page13 ,14, & 15  respectively
                    255: */
                    256:        .align  2
                    257:        .globl  _u1p0pt
                    258: _u1p0pt:
                    259:        .space  1024            /*255 max pages for user #1 text        */
                    260:        .globl  _u1p1pt
                    261: _u1p1pt:       
                    262:        .space  1024            /*255 max pages for user #1 data        */
                    263:        .globl  _u1p2pt
                    264: _u1p2pt:       
                    265:        .space  1020            /*255 max pages for user #1 stack       */
                    266: eu1p2pt:
                    267:        .space  4
                    268: 
                    269: 
                    270: /*
                    271:        *user #2 page tables -- P0PT, P1PT, P2PT                        
                    272:        *physical memory     --  page 16, 17 , & 18  respectively
                    273: */
                    274:        .align  2
                    275:        .globl  _u2p0pt
                    276: _u2p0pt:
                    277:        .space  1024            /*255 max pages for user #2 text        */
                    278:        .globl  _u2p1pt
                    279: _u2p1pt:       
                    280:        .space  1024            /*255 max pages for user #2 data        */
                    281:        .globl  _u2p2pt
                    282: _u2p2pt:       
                    283:        .space  1020            /*255 max pages for user #2 stack       */
                    284: eu2p2pt:
                    285:        .space  4
                    286: 
                    287: 
                    288: /*
                    289:        *user #3 page tables -- P0PT, P1PT, P2PT                        
                    290:        *physical memory     --  page 19, 20 , & 21  respectively
                    291: */
                    292:        .align  2
                    293:        .globl  _u3p0pt
                    294: _u3p0pt:
                    295:        .space  1024            /*255 max pages for user #3 text        */
                    296:        .globl  _u3p1pt
                    297: _u3p1pt:       
                    298:        .space  1024            /*255 max pages for user #3 data        */
                    299:        .globl  _u3p2pt
                    300: _u3p2pt:       
                    301:        .space  1020            /*255 max pages for user #3 stack       */
                    302: eu3p2pt:
                    303:        .space  4
                    304: 
                    305: /*
                    306:        *user #4 thru 6 page tables
                    307:        *physical memory -- pages 22 thru 30
                    308: */
                    309:        .globl  _u4p0pt
                    310: _u4p0pt:
                    311:        .space  (9*NBPG) - 4
                    312: eu6p2pt:
                    313:        .space  4
                    314: 
                    315: /*
                    316:        *user #7 page tables -- P0PT, P1PT, P2PT                        
                    317:        *physical memory     --  page 31, 32 , & 33  respectively
                    318: */
                    319:        .align  2
                    320:        .globl  _u7p0pt
                    321: _u7p0pt:
                    322:        .space  1024            /*255 max pages for user #7 text        */
                    323:        .globl  _u7p1pt
                    324: _u7p1pt:       
                    325:        .space  1024            /*255 max pages for user #7 data        */
                    326:        .globl  _u7p2pt
                    327: _u7p2pt:       
                    328:        .space  1020            /*255 max pages for user #7 stack       */
                    329: eu7p2pt:
                    330:        .space  4
                    331: 
                    332:        .globl  _iob0           /*io buffer 0 */
                    333: _iob0: .space  1024
                    334:        .globl  _iob1           /*io buffer 1 */
                    335: _iob1: .space  1024
                    336:        .globl  _iob2           /*io buffer 2 */
                    337: _iob2: .space  1024
                    338:        .globl  _iob3           /*io buffer 3 */
                    339: _iob3: .space  1024
                    340:        .globl  _iob4           /*io buffer 4 */
                    341: _iob4: .space  1024
                    342:        .globl  _iob5           /*io buffer 5 */
                    343: _iob5: .space  1024
                    344:        .globl  _iob6           /*io buffer 6 */
                    345: _iob6: .space  1024
                    346: esysdata:
                    347: 
                    348: #include "scblock.s"           /* SYSTEM CONTROL BLOCK                 */
                    349: 
                    350: 
                    351: #include       "evthandlers.s" /*event handlers                        */
                    352: 
                    353: #define        ACBL(_n1,_n2,_n3,_n4) \
                    354: addl2  _n2,_n3;\
                    355: cmpl   _n3,_n1;\
                    356: bleq   _n4;
                    357: 
                    358: 
                    359: 
                    360: /*
                    361:        *INITIALIZATION CODE
                    362:        *
                    363:        * MME off; mode = k; IPL = 31; IS = 1
                    364:        *
                    365: */
                    366: 
                    367:        .globl  start
                    368: start:
                    369:        mtpr    $0,$MME         /* Disable MME */
                    370:        andl3   $0x3ffffc00,$_scb,r0
                    371:        mtpr    r0,$SCBB        /* Set SCBB  */
                    372:        mtpr    $0x1f,$IPL      /* Set IPL to HIGH */
                    373: 
                    374:        movpsl  r1
                    375:        andl2   $0xffffff00,r1          /* Mask out flags               */
                    376:        cmpl    r1,$0x041f0000          /*IS on,modes =k & IPL = 31?    */
                    377:        beql    1f
                    378: 2:     movl    $1,r0
                    379:        movl    $0x041f0000,r2
                    380:        halt                    /* PSL not initialized as expected      */
                    381: /*
                    382: #      Mask out bit 30,31 of SCB vectors
                    383: #      Will turm them back on when ready to go virtual in 
                    384: #      system space
                    385: */
                    386: 1:
                    387:        clrl    _clk_cnt
                    388:        clrl    _bell
                    389:        movl    $7,r0           /* R0 : Vector no. of clock int. */
                    390:        movab   _Hardclk,_scb[r0]       /* New vector for clock */
                    391:        movl    $NBPG/4,r1              /* One page for SCB */
                    392:        movab   _scb,r0
                    393:        andl2   $0x3ffffc00,r0
                    394: 1:     andl2   $0x3fffffff,(r0)
                    395:        addl2   $4,r0
                    396:        decl    r1                      /* Last one yet ? */
                    397:        bneq    1b
                    398: 
                    399:        movl    $_intstack+NISP*NBPG,r0
                    400:        andl2   $0x3fffffff,r0          /* Mask out bit 30,31 */
                    401:        mtpr    r0,$ISP                 /* init. ISP            */
                    402:        movl    r0,sp                   /* in case we get exception     */
                    403:        movab   (sp),fp                 /* Initialize FP                */
                    404: /*
                    405:        Clear system data area all the way upto system code
                    406:        this includes dump buffer,interrupt stack,spt,iomap,pcbs,user 
                    407:        page tables, & io buffer area.
                    408: */
                    409: 3:     
                    410:        movab   esysdata,r7
                    411:        movab   _restart,r6
                    412: 1:     clrl    (r6)
                    413:        ACBL(r7,$4,r6,1b)
                    414: /*
                    415:        Initialize System Page Table
                    416: */
                    417: 5:
                    418:        clrl    r2
                    419:        movab   esysdata,r1     /* R1 = Last address in system data area */
                    420:        andl2   $0x3fffffff,r1  /* Mask out bit 30,31   */
                    421:        shar    $PGSHIFT,r1,r1  /* Get page no. of last system data addr  */
                    422:                                /* Map systm data area 1 to 1,kernel writable */
                    423: 1:
                    424:        movl    r2,r11          /* Donot want to use orl3 */
                    425:        orl2    $PG_V|PG_KW,r11
                    426:        orl2    r11,_Sysmap[r2]
                    427:        aoblss  r1,r2,1b
                    428: /*
                    429:        Map system text area 1 to 1, Kernel read/write.
                    430:        For this to work, the label _etext must exist at the end 
                    431:        of system code; 
                    432: */
                    433:        movab   _end,r1                 /* Map text+data 1 to 1; Kernel R/W */
                    434:        addl2   $66*(NBPG),r1           /* Some memory for power fail test */
                    435:        andl2   $0x3fffffff,r1
                    436:        shar    $PGSHIFT,r1,r1
                    437: 1:
                    438:        movl    r2,r11
                    439:        orl2    $PG_V|PG_KW,r11         /* Kernel Read/Write */
                    440:        orl2    r11,_Sysmap[r2]
                    441:        aoblss  r1,r2,1b
                    442: /*
                    443:        Map from here (1st unused page) to page 512 :
                    444:           * invalid,no access, & virtual = physical
                    445: */
                    446:        movl    r2,_unused      /* Save first unused physical page no   */
                    447:        movl    $LSP+1,r1
                    448: 1:     movl    r2,_Sysmap[r2]
                    449:        aoblss  r1,r2,1b
                    450: 
                    451: /*
                    452:        Initialize SBR, SLR
                    453:  *Following are some useful addresses for user 0 (in case you want
                    454:  *to start user 0:
                    455:  *
                    456:  *     p0br = $_u0p0pt (limit = 256 max)
                    457:  *     p1br = $_u0p1pt ( same limit)
                    458:  *     p2br = $0xbfc02c00 (funny)
                    459:  *     p2lr = $0x000ffff0 (funny)
                    460:  *
                    461:  *for other users, add NBPG*3 to above except for p2 area
                    462:  *
                    463:  *     u0_user_sp = 0xbffffbfc
                    464:  *     u0_k_sp    = 0xbfffe3fc
                    465:  *     u0_s_sp    = 0xbfffcbfc
                    466:  *     u0_e_sp    = 0xbfffcbfc
                    467:  *
                    468: */
                    469: 
                    470: sysrdy:
                    471:        mtpr    $_Sysmap,$SBR           /* Set SYSTEM BASE REG */
                    472:        mtpr    $_Syssize,$SLR
                    473: 
                    474:        .globl  _ready
                    475: _ready:
                    476:        mtpr    $64,$DCR        /* Enable fault */                              
                    477: 
                    478: /*             GO TO VIRTUAL MODE
                    479:        Double map the kernel into user addresses : 
                    480:        This will enable system to go to virtual mode the 1st time !!
                    481: */
                    482: 
                    483:        mtpr    $_Sysmap,$SBR      /* Set SYSTEM BASE REG */
                    484:        mtpr    $_Syssize,$SLR
                    485:        mtpr    $_Sysmap,$P0BR
                    486:        mtpr    $_Syssize,$P0LR
                    487:        mtpr    $1,$TBIA
                    488:        mtpr    $1,$PADC
                    489:        mtpr    $1,$MME
                    490:        jmp     *$vmode
                    491: vmode:
                    492:        movl    $_intstack+NISP*NBPG,r0
                    493:        mtpr    r0,$ISP                 /* init. ISP,sp to virtual address */
                    494:        movl    r0,sp
                    495: 
                    496:        andl3   $_pcb0,$0x3fffffff,r0
                    497:        mtpr    r0,$0xe         /* Set PCBB */
                    498: 
                    499: #
                    500: #      Set up vectors for power fail/restart
                    501: #
                    502:        movl    $PFVEC,r0               /* R0 : Vector no. of p_fail int. */
                    503:        movab   _Pwfail,_scb[r0]
                    504:        movl    $PRVEC,r0               /* R0 : Vector no. of p_restart int. */
                    505:        movab   _Pwrest,_scb[r0]
                    506: 
                    507:        pushl   $cmsg0
                    508:        callf   $8,_writes              /* Print test heading */
                    509: #
                    510: #      Set up before power fails
                    511: #
                    512:        movl    $0xcafebabe,_memflg     /* Set memory flag */
                    513:        clrl    _pfint                  /* Clear power fail interrupt flag */
                    514:        mfpr    $SBR,_sbr
                    515:        mfpr    $SLR,_slr
                    516:        mfpr    $P0BR,_p0br
                    517:        mfpr    $P0LR,_p0lr
                    518:        mtpr    $TP1BR,$P1BR
                    519:        mfpr    $P1BR,_p1br
                    520:        mtpr    $TP2LR,$P2LR
                    521:        mfpr    $P2LR,_p2lr
                    522:        mfpr    $IPL,_ipl
                    523:        mfpr    $MME,_mme
                    524:        mfpr    $0xe,_Pcbb
                    525:        mfpr    $ISP,_Isp
                    526:        
                    527:        mtpr    $7,$0x10                /* Request soft int. 7 */
                    528:        mfpr    $SISR,_Sisr
                    529:        mfpr    $SCBB,_scbb
                    530:        mtpr    $TKSP,$KSP
                    531:        mfpr    $KSP,_ksp
                    532: #
                    533: #      write pattern to memory
                    534: #      To be checked when power restored
                    535: #
                    536:        movab   _end,r0
                    537:        addl2   $NBPG,r0                /* 1 page beyond end of program */
                    538:        andl2   $0xfffffc00,r0          /* Begin address of this page */
                    539:        movl    r0,_baddr               /* save this address */
                    540:        pushl   r0
                    541:        callf   $8,_pfsetup
                    542: #
                    543: #      Write message to turn off power
                    544: #
                    545:        pushl   $cmsg1
                    546:        callf   $8,_writes
                    547:        mtpr    $10,$IPL        /* allow clock interrupt */
                    548: 
                    549: 1:     jmp     2f              /* Waiting for power to go down */
                    550: 2:     jmp     1b
                    551: 
                    552:        .globl  passed
                    553: passed:
                    554:        halt
                    555: tfail:                                 /* enter here when test fail */
                    556:        movl    $0xffffffff,r13
                    557:        halt
                    558: #
                    559: #      *****************
                    560: #      Powerfail handler
                    561: #      *****************
                    562: #
                    563:        .align  2
                    564:        .globl  _Pwfail
                    565: _Pwfail:
                    566:        incl    _pfint
                    567:        svpctx
                    568: 1:     incl    _pfcnt          /* See how long TAHOE can count before stop */
                    569:        jmp     1b
                    570:        halt
                    571: #
                    572: #      *********************
                    573: #      Power restart handler
                    574: #      *********************
                    575: #
                    576:        .align  2
                    577:        .globl  _Pwrest
                    578: _Pwrest:
                    579:        pushl   _baddr
                    580:        callf   $8,_prest
                    581:        halt
                    582: #
                    583: #      *****************
                    584: #      Hardclock handler
                    585: #      *****************
                    586: #
                    587:        .align  2
                    588:        .globl  _Hardclk
                    589: _Hardclk:
                    590:        incl    _clk_cnt
                    591:        incl    _bell
                    592:        cmpl    _bell,$0x50     /* Ring bell every 10 sec. */
                    593:        jneq    1f
                    594:        pushl   $0x7
                    595:        callf   $8,_writec      /* Ring bell */
                    596:        clrl    _bell
                    597: 1:
                    598:        rei
                    599: #
                    600: #      Message area
                    601: #
                    602:        .data   1
                    603: cmsg0:
                    604:        .ascii  "\n\tThis is the Power fail/restart interrupt test.\12\0"
                    605: cmsg1:
                    606:        .ascii  "** Unplug power !!!!\12\0"
                    607: cmsg2:
                    608:        .ascii  "\n** Power restarted...\12\0"
                    609:        
                    610:        .align  2
                    611: _bell: .long   0
                    612: #
                    613: #
                    614: #      
                    615:        .globl  _memflg
                    616: _memflg:
                    617:        .long   0
                    618: 
                    619:        .globl  _pfint
                    620: _pfint: .long  0
                    621:        
                    622:        .globl  _pfcnt
                    623: _pfcnt:        .long   0
                    624: 
                    625:        .globl  _baddr
                    626: _baddr:        .long   0
                    627: #
                    628: #      Area to save the privilege registers
                    629: #
                    630:        .globl  _sbr
                    631: _sbr:  .long   0
                    632:        .globl  _slr
                    633: _slr:  .long   0
                    634: 
                    635:        .set    TP0BR,0x100
                    636:        .set    TP0LR,0x200
                    637:        .set    TP1BR,0x300
                    638:        .set    TP1LR,0x400
                    639:        .set    TP2BR,0x500
                    640:        .set    TP2LR,0x600
                    641:        .set    TKSP,0x700
                    642: 
                    643:        .globl  _p0br
                    644: _p0br: .long   0
                    645:        .globl  _p0lr
                    646: _p0lr: .long   0
                    647:        
                    648:        .globl  _p1br
                    649: _p1br: .long   0
                    650:        .globl  _p1lr
                    651: _p1lr: .long   0
                    652: 
                    653:        .globl  _p2br
                    654: _p2br: .long   0
                    655:        .globl  _p2lr
                    656: _p2lr: .long   0
                    657: 
                    658:        .globl  _ipl
                    659: _ipl:  .long   0
                    660: 
                    661:        .globl  _mme
                    662: _mme:  .long   0xf
                    663: 
                    664:        .globl  _Pcbb
                    665: _Pcbb: .long   0
                    666: 
                    667:        .globl  _Isp
                    668: _Isp:  .long   0
                    669: 
                    670:        .globl  _Sisr
                    671: _Sisr: .long   0
                    672: 
                    673:        .globl  _scbb
                    674: _scbb: .long   0
                    675: 
                    676:        .globl  _ksp
                    677: _ksp:  .long   0
                    678: 

unix.superglobalmegacorp.com

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