Annotation of cci/d/event/prvreg.s, revision 1.1

1.1     ! root        1: #      prvreg.s        1.0     9/3/82                                  */
        !             2: #
        !             3: #      *Privileged registers test : MTPR/MFPR
        !             4: #
        !             5: #      R2      : expected value                
        !             6: #      R3      : actual value          
        !             7: #      R4      : privilege register no. that fail
        !             8: 
        !             9: 
        !            10:        .globl  _prvreg
        !            11: _prvreg:
        !            12:        .word   0x1fff
        !            13:        movl    $0x55555554,r2
        !            14:        mtpr    r2,$SBR         /* Entry point :  Register to Memory    */
        !            15:        mfpr    $SBR,r3         /* Entry point :  Memory to Register    */
        !            16:        cmpl    r2,r3
        !            17:        beql    1f
        !            18:        movl    $0,r4           /* R4 = privilege reg. no that failed   */
        !            19:        jmp    *badrtn                  /* **** - r2 & r3 contains exp  */
        !            20:                                /* and observed values; r4 = prv reg no.*/
        !            21: 1:
        !            22:        mtpr    $0xaaaaaaa4,$SBR        /* Entry point : Memory to Memory */
        !            23:        mfpr    $SBR,prvar              /* Entry point : Memory to Memory */
        !            24:        cmpl    $0xaaaaaaa4,prvar
        !            25:        beql    2f
        !            26:        movl    $0,r4           /* R4 = privilege reg. no that failed   */
        !            27:        movl    $0xaaaaaaa4,r2  /* R2 = Expected value; R3 = Actual value */
        !            28:        movl    prvar,r3
        !            29:        jmp    *badrtn
        !            30: 2:
        !            31: 
        !            32:        movl    $SLR,r12        /* System Length Register               */
        !            33:        movl    $0x35555555,r2
        !            34:        mtpr    r2,r12          /* Entry point : Register to Register   */
        !            35:        mfpr    r12,r3          /* Entry point : Register to Register   */
        !            36:        cmpl    r2,r3
        !            37:        beql    1f
        !            38:        movl    $1,r4           /* R4 = privilege reg. no that failed   */
        !            39:        jmp    *badrtn                  /***** - r2 & r3 contains exp   */
        !            40:                                /*and observed values; r4 = prv reg no. */
        !            41: 1:
        !            42:        mtpr    $0x3aaaaaaa,r12 /* Entry point : Memory to register     */
        !            43:        mfpr    r12,prvar       /* Entry point : Register to Memory     */
        !            44:        cmpl    $0x3aaaaaaa,prvar
        !            45:        beql    2f
        !            46:        movl    $1,r4           /* R4 = privilege reg. no that failed   */
        !            47:        movl    $0x3aaaaaaa,r2  /* R2 = Expected value; R3 = Actual value */
        !            48:        movl    prvar,r3
        !            49:        jmp     *badrtn 
        !            50: 2:
        !            51: 
        !            52:        movl    $0x55555554,r2                  /*p0 base  register     */
        !            53:        mtpr    r2,$P0BR
        !            54:        movl    $P0BR,_cache1
        !            55:        mfpr    _cache1,r3              /* Cache to register */
        !            56:        cmpl    r2,r3
        !            57:        beql    1f
        !            58:        movl    $2,r4           /* R4 = privilege reg. no that failed   */
        !            59:        jmp    *badrtn                  /***** - r2 & r3 contains exp   */
        !            60:                                /*and observed values; r4 = prv reg no. */
        !            61: 1:
        !            62:        movl    $0xaaaaaaa4,r2                  
        !            63:        mtpr    r2,$P0BR
        !            64:        mfpr    _cache1,_cache2         /* Cache to cache */
        !            65:        movl    _cache2,r3
        !            66:        cmpl    r2,r3
        !            67:        beql    2f
        !            68:        movl $2,r4                              /*reg no.               */
        !            69:        jmp    *badrtn                  /***** - r2 & r3 contains exp   */
        !            70:                                /*and observed values; r4 = prv reg no. */
        !            71: 2:
        !            72: 
        !            73:        movl    $0x35555555,r2                  /*p0 length  register   */
        !            74:        andl2   $0x1fffffff,r2
        !            75:        mtpr    r2,$P0LR
        !            76:        mfpr    $P0LR,r3
        !            77:        cmpl    r2,r3
        !            78:        beql    1f
        !            79:        movl $3,r4                              /*reg no.               */
        !            80:        jmp    *badrtn                  /***** - r2 & r3 contains exp   */
        !            81:                                /*and observed values; r4 = prv reg no. */
        !            82: 1:
        !            83:        movl    $0x3aaaaaaa,r2                  
        !            84:        andl2   $0x1fffffff,r2
        !            85:        mtpr    r2,$P0LR
        !            86:        mfpr    $P0LR,r3
        !            87:        cmpl    r2,r3
        !            88:        beql    2f
        !            89:        movl $3,r4                              /*reg no.               */
        !            90:        jmp    *badrtn                  /***** - r2 & r3 contains exp   */
        !            91:                                /*and observed values; r4 = prv reg no. */
        !            92: 2:
        !            93: 
        !            94:        movl    $0x55555554,r2                  /*p1 base  register     */
        !            95:        movl    $P1BR,_sreg
        !            96:        mtpr    r2,_sreg
        !            97:        mfpr    $P1BR,r3
        !            98:        cmpl    r2,r3
        !            99:        beql    1f
        !           100:        movl $4,r4                              /*reg no.               */
        !           101:        jmp    *badrtn                  /***** - r2 & r3 contains exp   */
        !           102:                                /*and observed values; r4 = prv reg no. */
        !           103: 1:
        !           104:        movl    $0xaaaaaaa4,r2                  
        !           105:        mtpr    r2,$P1BR
        !           106:        mfpr    $P1BR,r3
        !           107:        cmpl    r2,r3
        !           108:        beql    2f
        !           109:        movl $4,r4                              /*reg no.               */
        !           110:        jmp    *badrtn                  /***** - r2 & r3 contains exp   */
        !           111:                                /*and observed values; r4 = prv reg no. */
        !           112: 2:
        !           113: 
        !           114: 
        !           115:        movl    $0x35555555,r2                  /*p1 length  register   */
        !           116:        andl2   $0x1fffffff,r2
        !           117:        mtpr    r2,$P1LR
        !           118:        mfpr    $P1LR,r3
        !           119:        cmpl    r2,r3
        !           120:        beql    1f
        !           121:        movl $5,r4                              /*reg no.               */
        !           122:        jmp    *badrtn                  /***** - r2 & r3 contains exp   */
        !           123:                                /*and observed values; r4 = prv reg no. */
        !           124: 1:
        !           125:        movl    $0x3aaaaaaa,r2                  
        !           126:        andl2   $0x1fffffff,r2
        !           127:        mtpr    r2,$P1LR
        !           128:        mfpr    $P1LR,r3
        !           129:        cmpl    r2,r3
        !           130:        beql    2f
        !           131:        movl $5,r4                              /*reg no.               */
        !           132:        jmp    *badrtn                  /***** - r2 & r3 contains exp   */
        !           133:                                /*and observed values; r4 = prv reg no. */
        !           134: 2:
        !           135: 
        !           136: 
        !           137:        movl    $0x55555554,r2                  /*p2 base  register     */
        !           138:        mtpr    r2,$P2BR
        !           139:        mfpr    $P2BR,r3
        !           140:        cmpl    r2,r3
        !           141:        beql    1f
        !           142:        movl $6,r4                              /*reg no.               */
        !           143:        jmp    *badrtn                  /***** - r2 & r3 contains exp   */
        !           144:                                /*and observed values; r4 = prv reg no. */
        !           145: 1:
        !           146:        movl    $0xaaaaaaa4,r2                  
        !           147:        mtpr    r2,$P2BR
        !           148:        mfpr    $P2BR,r3
        !           149:        cmpl    r2,r3
        !           150:        beql    2f
        !           151:        movl $6,r4                              /*reg no.               */
        !           152:        jmp    *badrtn                  /***** - r2 & r3 contains exp   */
        !           153:                                /*and observed values; r4 = prv reg no. */
        !           154: 2:
        !           155: 
        !           156:        movl    $0x35555555,r2                  /*p2 length  register   */
        !           157:        andl2   $0x1fffffff,r2
        !           158:        mtpr    r2,$P2LR
        !           159:        mfpr    $P2LR,r3
        !           160:        cmpl    r2,r3
        !           161:        beql    1f
        !           162:        movl $7,r4                              /*reg no.               */
        !           163:        jmp    *badrtn                  /***** - r2 & r3 contains exp   */
        !           164:                                /*and observed values; r4 = prv reg no. */
        !           165: 1:
        !           166:        movl    $0x3aaaaaaa,r2                  
        !           167:        andl2   $0x1fffffff,r2
        !           168:        mtpr    r2,$P2LR
        !           169:        mfpr    $P2LR,r3
        !           170:        cmpl    r2,r3
        !           171:        beql    2f
        !           172:        movl $7,r4                              /*reg no.               */
        !           173:        jmp    *badrtn                  /***** - r2 & r3 contains exp   */
        !           174:                                /*and observed values; r4 = prv reg no. */
        !           175: 2:
        !           176: 
        !           177:        movl    $10,r2
        !           178:        mtpr    r2,$IPL
        !           179:        mfpr    $IPL,r3
        !           180:        cmpl    r2,r3
        !           181:        beql    1f
        !           182:        movl $8,r4                              /*reg no.               */
        !           183:        jmp    *badrtn                  /***** - r2 & r3 contains exp   */
        !           184:                                /*and observed values; r4 = prv reg no. */
        !           185: 1:
        !           186:        movl    $21,r2                  
        !           187:        mtpr    r2,$IPL
        !           188:        mfpr    $IPL,r3
        !           189:        cmpl    r2,r3
        !           190:        beql    2f
        !           191:        movl $8,r4                              /*reg no.               */
        !           192:        jmp    *badrtn                  /***** - r2 & r3 contains exp   */
        !           193:                                /*and observed values; r4 = prv reg no. */
        !           194: 2:
        !           195:        movl    $31,r2                  
        !           196:        mtpr    r2,$IPL
        !           197:        mfpr    $IPL,r3
        !           198:        cmpl    r2,r3
        !           199:        beql    2f
        !           200:        movl $8,r4                              /*reg no.               */
        !           201:        jmp    *badrtn                  /***** - r2 & r3 contains exp   */
        !           202:                                /*and observed values; r4 = prv reg no. */
        !           203: 2:
        !           204: 
        !           205:        movl    $0xffffc,r2                     /*PCB base register     */
        !           206:        mtpr    r2,$PCBB
        !           207:        mfpr    $PCBB,r3
        !           208:        cmpl    r2,r3
        !           209:        beql    1f
        !           210:        movl    $14,r4                          /*reg no.               */
        !           211:        jmp     *badrtn                 /***** - r2 & r3 contains exp   */
        !           212:                                /*and observed values; r4 = prv reg no. */
        !           213: 1:
        !           214:        movl    $0xeeeec,r2                     
        !           215:        mtpr    r2,$PCBB
        !           216:        mfpr    $PCBB,r3
        !           217:        cmpl    r2,r3
        !           218:        beql    2f
        !           219:        movl $14,r4                             /*reg no.               */
        !           220:        jmp    *badrtn                  /***** - r2 & r3 contains exp   */
        !           221:                                /*and observed values; r4 = prv reg no. */
        !           222: /*LET US HOPE WE DON'T GET EXCEPTION DURING THIS TEST                  */
        !           223: 
        !           224: 2:
        !           225:        movl    $0x55555554,r2                  /*int stck ptr register */
        !           226:        mtpr    r2,$ISP
        !           227:        mfpr    $ISP,r3
        !           228:        cmpl    r2,r3
        !           229:        beql    1f
        !           230:        movl $15,r4                             /*reg no.               */
        !           231:        jmp    *badrtn                  /***** - r2 & r3 contains exp   */
        !           232:                                /*and observed values; r4 = prv reg no. */
        !           233: 1:
        !           234:        movl    $0xaaaaaaac,r2                  
        !           235:        mtpr    r2,$ISP
        !           236:        mfpr    $ISP,r3
        !           237:        cmpl    r2,r3
        !           238:        beql    2f
        !           239:        movl $15,r4                             /*reg no.               */
        !           240:        jmp    *badrtn                  /***** - r2 & r3 contains exp   */
        !           241:                                /*and observed values; r4 = prv reg no. */
        !           242: 2:
        !           243:        movl    $0xaaaa,r2      /* Soft int summary register    */
        !           244:        movl    r2,*$SSR        /* is a read only register      */
        !           245:        mfpr    $SISR,r3        /* funtional test no comparison */
        !           246:        cmpl    r2,r3
        !           247:        beql    1f
        !           248:        movl $17,r4                             /*reg no.               */
        !           249:        jmp    *badrtn                  /***** - r2 & r3 contains exp   */
        !           250:                                /*and observed values; r4 = prv reg no. */
        !           251: 1:
        !           252:        movl    $0x5555,r2                      
        !           253:        movl    r2,*$SSR 
        !           254:        mfpr    $SISR,r3
        !           255:        cmpl    r2,r3
        !           256:        beql    2f
        !           257:        movl    $17,r4                          /*reg no.               */
        !           258:        jmp    *badrtn                  /***** - r2 & r3 contains exp   */
        !           259:                                /*and observed values; r4 = prv reg no. */
        !           260: 2:
        !           261:        clrl    *$SSR
        !           262:        movl    $0xfff000,r2
        !           263:        movab   _iob4,r9
        !           264:        mtpr    r9,$PCBB        /* Init PCBB    */
        !           265:        mtpr    r2,$USP
        !           266:        mfpr    $USP,r3
        !           267:        cmpl    r2,r3
        !           268:        beql    2f
        !           269:        movl    $20,r4                          /*reg no.               */
        !           270:        jmp     *badrtn                 /***** - r2 & r3 contains exp   */
        !           271:                                /*and observed values; r4 = prv reg no. */
        !           272: 2:
        !           273:        movl    $0xffe000,r2
        !           274:        mtpr    r2,$KSP
        !           275:        mfpr    $KSP,r3
        !           276:        cmpl    r2,r3
        !           277:        beql    2f
        !           278:        movl    $19,r4                          /*reg no.               */
        !           279:        jmp     *badrtn                 /***** - r2 & r3 contains exp   */
        !           280:                                /*and observed values; r4 = prv reg no. */
        !           281: 2:
        !           282:        movl    *$0x414,r12     /* Save original SCB value in R12       */
        !           283:        movl    $0xeee000,r2
        !           284:        mtpr    r2,$SCBB
        !           285:        mfpr    $SCBB,r3
        !           286:        cmpl    r2,r3
        !           287:        beql    2f
        !           288:        movl    $18,r4                          /*reg no.               */
        !           289:        jmp     *badrtn                 /***** - r2 & r3 contains exp   */
        !           290:                                /*and observed values; r4 = prv reg no. */
        !           291: 2:
        !           292:        movl    r12,*$0x414     /* Restore original SCB         */
        !           293:        mtpr    $0x1f,$IPL      /* Set IPL to High      */
        !           294:        movl    $0x8000,r2
        !           295:        mtpr    $0xf,$SIRR      /* Set SIRR at level 15 */
        !           296:        mfpr    $SISR,r3        /* Read software int. summary register */
        !           297:        cmpl    $0x8000,r3      /* Should indicate int. pending at level 15 */
        !           298:        beql    2f
        !           299:        movl    $16,r4                          /*reg no.               */
        !           300:        jmp     *badrtn                 /***** - r2 & r3 contains exp   */
        !           301:                                /*and observed values; r4 = prv reg no. */
        !           302: 2:
        !           303:        mtpr    $0,$SIRR        /* Clear SIRR */
        !           304:        clrl    *$SSR
        !           305:        movl    $0xaa,r2
        !           306:        mtpr    r2,$DCK
        !           307:        movl    *$TDCK,r3
        !           308:        cmpl    r2,r3
        !           309:        beql    2f
        !           310:        movl    $12,r4                          /*reg no.               */
        !           311:        jmp     *badrtn                 /***** - r2 & r3 contains exp   */
        !           312:                                /*and observed values; r4 = prv reg no. */
        !           313: 2:
        !           314:        movl    $0xbb,r2
        !           315:        mtpr    r2,$CCK
        !           316:        movl    *$TCCK,r3
        !           317:        cmpl    r2,r3
        !           318:        beql    2f
        !           319:        movl    $13,r4                          /*reg no.               */
        !           320:        jmp     *badrtn                 /***** - r2 & r3 contains exp   */
        !           321:                                /*and observed values; r4 = prv reg no. */
        !           322: 2:
        !           323:        mtpr    $0x1f,$IPL
        !           324:        movl    $0x150010,r2
        !           325:        movl    r2,*$HSR        /* Set HISR in processor storage */
        !           326:        mfpr    $HISR,r3
        !           327:        cmpl    r2,r3
        !           328:        beql    2f
        !           329:        movl    $26,r4                          /*reg no.               */
        !           330:        jmp     *badrtn                 /***** - r2 & r3 contains exp   */
        !           331:                                /*and observed values; r4 = prv reg no. */
        !           332: 2:
        !           333:        clrl    *$HSR           /* Clear HISR in PSA */
        !           334: 
        !           335:        movl    $0xffe000,r2
        !           336:        movl    $KSP,_cache1
        !           337:        mtpr    $0xffe000,_cache1       /* Literal to cache */
        !           338:        mfpr    $KSP,r3
        !           339:        cmpl    r2,r3
        !           340:        beql    2f
        !           341:        movl    $27,r4                  /* R4 = which part of the test */
        !           342:        jmp     *badrtn                 /***** - r2 & r3 contains exp   */
        !           343: 2:
        !           344:        movl    $0xffa000,r2
        !           345:        movl    r2,_cache2
        !           346:        mtpr    _cache2,_cache1         /* Cache to cache */
        !           347:        mfpr    $KSP,r3
        !           348:        cmpl    r2,r3
        !           349:        beql    2f
        !           350:        movl    $28,r4                  /* R4 = which part of the test */
        !           351:        jmp     *badrtn                 /***** - r2 & r3 contains exp   */
        !           352: 2:
        !           353:        movl    $0xffb000,r2
        !           354:        movl    r2,_cache2
        !           355:        movl    $KSP,r11
        !           356:        mtpr    _cache2,r11             /* Cache to register */
        !           357:        mfpr    $KSP,r3
        !           358:        cmpl    r2,r3
        !           359:        beql    2f
        !           360:        movl    $29,r4                  /* R4 = which part of the test */
        !           361:        jmp     *badrtn                 /***** - r2 & r3 contains exp   */
        !           362: 2:
        !           363:        movl    $0xffc000,r2
        !           364:        movl    r2,_cache2
        !           365:        mtpr    _cache2,$KSP            /* Cache to literal */
        !           366:        mfpr    $KSP,r3
        !           367:        cmpl    r2,r3
        !           368:        beql    2f
        !           369:        movl    $30,r4                  /* R4 = which part of the test */
        !           370:        jmp     *badrtn                 /***** - r2 & r3 contains exp   */
        !           371: 2:
        !           372:        mfpr    $MME,r9         /* The following MTPR/MFPR just to see  */
        !           373:        mtpr    $1,$TBIA        /* if control return to program !!      */
        !           374:        mtpr    $_iob4,$TBIS
        !           375:        mfpr    $DCB,r9
        !           376:        mtpr    $4,$PADC
        !           377:        mtpr    $_iob4,$P1DC
        !           378:        mtpr    $2,$PACC
        !           379:        mtpr    $0,$DCR
        !           380:        mfpr    $DCR,r9
        !           381:        ret                     /* End of privileged registers test     */
        !           382: 
        !           383:        .align  2
        !           384: prvar: .long   0
        !           385: _cache1:
        !           386:        .long   0
        !           387: _cache2:
        !           388:        .long   0
        !           389: _sreg: .long   0
        !           390: 

unix.superglobalmegacorp.com

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