Annotation of cci/d/mem/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: 
                     62: /*             globl dump buffer to be used for communication          */
                     63: /*             between tests & interrupt handlers, & other misc.       */
                     64: /*             purposes.                                               */
                     65:                                
                     66:                                /*physical page 3                       */
                     67: 
                     68:        .set    NLWU,41         /*no. of longwords already used         */
                     69:                                /*this must be changed when you define  */
                     70:                                /*additional variables below before     */
                     71:                                /*_dbuf                                 */
                     72:        .globl  _restart
                     73: _restart:
                     74:        .space  4               /*contains restart address for restarting*/
                     75:                                /*after power is restored (loaded by    */
                     76:                                /*power fail interrupt handler & used by*/
                     77:                                /*CPU 2                                 */      
                     78:        .globl  _maxmem
                     79: _maxmem:
                     80:        .space  4               /*memory size in no of bytes            */
                     81: 
                     82:        .globl  _maxpages
                     83: _maxpages:
                     84:        .space  4               /*memory size in no. of physical pages  */
                     85: 
                     86:        .globl  _lastadd
                     87: _lastadd:
                     88:        .space  4               /*address of the last long word         */
                     89: 
                     90:        .globl  _unused
                     91: _unused:
                     92:        .space  4               /*first unused page in system space     */
                     93: 
                     94:        .globl  _ctlblk
                     95: _ctlblk:
                     96:        .long   0               /* pointer to SCB */
                     97: 
                     98:        .globl  _savvec0        /*save vectors area                     */
                     99: _savvec0:
                    100:        .space  4
                    101: 
                    102:        .globl  _savvec1        /*save vectors area                     */
                    103: _savvec1:
                    104:        .space  4
                    105: 
                    106:        .globl  _savvec2        /*save vectors area                     */
                    107: _savvec2:
                    108:        .space  4
                    109: 
                    110:        .globl  _savvec3        /*save vectors area                     */
                    111: _savvec3:
                    112:        .space  4
                    113: 
                    114:        .globl  _savvec4        /*save vectors area                     */
                    115: _savvec4:
                    116:        .space  4
                    117: 
                    118:        .globl  _savvec5        /*save vectors area                     */
                    119: _savvec5:
                    120:        .space  4
                    121:        .globl  _savvec6        /*save vectors area                     */
                    122: _savvec6:
                    123:        .space  4
                    124:        .globl  _savvec7        /*save vectors area                     */
                    125: _savvec7:
                    126:        .space  4
                    127: 
                    128:        .globl  _savvec8        /*save vectors area                     */
                    129: _savvec8:
                    130:        .space  4
                    131: 
                    132:        .globl  badrtn
                    133: badrtn:
                    134:        .long   0 
                    135: 
                    136:        .long   0
                    137: 
                    138:        .globl  _dbuf           /*dump buffer left out of 1K            */
                    139:        .globl  _r_no
                    140: _r_no:
                    141:        .long   0
                    142:        .globl  _pt_base
                    143: _pt_base:
                    144:        .long   0
                    145:        .globl  _saved_psl
                    146: _saved_psl:
                    147:        .long   0
                    148:        .globl  _saved_sp
                    149: _saved_sp:
                    150:        .long   0
                    151:        .globl  _saved_fp
                    152: _saved_fp:
                    153:        .long   0
                    154:        .globl  _p_ptr
                    155: _p_ptr:
                    156:        .long   0
                    157:        .globl  _ret_adr
                    158: _ret_adr:
                    159:        .long   0
                    160:        .globl  _exp_par0
                    161: _exp_par0:
                    162:        .long   0
                    163:        .globl  _exp_par1
                    164: _exp_par1:
                    165:        .long   0
                    166:        .globl  _exp_par2
                    167: _exp_par2:
                    168:        .long   0
                    169:        .globl  _exp_par3
                    170: _exp_par3:
                    171:        .long   0
                    172:        .globl  _act_par0
                    173: _act_par0:
                    174:        .long   0
                    175:        .globl  _act_par1
                    176: _act_par1:
                    177:        .long   0
                    178:        .globl  _act_par2
                    179: _act_par2:
                    180:        .long   0
                    181:        .globl  _act_par3
                    182: _act_par3:
                    183:        .long   0
                    184:        .long   0
                    185:        .globl  _clk_cnt
                    186: _clk_cnt:
                    187:        .long   0               /* Clock int. count */
                    188:        .globl  _loop_flg
                    189: _loop_flg:
                    190:        .long   0
                    191:        .globl  _errcnt
                    192: _errcnt:
                    193:        .long   0
                    194:        .globl  _cycle
                    195: _cycle:
                    196:        .long   0
                    197:        .globl  _hlt_flg
                    198: _hlt_flg:
                    199:        .long   0
                    200:        .long   0
                    201:        .globl  _endprog
                    202: _endprog:
                    203:        .long   0
                    204:        .globl  _nonstop
                    205: _nonstop:
                    206:        .long   0
                    207: _dbuf:
                    208:        .space  NBPG - (NLWU *4)
                    209: edbuf:
                    210: 
                    211: 
                    212:        .globl  _intstack       /* Interrupt stack                      */
                    213: _intstack:                     /* Physical pages 4 & 5                 */
                    214:        .space  NISP*NBPG
                    215: eintstack:
                    216: 
                    217: 
                    218:        .set    SYSPTSIZE,512   /* No. of entries in SPT                */
                    219:  
                    220: /*
                    221:        System Page Table -- physical page 6 & 7
                    222: */ 
                    223:        .align  2
                    224:        .globl  _Sysmap
                    225: _Sysmap:
                    226:        .space  SYSPTSIZE*4     /* 512 max pages allowed for system     */
                    227: eSysmap:
                    228:        .globl  _Syssize
                    229:        .set    _Syssize,(eSysmap-_Sysmap)/4    /* should be SYSPTSIZE  */
                    230:        
                    231:        .globl  _iomap          /* Physical page 8      */
                    232: _iomap:        .space  1024            /* IOMAP - unused       */
                    233:        .globl  _eiomap
                    234: _eiomap:
                    235: 
                    236:        .globl  _pcb0           /* Physical page 9      */
                    237: _pcb0: .space  128             /*process control block 0               */
                    238:        .globl  _pcb1
                    239: _pcb1: .space 128              /*process control block 1               */
                    240:        .globl  _pcb2
                    241: _pcb2: .space 128              /*process control block 2               */
                    242:        .globl  _pcb3
                    243: _pcb3: .space 128              /*process control block 3               */
                    244:        .globl  _pcb4
                    245: _pcb4: .space 128              /*process control block 4               */
                    246:        .globl  _pcb5
                    247: _pcb5: .space 128              /*process control block 5               */
                    248:        .globl  _pcb6
                    249: _pcb6: .space 128              /*process control block 6               */
                    250:        .globl  _pcb7
                    251: _pcb7: .space 128              /*process control block 7               */
                    252: 
                    253: /*
                    254:        *user #0 page tables -- P0PT, P1PT, P2PT                        
                    255:        *physical memory     --  page10, 11, & 12  respectively
                    256: */
                    257:        .align  2
                    258:        .globl  _u0p0pt
                    259: _u0p0pt:
                    260:        .space  1024            /*255 max pages for user #0 text        */
                    261:        .globl  _u0p1pt
                    262: _u0p1pt:       
                    263:        .space  1024            /*255 max pages for user #0 data        */
                    264:        .globl  _u0p2pt
                    265: _u0p2pt:       
                    266:        .space  1020            /*255 max pages for user #0 stack       */
                    267: eu0p2pt:
                    268:        .space  4
                    269: 
                    270: /*
                    271:        *user #1 page tables -- P0PT, P1PT, P2PT                        
                    272:        *physical memory     --  page13 ,14, & 15  respectively
                    273: */
                    274:        .align  2
                    275:        .globl  _u1p0pt
                    276: _u1p0pt:
                    277:        .space  1024            /*255 max pages for user #1 text        */
                    278:        .globl  _u1p1pt
                    279: _u1p1pt:       
                    280:        .space  1024            /*255 max pages for user #1 data        */
                    281:        .globl  _u1p2pt
                    282: _u1p2pt:       
                    283:        .space  1020            /*255 max pages for user #1 stack       */
                    284: eu1p2pt:
                    285:        .space  4
                    286: 
                    287: 
                    288: /*
                    289:        *user #2 page tables -- P0PT, P1PT, P2PT                        
                    290:        *physical memory     --  page 16, 17 , & 18  respectively
                    291: */
                    292:        .align  2
                    293:        .globl  _u2p0pt
                    294: _u2p0pt:
                    295:        .space  1024            /*255 max pages for user #2 text        */
                    296:        .globl  _u2p1pt
                    297: _u2p1pt:       
                    298:        .space  1024            /*255 max pages for user #2 data        */
                    299:        .globl  _u2p2pt
                    300: _u2p2pt:       
                    301:        .space  1020            /*255 max pages for user #2 stack       */
                    302: eu2p2pt:
                    303:        .space  4
                    304: 
                    305: 
                    306: /*
                    307:        *user #3 page tables -- P0PT, P1PT, P2PT                        
                    308:        *physical memory     --  page 19, 20 , & 21  respectively
                    309: */
                    310:        .align  2
                    311:        .globl  _u3p0pt
                    312: _u3p0pt:
                    313:        .space  1024            /*255 max pages for user #3 text        */
                    314:        .globl  _u3p1pt
                    315: _u3p1pt:       
                    316:        .space  1024            /*255 max pages for user #3 data        */
                    317:        .globl  _u3p2pt
                    318: _u3p2pt:       
                    319:        .space  1020            /*255 max pages for user #3 stack       */
                    320: eu3p2pt:
                    321:        .space  4
                    322: 
                    323: /*
                    324:        *user #4 thru 6 page tables
                    325:        *physical memory -- pages 22 thru 30
                    326: */
                    327:        .globl  _u4p0pt
                    328: _u4p0pt:
                    329:        .space  (9*NBPG) - 4
                    330: eu6p2pt:
                    331:        .space  4
                    332: 
                    333: /*
                    334:        *user #7 page tables -- P0PT, P1PT, P2PT                        
                    335:        *physical memory     --  page 31, 32 , & 33  respectively
                    336: */
                    337:        .align  2
                    338:        .globl  _u7p0pt
                    339: _u7p0pt:
                    340:        .space  1024            /*255 max pages for user #7 text        */
                    341:        .globl  _u7p1pt
                    342: _u7p1pt:       
                    343:        .space  1024            /*255 max pages for user #7 data        */
                    344:        .globl  _u7p2pt
                    345: _u7p2pt:       
                    346:        .space  1020            /*255 max pages for user #7 stack       */
                    347: eu7p2pt:
                    348:        .space  4
                    349: 
                    350:        .globl  _iob0           /*io buffer 0 */
                    351: _iob0: .space  1024
                    352:        .globl  _iob1           /*io buffer 1 */
                    353: _iob1: .space  1024
                    354:        .globl  _iob2           /*io buffer 2 */
                    355: _iob2: .space  1024
                    356:        .globl  _iob3           /*io buffer 3 */
                    357: _iob3: .space  1024
                    358:        .globl  _iob4           /*io buffer 4 */
                    359: _iob4: .space  1024
                    360:        .globl  _iob5           /*io buffer 5 */
                    361: _iob5: .space  1024
                    362:        .globl  _iob6           /*io buffer 6 */
                    363: _iob6: .space  1024
                    364: esysdata:
                    365: 
                    366: #include "scblock.s"           /* SYSTEM CONTROL BLOCK                 */
                    367: 
                    368: #include       "evthandlers.s" /*event handlers                        */
                    369: 
                    370: #define        ACBL(_n1,_n2,_n3,_n4) \
                    371: addl2  _n2,_n3;\
                    372: cmpl   _n3,_n1;\
                    373: bleq   _n4;
                    374: 
                    375:        .set    MEMUNIT,64*1024
                    376:        .set    MAXPHYSMEM,32*1024*1024-1
                    377:        .set    ERRCD,0x7
                    378:        .set    APE,0x1
                    379:        .set    DCE,0x3
                    380:        .set    VTO,0x4
                    381: 
                    382: 
                    383: 
                    384: /*
                    385:        *INITIALIZATION CODE
                    386:        *
                    387:        * MME off; mode = k; IPL = 31; IS = 1
                    388:        *
                    389: */
                    390: 
                    391:        .globl  start
                    392: start:
                    393:        mtpr    $0,$MME         /* Disable MME */
                    394:        andl3   $4,r11,_ss1     /* messages sense switch */
                    395:        movl    r0,_test_no     /* save test number */
                    396:        movl    r1,_OPTIONS     /* save option bits */
                    397:        clrl    _nonstop
                    398:        movl    r2,_count       /* save cycle count */
                    399:        cmpl    $0xffffffff,r2  /* Is count == -1 */
                    400:        bneq    1f
                    401:        movl    $1,_nonstop     /* Yes : NONSTOP */
                    402: 1:
                    403:        cmpl    $0x0,r2         /* Is count == 0 */
                    404:        bneq    1f
                    405:        movl    $1,_count       /* Yes : set default count to 1 */
                    406: 1:
                    407:        movab   _scb,r0
                    408:        andl2   $0x3ffffc00,r0
                    409:        mtpr    r0,$SCBB        /* Set SCBB  */
                    410:        mtpr    $0x1f,$IPL      /* Set IPL to HIGH */
                    411: 
                    412:        movpsl  r1
                    413:        andl2   $0xffffff00,r1          /* Mask out flags               */
                    414:        cmpl    r1,$0x041f0000          /*IS on,modes =k & IPL = 31?    */
                    415:        beql    1f
                    416: 2:     movl    $1,r0
                    417:        movl    $0x041f0000,r2
                    418:        halt                    /* PSL not initialized as expected      */
                    419: /*
                    420: #      Mask out bit 30,31 of SCB vectors
                    421: #      Will turm them back on when ready to go virtual in 
                    422: #      system space
                    423: */
                    424: 1:
                    425:        clrl    _clk_cnt
                    426:        movl    $7,r0           /* R0 : Vector no. of clock int. */
                    427:        movab   _Hardclk,_scb[r0]       /* New vector for clock */
                    428: 
                    429:        movl    $_intstack+NISP*NBPG,r0
                    430:        andl2   $0x3fffffff,r0          /* Mask out bit 30,31 */
                    431:        mtpr    r0,$ISP                 /* init. ISP            */
                    432:        movl    r0,sp                   /* in case we get exception     */
                    433:        movab   (sp),fp                 /* Initialize FP                */
                    434: /*
                    435:        Clear system data area all the way upto system code
                    436:        this includes dump buffer,interrupt stack,spt,iomap,pcbs,user 
                    437:        page tables, & io buffer area.
                    438: */
                    439: 3:     
                    440:        movab   esysdata,r7
                    441:        movab   _restart,r6
                    442: 1:     clrl    (r6)
                    443:        ACBL(r7,$4,r6,1b)
                    444: /*
                    445:        Count memory
                    446: */
                    447:        clrl    r3
                    448:        movl    _scb+BEVEC,r12
                    449:        movab   9f,_scb+BEVEC           /* new interrupt handler */
                    450: 1:     tstl    (r3)
                    451:        clrl    r0                      /* allow 100ns delay    */
                    452:        addl2   $MEMUNIT,r3
                    453:        cmpl    r3,$MAXPHYSMEM          /* excess max memory size? */
                    454:        bleq    1b
                    455: 2:
                    456:        subl3   $4,r3,_maxmem 
                    457:        movl    r12,_scb+BEVEC          /* restore interrupt handler */
                    458:        jmp     _ready
                    459: 
                    460:        .align  2
                    461: 9:     andl3   4(sp),$ERRCD,r0         /* Here's where we get the bus err */
                    462:        cmpl    r0,$APE                 /* data parity error */
                    463:        bneq    1f
                    464:        halt
                    465: 1:     cmpl    r0,$VTO                 /* versabus Error */
                    466:        bneq    1f
                    467:        halt
                    468: 1:     movab   8(sp),sp
                    469:        movab   2b,(sp)
                    470:        mtpr    $1,$TBIA                /* Purge all */
                    471:        mtpr    $1,$PADC                /* Purge all data cache */
                    472:        rei
                    473: 
                    474:        .globl  _ready
                    475: _ready:
                    476:        mtpr    $64,$DCR        /* Enable fault */                              
                    477:        andl3   $0x3ffffc00,$_end+NBPG-1,_endprog
                    478: 
                    479:        callf   $4,_monitor
                    480:        mtpr    $2,$27          /* Disable Data cache */
                    481:        clrl    _cycle
                    482:        clrl    _errcnt
                    483: 2:
                    484:        movl    $1,_test_no
                    485:        bitl    $1,_tstmsk
                    486:        beql    1f
                    487:        callf   $4,_stest1
                    488: 1:
                    489:        incl    _test_no
                    490:        bitl    $2,_tstmsk
                    491:        beql    1f
                    492:        callf   $4,_stest2
                    493: 1:
                    494:        incl    _test_no
                    495:        bitl    $4,_tstmsk
                    496:        beql    1f
                    497:        callf   $4,_stest3
                    498: 1:
                    499:        mtpr    $0x1e,$IPL      /* Set IPL to a low value*/
                    500:        callf   $4,_i_ecc       /* Init. memory + ECC */
                    501:        incl    _test_no
                    502:        bitl    $8,_tstmsk
                    503:        beql    1f
                    504:        callf   $4,_subtest4
                    505: 1:
                    506:        incl    _test_no
                    507:        bitl    $16,_tstmsk
                    508:        beql    1f
                    509:        callf   $4,_subtest5
                    510: 1:
                    511:        incl    _test_no
                    512:        bitl    $32,_tstmsk
                    513:        beql    1f
                    514:        callf   $4,_subtest6
                    515: 1:
                    516:        pushl   $endmsg         /* Write cycle count */
                    517:        mtpr    $0x1f,$IPL      /* Set IPL to a high value*/
                    518:        bitl    $8,_OPTIONS     /* print message ? */
                    519:        beql    1f
                    520:        callf   $8,_writes
                    521:        incl    _cycle
                    522:        pushl   _cycle
                    523:        callf   $8,_writed
                    524: 1:
                    525:        tstl    _nonstop        /* Is loop forever ? */
                    526:        beql    4f
                    527:        jmp     2b              /* Yes : Jump back */
                    528: 4:
                    529:        decl    _count
                    530:        tstl    _count          /* Is count == 0 ? */
                    531:        beql    1f
                    532:        jmp     2b              /* No : Continue */
                    533: 1:
                    534:        bitl    $8,_OPTIONS     /* suppress message ? */
                    535:        beql    1f
                    536:        pushl   $emsg
                    537:        callf   $8,_writes
                    538:        pushl   _cycle
                    539:        callf   $8,_writed
                    540:        pushl   $ermsg
                    541:        callf   $8,_writes
                    542:        pushl   _errcnt
                    543:        callf   $8,_writed
                    544:        pushl   $ermsg1
                    545:        callf   $8,_writes
                    546: 1:
                    547:        movl    $0xCAFEBABE,r0
                    548:        halt
                    549: #
                    550: #
                    551: #      ***********************************
                    552: #      * Routine to test an ECC location *
                    553: #      * ecccor(addr) : Read from this   *
                    554: #      * addr. ECC correction is enable. *
                    555: #      * Return in R0 :                  *
                    556: #      *    0 = Didnot get Buser         *
                    557: #      *   -1 = Got DCE                  *
                    558: #      *   -2 = Unexpected Buser         *
                    559: #      ***********************************
                    560: #
                    561:        .align  2
                    562:        .globl  _ecccor
                    563: _ecccor: .word 0x1ffe
                    564:        movl    _scb+BEVEC,_savvec2     /* Save bus error vector */
                    565:        movab   9f,_scb+BEVEC           /* Set new vector */
                    566:        movl    4(fp),r1                /* get test address */
                    567:        movl    $0x3,0xffffb000         /* Turn ON ECC detection,correction */
                    568:        movl    0xffffb000,r0
                    569:        movl    (r1),*8(fp)             /* Read data */
                    570:        movl    $2,r0                   /* timeout value*/
                    571: 1:
                    572:        decl    r0
                    573:        bgtr    1b
                    574: 
                    575:        clrl    r0                      /* indicate timeout */
                    576:        movl    $0x80,0xffffb000        /* Turn OFF ECC detection */
                    577:        movl    _savvec2,_scb+BEVEC
                    578:        ret
                    579: #
                    580: #
                    581: #      ***********************************
                    582: #      * Routine to test an ECC location *
                    583: #      * eccloc(addr) : Read from this   *
                    584: #      * addr. ECC detection is enable.  *
                    585: #      * Return in R0 :                  *
                    586: #      *    0 = Didnot get Buser         *
                    587: #      *   -1 = Got DCE                  *
                    588: #      *   -2 = Unexpected Buser         *
                    589: #      ***********************************
                    590: #
                    591:        .align  2
                    592:        .globl  _eccloc
                    593: _eccloc: .word 0x1ffe
                    594:        movl    _scb+BEVEC,_savvec2     /* Save bus error vector */
                    595:        movab   9f,_scb+BEVEC           /* Set new vector */
                    596:        movl    4(fp),r2                /* get test address */
                    597:        movl    $0x1,0xffffb000         /* Turn ON ECC detection */
                    598:        movl    0xffffb000,r0
                    599:        movl    (r2),r1                 /* Read data */
                    600:        movl    $4,r0                   /* timeout value*/
                    601: 1:     decl    r0
                    602:        bgtr    1b
                    603: 
                    604:        movl    0xffffb000,_ber1        /* Read MCR */
                    605:        movl    0xffffb008,_ber3        /* Read MCBR */
                    606:        movl    r1,_ber2                /* Data read */
                    607: 
                    608:        clrl    r0                      /* indicate timeout */
                    609: #
                    610: #      Return after Bus error
                    611: #
                    612: 2:
                    613:        movl    $0xc0,0xffffb000        /* Turn OFF ECC, clear error */
                    614:        movl    _savvec2,_scb+BEVEC
                    615:        ret
                    616: #
                    617: #      *********************
                    618: #      * Bus Error handler *
                    619: #      *********************
                    620: #
                    621:        .align  2
                    622: 9:
                    623:        movl    $0xc0,0xffffb000        /* Turn OFF ECC detection */
                    624:        andl3   4(sp),$ERRCD,r0         /* Here's where we get the bus err */
                    625:        movl    (sp),_tmp_mcbr          /* save current MCBR  */
                    626:        movl    4(sp),_tmp_mear         /* save current MEAR  */
                    627:        cmpl    r0,$DCE                 /* Data Check error ? */
                    628:        beql    3f
                    629:        movl    $-2,r0                  /* indicate wrong Buser */
                    630:        brw     4f
                    631: 3:
                    632:        movl    $-1,r0                  /* Indicate got a DCE */
                    633: 4:     movab   8(sp),sp
                    634:        movab   2b,(sp)
                    635:        movl    _tmp_mcbr,_ber1
                    636:        movl    _tmp_mear,_ber2
                    637:        rei
                    638: 
                    639:        .align  2
                    640:        .globl  _ber1
                    641: _ber1: .long   0               /* Bus error Parameter no. 1 */
                    642:        .globl  _ber2
                    643: _ber2: .long   0               /* Bus error Parameter no. 1 */
                    644:        .globl  _ber3
                    645: _ber3: .long   0
                    646: #
                    647: #      *********************
                    648: #
                    649:        .align  2
                    650:        .globl  _Hardclk
                    651: _Hardclk:
                    652:        incl    _clk_cnt
                    653:        rei
                    654: 
                    655:        .align  2
                    656:        .globl  _tstmsk
                    657: _tstmsk: .long 0               /* tests to run */
                    658:        .globl  _ss1
                    659: _ss1:  .long   0       /* If 1 then donot print heading messages */
                    660:        .globl  _prt_flg
                    661: _prt_flg: .long        0               /* print enable */
                    662: 
                    663:        .globl  _OPTIONS
                    664:        .globl  _test_no
                    665: _test_no: .long 0
                    666:        .globl  _count
                    667: _count: .long 0
                    668:        .globl  _diagmode
                    669: _diagmode: .long 0
                    670:        .globl  _tmp_mcbr
                    671: _tmp_mcbr: .long 0
                    672:        .globl  _tmp_mear
                    673: _tmp_mear: .long 0
                    674:        .globl  err1
                    675: err1:
                    676:        .ascii  "\nRegisters : \0"
                    677:        .globl  err2
                    678: err2:  
                    679:        .ascii  "  \0"
                    680:        .globl  err3
                    681: err3:  
                    682:        .ascii  "\n            \0"
                    683:        .globl  err4
                    684: err4:  
                    685:        .ascii  "\n\0"
                    686:        .globl  e_type
                    687: e_type:        
                    688:        .ascii  "\n** Unexpected exception type :  \0"
                    689:        .globl  par_0
                    690: par_0: 
                    691:        .ascii  "** Par 0 : \0"
                    692:        .globl  par_1
                    693: par_1: 
                    694:        .ascii  "** Par 1 : \0"
                    695:        .globl  par_pc
                    696: par_pc:
                    697:        .ascii  "** PC    : \0"
                    698:        .globl  par_psl 
                    699: par_psl:
                    700:        .ascii  "** PSL   : \0"
                    701:        .align  2
                    702: Gregs: .space  60      /* Space to save general registers */
                    703:        .align  2
                    704:        .globl  _Errmsg
                    705: _Errmsg:
                    706:        .long   0       /* Pointer to error message */
                    707:        .data   1
                    708: endmsg: .ascii "\nEnd Cycle = \0"
                    709: emsg:   .ascii "\nCycles Completed = \0"
                    710: ermsg:   .ascii        "\nError Count = \0"
                    711: ermsg1:  .ascii        "\nTest Complete \n\0"

unix.superglobalmegacorp.com

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