Annotation of cci/d/entry/or_b3.s, revision 1.1.1.1

1.1       root        1: 
                      2: 
                      3: 
                      4: /*     ORB3 (or byte 3 operand) test                                   */
                      5: 
                      6: /*Test name = orb3                                                     */
                      7: /*Description =                                                                */
                      8: /*     This test checks 'orb3' instruction as follows:         */
                      9: /*     source          mask            destination   Z N C V(flags)    */
                     10: /*     ___________     ____            ___________   _____________     */
                     11: /*     0xaa            0xaa            0x7fffffaa    0 0 1 0           */
                     12: /*     0xaa            0x55            0x7fffffff    0 0 1 0           */
                     13: /*     0x00            0x00            0x00000000    1 0 x 0           */
                     14: /*     R               R               R               ---             */
                     15: /*     M               M               M               ---             */
                     16: /*     R               M               M               ---             */
                     17: /*     M               R               R               ---             */
                     18: /*                                                                     */
                     19: /*                                                                     */
                     20: /*                                                                     */
                     21: /*     Constants                                                       */
                     22: /*                                                                     */
                     23:        .set    MASK1B3,0xaa
                     24:        .set    MASK1W3,0xaaaa
                     25:        .set    MASK1L3,0xaaaaaaaa
                     26:        .set    MASK2B3,0x55
                     27:        .set    MASK2W3,0x5555
                     28:        .set    MASK2L3,0x55555555
                     29:        .set    MASK3B3,0x00
                     30:        .set    MASK3W3,0x0000
                     31:        .set    MASK3L3,0x00000000
                     32:        .set    SOURCE1B3,0xaa
                     33:        .set    SOURCE1W3,0xaaaa
                     34:        .set    SOURCE1L3,0xaaaaaaaa
                     35:        .set    SOURCE2B3,0xaa
                     36:        .set    SOURCE2W3,0xaaaa
                     37:        .set    SOURCE2L3,0xaaaaaaaa
                     38:        .set    SOURCE3B3,0x00
                     39:        .set    SOURCE3W3,0x0000
                     40:        .set    SOURCE3L3,0x00000000
                     41:        .set    INIT1B3,0x7fffff00
                     42:        .set    INIT1W3,0x7fff0000
                     43:        .set    INIT1L3,0x00000000
                     44:        .set    INIT3B3,0x7fffffff
                     45:        .set    INIT3W3,INIT3B3
                     46:        .set    INIT3L3,INIT3B3
                     47:        .set    EXP1B3,0x7fffffaa
                     48:        .set    EXP1W3,0x7fffaaaa
                     49:        .set    EXP1L3,0xaaaaaaaa
                     50:        .set    EXP2B3,0x7fffffff
                     51:        .set    EXP2W3,0x7fffffff
                     52:        .set    EXP2L3,0xffffffff
                     53:        .set    EXP3B3,0x00000000
                     54:        .set    EXP3W3,EXP3B3
                     55:        .set    EXP3L3,EXP3B3
                     56: 
                     57: /*                                                                     */
                     58: /*                                                                     */
                     59: /*                                                                     */
                     60: /*     Syst.s - constants                                              */
                     61: /*                                                                     */
                     62:        .set    IPL,8
                     63:        .set    HIGH,31
                     64:        .set    ZERO,0
                     65:        .set    ONES,0xffffffff
                     66:        .set    N,8
                     67:        .set    Z,4
                     68:        .set    V,2
                     69:        .set    C,1
                     70:        .set    T,16
                     71:        .set    IV,32
                     72:        .set    FU,64
                     73:        .set    DV,128
                     74:        .set    PSWMASK,0x003f
                     75: /*                                                                     */
                     76:        .globl  _orb3
                     77: _orb3:
                     78:        callf   $4,_setjmp      /* save context for error return */
                     79:        movab   _orb3,_stpc     /* save starting address of subtest */
                     80:        movl    $1,_subtst      /* subtest number */
                     81:        movl    $2,_no_opr      /* number of operands in use */
                     82:        movl    $MASK1B3,_opr   /* first operand */
                     83:        movl    $SOURCE1B3,_opr + 4 /* second operand */
                     84: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                     85:        movl    $MASK1B3,r3     /*mask                                  */
                     86:        movl    $SOURCE1B3,r4   /*source                                */
                     87:        movl    $INIT1B3,r5     /*destination                           */
                     88:        bispsw  $(Z|V|C)        /*overflow, Z & carry bits ON           */
                     89:        orb3    r3,r4,r5        /*try it reg reg reg                    */
                     90:        jeql    error1          /*error if Z = 1                        */
                     91:        jlss    error1          /*error if N = 1                        */
                     92:        jcc     error1          /*error if C = 0                        */
                     93:        jvs     error1          /*error if V = 1                        */
                     94:        jmp     1f
                     95: error1:        movpsl  _actual         /* actual = psl MAYBE is incorrect */
                     96:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                     97:        movl    $2,_ercode      /* error code flag failure */
                     98:        jmp     *badrtn
                     99: 1:     cmpl    r5,$0xaa        /*if dest <> expected value,            */
                    100:        jeql    o2
                    101:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    102:        movl    $1,_ercode      /* error code data miscompare */
                    103:        movl    r5,_actual      /* actual data */
                    104:        movl    $0xaa,_expected /* expected data */
                    105:        jmp     *badrtn
                    106: 
                    107: /*     Now try another mask(0x55)                                      */
                    108: /*                                                                     */
                    109: 
                    110: o2:
                    111:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    112: ao2:   callf   $4,_setjmp      /* save context for error return */
                    113:        movab   ao2,_stpc       /* save starting address of subtest */
                    114:        movl    $2,_subtst      /* subtest number */
                    115:        movl    $2,_no_opr      /* number of operands in use */
                    116:        movl    $MASK2B3,_opr   /* first operand */
                    117:        movl    $SOURCE2B3,_opr + 4 /* second operand */
                    118: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    119:        movl    $MASK2B3,r3     /*mask                                  */
                    120:        movl    $SOURCE2B3,r4   /*source                                */
                    121:        movl    $INIT1B3,dest   /*destination                           */
                    122:        bispsw  $(Z|V)          /*overflow & zero bits ON               */
                    123:        orb3    r3,r4,dest+3    /* try again reg reg mem                */
                    124:        jeql    error2          /*error if Z = 1                        */
                    125:        jlss    error2          /*error if N = 1                        */
                    126:        jcc     error2          /*error if C = 0                        */
                    127:        jvs     error2          /*error if V = 1                        */
                    128:        jmp     1f
                    129: error2:        movpsl  _actual         /* actual = psl MAYBE is incorrect */
                    130:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    131:        movl    $2,_ercode      /* error code flag failure */
                    132:        jmp     *badrtn
                    133: 1:     cmpb    dest+3,$-1      /*if dest <> expected value,            */
                    134:        jeql    o3
                    135:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    136:        movl    $1,_ercode      /* error code data miscompare */
                    137:        movl    dest,_actual    /* actual data */
                    138:        movl    $-1,_expected   /* expected data */
                    139:        jmp     *badrtn
                    140: 
                    141: 
                    142: /*     Now try another mask(0x00), source(0x00) & dest(0x00)           */
                    143: 
                    144: o3:
                    145:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    146: ao3:   callf   $4,_setjmp      /* save context for error return */
                    147:        movab   ao3,_stpc       /* save starting address of subtest */
                    148:        movl    $3,_subtst      /* subtest number */
                    149:        movl    $2,_no_opr      /* number of operands in use */
                    150:        movl    $MASK3B3,_opr   /* first operand */
                    151:        movl    $SOURCE3B3,_opr + 4 /* second operand */
                    152: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    153:        movl    $MASK3B3,r3     /*mask                                  */
                    154:        movl    $INIT3B3,r5     /*destination                           */
                    155:        bispsw  $(N|V)          /*overflow & negetive bits ON           */
                    156:        orb3    r3,$SOURCE3B3,r5/* try again reg data reg               */
                    157:        jneq    error3          /*error if Z = 0                        */
                    158:        jlss    error3          /*error if N = 1                        */
                    159:        jcc     error3          /*error if C = 0                        */
                    160:        jvs     error3          /*error if V = 1                        */
                    161:        jmp     1f
                    162: error3:        movpsl  _actual         /* actual = psl MAYBE is incorrect */
                    163:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    164:        movl    $2,_ercode      /* error code flag failure */
                    165:        jmp     *badrtn
                    166: 1:     cmpl    r5,$EXP3B3      /*if dest <> expected value,            */
                    167:        jeql    o4
                    168:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    169:        movl    $1,_ercode      /* error code data miscompare */
                    170:        movl    r5,_actual      /* actual data */
                    171:        movl    $EXP3B3,_expected       /* expected data */
                    172:        jmp     *badrtn
                    173: 
                    174: o4:
                    175:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    176: ao4:   callf   $4,_setjmp      /* save context for error return */
                    177:        movab   ao4,_stpc       /* save starting address of subtest */
                    178:        movl    $4,_subtst      /* subtest number */
                    179:        movl    $2,_no_opr      /* number of operands in use */
                    180:        movl    $MASK2B3,_opr   /* first operand */
                    181:        movl    $SOURCE2B3,_opr + 4 /* second operand */
                    182: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    183:        movl    $SOURCE2B3,r4   /*source                                */
                    184:        movl    $INIT1B3,r5     /*destination                           */
                    185:        bispsw  $(Z|V)          /*overflow & zero bits ON               */
                    186:        orb3    $MASK2B3,r4,r5  /* try again data reg reg */
                    187:        jeql    error4          /*error if Z = 1                        */
                    188:        jlss    error4          /*error if N = 1                        */
                    189:        jcc     error4          /*error if C = 0                        */
                    190:        jvs     error4          /*error if V = 1                        */
                    191:        jmp     1f
                    192: error4:        movpsl  _actual         /* actual = psl MAYBE is incorrect */
                    193:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    194:        movl    $2,_ercode      /* error code flag failure */
                    195:        jmp     *badrtn
                    196: 1:     cmpl    r5,$0xff        /*if dest <> expected value,            */
                    197:        jeql    orb3mmm
                    198:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    199:        movl    $1,_ercode      /* error code data miscompare */
                    200:        movl    r5,_actual      /* actual data */
                    201:        movl    $0xff,_expected /* expected data */
                    202:        jmp     *badrtn
                    203: 
                    204: 
                    205: /*     now try source = M, mask = M, destination = M                   */
                    206: orb3mmm:
                    207:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    208: ao5:   callf   $4,_setjmp      /* save context for error return */
                    209:        movab   ao5,_stpc       /* save starting address of subtest */
                    210:        movl    $5,_subtst      /* subtest number */
                    211:        movl    $2,_no_opr      /* number of operands in use */
                    212:        movl    $MASK1B3,_opr   /* first operand */
                    213:        movl    $SOURCE1B3,_opr + 4 /* second operand */
                    214: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    215:        movl    $MASK1B3,mask   /*mask                                  */
                    216:        movl    $SOURCE1B3,source/*source                               */
                    217:        movl    $INIT1B3,dest   /*destination                           */
                    218:        bispsw  $(Z|V|C)        /*overflow, Z & carry bits ON           */
                    219:        orb3    mask+3,source+3,dest+3/*try it mem mem mem      */
                    220:        jeql    error5          /*error if Z = 1                        */
                    221:        jgeq    error5          /*error if N = 0                        */
                    222:        jcc     error5          /*error if C = 0                        */
                    223:        jvs     error5          /*error if V = 1                        */
                    224:        jmp     1f
                    225: error5:        movpsl  _actual         /* actual = psl MAYBE is incorrect */
                    226:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    227:        movl    $2,_ercode      /* error code flag failure */
                    228:        jmp     *badrtn
                    229: 1:     cmpl    dest,$EXP1B3    /*if dest <> expected value,            */
                    230:        jeql    o6
                    231:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    232:        movl    $1,_ercode      /* error code data miscompare */
                    233:        movl    dest,_actual    /* actual data */
                    234:        movl    $EXP1B3,_expected       /* expected data */
                    235:        jmp     *badrtn
                    236: 
                    237: /*     Now try another mask(0x55)                                      */
                    238: /*                                                                     */
                    239: 
                    240: o6:
                    241:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    242: ao6:   callf   $4,_setjmp      /* save context for error return */
                    243:        movab   ao6,_stpc       /* save starting address of subtest */
                    244:        movl    $6,_subtst      /* subtest number */
                    245:        movl    $2,_no_opr      /* number of operands in use */
                    246:        movl    $MASK2B3,_opr   /* first operand */
                    247:        movl    $SOURCE2B3,_opr + 4 /* second operand */
                    248: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    249:        movl    $MASK2B3,mask   /*mask                                  */
                    250:        movl    $SOURCE2B3,source/*source                               */
                    251:        movl    $INIT1B3,r5     /*destination                           */
                    252:        bispsw  $(Z|V)          /*overflow & zero bits ON               */
                    253:        orb3    mask+3,source+3,r5/* try again mem mem reg              */
                    254:        jeql    error6          /*error if Z = 1                        */
                    255:        jgeq    error6          /*error if N = 0                        */
                    256:        jcc     error6          /*error if C = 0                        */
                    257:        jvs     error6          /*error if V = 1                        */
                    258:        jmp     1f
                    259: error6:        movpsl  _actual         /* actual = psl MAYBE is incorrect */
                    260:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    261:        movl    $2,_ercode      /* error code flag failure */
                    262:        jmp     *badrtn
                    263: 1:     movl    $0x0ffffffff,r6
                    264:        cmpl    r5,r6           /*if dest <> expected value,            */
                    265:        jeql    o7
                    266:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    267:        movl    $1,_ercode      /* error code data miscompare */
                    268:        movl    r5,_actual      /* actual data */
                    269:        movl    r6,_expected    /* expected data */
                    270:        jmp     *badrtn
                    271: /*                                                                     */
                    272: /*     Now try another mask(0x00), source(0x00), & dest(0x00)          */
                    273: /*                                                                     */
                    274: o7:
                    275:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    276: ao7:   callf   $4,_setjmp      /* save context for error return */
                    277:        movab   ao7,_stpc       /* save starting address of subtest */
                    278:        movl    $7,_subtst      /* subtest number */
                    279:        movl    $2,_no_opr      /* number of operands in use */
                    280:        movl    $MASK3B3,_opr   /* first operand */
                    281:        movl    $SOURCE3B3,_opr + 4 /* second operand */
                    282: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    283:        movl    $SOURCE3B3,r4   /*source                                */
                    284:        movl    $INIT3B3,dest   /*destination                           */
                    285:        bispsw  $(N|V)          /*overflow & negetive bits ON           */
                    286:        orb3    $MASK3B3,r4,dest+3/* try again data reg mem     */
                    287:        jneq    error7          /*error if Z = 0                        */
                    288:        jlss    error7          /*error if N = 1                        */
                    289:        jcc     error7          /*error if C = 0                        */
                    290:        jvs     error7          /*error if V = 1                        */
                    291:        jmp     1f
                    292: error7:        movpsl  _actual         /* actual = psl MAYBE is incorrect */
                    293:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    294:        movl    $2,_ercode      /* error code flag failure */
                    295:        jmp     *badrtn
                    296: 1:     movl    $0x7fffff00,r6
                    297:        cmpl    dest,r6 /*if dest <> expected value,            */
                    298:        jeql    orb3mrm
                    299:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    300:        movl    $1,_ercode      /* error code data miscompare */
                    301:        movl    dest,_actual    /* actual data */
                    302:        movl    r6,_expected    /* expected data */
                    303:        jmp     *badrtn
                    304: /*                                                                     */
                    305: /*     Now use mask = R, source & destination = M                      */
                    306: /*                                                                     */
                    307: orb3mrm:
                    308:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    309: ao8:   callf   $4,_setjmp      /* save context for error return */
                    310:        movab   ao8,_stpc       /* save starting address of subtest */
                    311:        movl    $8,_subtst      /* subtest number */
                    312:        movl    $2,_no_opr      /* number of operands in use */
                    313:        movl    $MASK1B3,_opr   /* first operand */
                    314:        movl    $SOURCE1B3,_opr + 4 /* second operand */
                    315: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    316:        movl    $MASK1B3,r3     /*mask                                  */
                    317:        movl    $SOURCE1B3,source/*source                               */
                    318:        movl    $INIT1B3,dest   /*destination                           */
                    319:        bispsw  $(Z|V|C)        /*overflow, Z & carry bits ON           */
                    320:        orb3    r3,source+3,dest+3/*try it reg mem mem  */
                    321:        jeql    error8          /*error if Z = 1                        */
                    322:        jgeq    error8          /*error if N = 0                        */
                    323:        jcc     error8          /*error if C = 0                        */
                    324:        jvs     error8          /*error if V = 1                        */
                    325:        jmp     1f
                    326: error8:        movpsl  _actual         /* actual = psl MAYBE is incorrect */
                    327:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    328:        movl    $2,_ercode      /* error code flag failure */
                    329:        jmp     *badrtn
                    330: 1:     cmpl    dest,$EXP1B3    /*if dest <> expected value,            */
                    331:        jeql    o9
                    332:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    333:        movl    $1,_ercode      /* error code data miscompare */
                    334:        movl    dest,_actual    /* actual data */
                    335:        movl    $EXP1B3,_expected       /* expected data */
                    336:        jmp     *badrtn
                    337: /*                                                                     */
                    338: /*     Now try another mask(0x55)                                      */
                    339: /*                                                                     */
                    340: o9:
                    341:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    342: ao9:   callf   $4,_setjmp      /* save context for error return */
                    343:        movab   ao9,_stpc       /* save starting address of subtest */
                    344:        movl    $9,_subtst      /* subtest number */
                    345:        movl    $2,_no_opr      /* number of operands in use */
                    346:        movl    $MASK2B3,_opr   /* first operand */
                    347:        movl    $SOURCE2B3,_opr + 4 /* second operand */
                    348: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    349:        movl    $MASK2B3,mask   /*mask                                  */
                    350:        movl    $SOURCE2B3,r4   /*source                                */
                    351:        movl    $INIT1B3,dest   /*destination                           */
                    352:        bispsw  $(Z|V)          /*overflow & zero bits ON               */
                    353:        orb3    mask+3,r4,dest+3/* try again mem reg mem                */
                    354:        jeql    error9          /*error if Z = 1                        */
                    355:        jlss    error9          /*error if N = 0                        */
                    356:        jcc     error9          /*error if C = 0                        */
                    357:        jvs     error9          /*error if V = 1                        */
                    358:        jmp     1f
                    359: error9:        movpsl  _actual         /* actual = psl MAYBE is incorrect */
                    360:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    361:        movl    $2,_ercode      /* error code flag failure */
                    362:        jmp     *badrtn
                    363: 1:     cmpl    dest,$EXP2B3    /*if dest <> expected value,            */
                    364:        jeql    o10
                    365:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    366:        movl    $1,_ercode      /* error code data miscompare */
                    367:        movl    dest,_actual    /* actual data */
                    368:        movl    $EXP2B3,_expected       /* expected data */
                    369:        jmp     *badrtn
                    370: /*                                                                     */
                    371: /*     Now try another mask(0x00), source(0x00), & dest(0x00)          */
                    372: /*                                                                     */
                    373: o10:
                    374:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    375: ao10:  callf   $4,_setjmp      /* save context for error return */
                    376:        movab   ao10,_stpc      /* save starting address of subtest */
                    377:        movl    $0xa,_subtst    /* subtest number */
                    378:        movl    $2,_no_opr      /* number of operands in use */
                    379:        movl    $MASK3B3,_opr   /* first operand */
                    380:        movl    $SOURCE3B3,_opr + 4 /* second operand */
                    381: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    382:        movl    $MASK3B3,mask   /*mask                                  */
                    383:        movl    $INIT3B3,dest   /*destination                           */
                    384:        bispsw  $(N|V)          /*overflow & negetive bits ON           */
                    385:        orb3    mask,$SOURCE3B3,dest+3  /* try again                    */
                    386:        jneq    error10         /*error if Z = 0                        */
                    387:        jlss    error10         /*error if N = 1                        */
                    388:        jcc     error10         /*error if C = 0                        */
                    389:        jvs     error10         /*error if V = 1                        */
                    390:        jmp     1f
                    391: error10: movpsl        _actual         /* actual = psl MAYBE is incorrect */
                    392:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    393:        movl    $2,_ercode      /* error code flag failure */
                    394:        jmp     *badrtn
                    395: 1:     movl    $0x7fffff00,r6
                    396:        cmpl    dest,r6         /*if dest <> expected value,            */
                    397:        jeql    orb3rmm
                    398:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    399:        movl    $1,_ercode      /* error code data miscompare */
                    400:        movl    dest,_actual    /* actual data */
                    401:        movl    r6,_expected    /* expected data */
                    402:        jmp     *badrtn
                    403: 
                    404: /*                                                                     */
                    405: /*     Now try mask = M, source = R, dest = M                          */
                    406: /*                                                                     */
                    407: orb3rmm:
                    408:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    409: ao11:  callf   $4,_setjmp      /* save context for error return */
                    410:        movab   ao11,_stpc      /* save starting address of subtest */
                    411:        movl    $0xb,_subtst    /* subtest number */
                    412:        movl    $2,_no_opr      /* number of operands in use */
                    413:        movl    $-0x56,_opr     /* first operand */
                    414:        movl    $-0x56,_opr + 4 /* second operand */
                    415: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    416:        movl    $INIT1B3,dest   /*destination                           */
                    417:        bispsw  $(Z|V|C)        /*overflow, Z & carry bits ON           */
                    418:        orb3    $-0x56,$-0x56,dest+3    /*try it data data mem  */
                    419:        jeql    error11         /*error if Z = 1                        */
                    420:        jgeq    error11         /*error if N = 0                        */
                    421:        jcc     error11         /*error if C = 0                        */
                    422:        jvs     error11         /*error if V = 1                        */
                    423:        jmp     1f
                    424: error11: movpsl        _actual         /* actual = psl MAYBE is incorrect */
                    425:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    426:        movl    $2,_ercode      /* error code flag failure */
                    427:        jmp     *badrtn
                    428: 1:     cmpl    dest,$EXP1B3    /*if dest <> expected value,            */
                    429:        jeql    o12
                    430:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    431:        movl    $1,_ercode      /* error code data miscompare */
                    432:        movl    dest,_actual    /* actual data */
                    433:        movl    $EXP1B3,_expected       /* expected data */
                    434:        jmp     *badrtn
                    435: 
                    436: /*     Now try another mask(0x55)                                      */
                    437: /*                                                                     */
                    438: 
                    439: o12:
                    440:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    441: ao12:  callf   $4,_setjmp      /* save context for error return */
                    442:        movab   ao12,_stpc      /* save starting address of subtest */
                    443:        movl    $0xb,_subtst    /* subtest number */
                    444:        movl    $2,_no_opr      /* number of operands in use */
                    445:        movl    $-0x56,_opr     /* first operand */
                    446:        movl    $-0x56,_opr + 4 /* second operand */
                    447: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    448:        movl    $MASK2B3,mask   /*mask                                  */
                    449:        movl    $SOURCE2B3,r4   /*source                                */
                    450:        movl    $INIT1B3,dest   /*destination                           */
                    451:        bispsw  $(Z|V)          /*overflow & zero bits ON               */
                    452:        orb3    mask+3,r4,dest+3        /* try again                    */
                    453:        jeql    error12         /*error if Z = 1                        */
                    454:        jlss    error12         /*error if N = 1                        */
                    455:        jcc     error12         /*error if C = 0                        */
                    456:        jvs     error12         /*error if V = 1                        */
                    457:        jmp     1f
                    458: error12: movpsl        _actual         /* actual = psl MAYBE is incorrect */
                    459:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    460:        movl    $2,_ercode      /* error code flag failure */
                    461:        jmp     *badrtn
                    462: 1:     cmpl    dest,$EXP2B3    /*if dest <> expected value,            */
                    463:        jeql    o13
                    464:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    465:        movl    $1,_ercode      /* error code data miscompare */
                    466:        movl    dest,_actual    /* actual data */
                    467:        movl    $EXP2B3,_expected       /* expected data */
                    468:        jmp     *badrtn
                    469: /*                                                                     */
                    470: /*     Now try another mask(0x00), mask(0x00), dest(0x00)              */
                    471: /*                                                                     */
                    472: o13:
                    473:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    474: ao13:  callf   $4,_setjmp      /* save context for error return */
                    475:        movab   ao13,_stpc      /* save starting address of subtest */
                    476:        movl    $0xd,_subtst    /* subtest number */
                    477:        movl    $2,_no_opr      /* number of operands in use */
                    478:        movl    $MASK3B3,_opr   /* first operand */
                    479:        movl    $SOURCE3B3,_opr + 4 /* second operand */
                    480: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    481:        movl    $MASK3B3,mask   /*mask                                  */
                    482:        movl    $SOURCE3B3,r4   /*source                                */
                    483:        movl    $INIT3B3,dest   /*destination                           */
                    484:        bispsw  $(N|V)          /*overflow & negetive bits ON           */
                    485:        orb3    mask+3,r4,dest+3        /* try again                    */
                    486:        jneq    error13         /*error if Z = 0                        */
                    487:        jlss    error13         /*error if N = 1                        */
                    488:        jcc     error13         /*error if C = 0                        */
                    489:        jvs     error13         /*error if V = 1                        */
                    490:        jmp     1f
                    491: error13: movpsl        _actual         /* actual = psl MAYBE is incorrect */
                    492:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    493:        movl    $2,_ercode      /* error code flag failure */
                    494:        jmp     *badrtn
                    495: 1:     movl    $0x7fffff00,r6
                    496:        cmpl    dest,r6         /*if dest <> expected value,            */
                    497:        jeql    orb3mrr
                    498:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    499:        movl    $1,_ercode      /* error code data miscompare */
                    500:        movl    dest,_actual    /* actual data */
                    501:        movl    r6,_expected    /* expected data */
                    502:        jmp     *badrtn
                    503: /*                                                                     */
                    504: /*     Now try mask = R, source = M, dest = R                          */
                    505: /*                                                                     */
                    506: orb3mrr:
                    507:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    508: ao14:  callf   $4,_setjmp      /* save context for error return */
                    509:        movab   ao14,_stpc      /* save starting address of subtest */
                    510:        movl    $0xe,_subtst    /* subtest number */
                    511:        movl    $2,_no_opr      /* number of operands in use */
                    512:        movl    $MASK1B3,_opr   /* first operand */
                    513:        movl    $SOURCE1B3,_opr + 4 /* second operand */
                    514: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    515:        movl    $MASK1B3,r3     /*mask                                  */
                    516:        movl    $SOURCE1B3,source/*source                               */
                    517:        movl    $INIT1B3,r5     /*destination                           */
                    518:        bispsw  $(Z|V|C)        /*overflow, Z & carry bits ON           */
                    519:        orb3    r3,source+3,r5  /*try it                                */
                    520:        jeql    error14         /*error if Z = 1                        */
                    521:        jgeq    error14         /*error if N = 0                        */
                    522:        jcc     error14         /*error if C = 0                        */
                    523:        jvs     error14         /*error if V = 1                        */
                    524:        jmp     1f
                    525: error14: movpsl        _actual         /* actual = psl MAYBE is incorrect */
                    526:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    527:        movl    $2,_ercode      /* error code flag failure */
                    528:        jmp     *badrtn
                    529: 1:     cmpl    r5,$0xffffffaa  /*if dest <> expected value,            */
                    530:        jeql    o15
                    531:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    532:        movl    $1,_ercode      /* error code data miscompare */
                    533:        movl    r5,_actual      /* actual data */
                    534:        movl    $0xffffffaa,_expected   /* expected data */
                    535:        jmp     *badrtn
                    536: 
                    537: /*     Now try another mask(0x55)                                      */
                    538: /*                                                                     */
                    539: 
                    540: o15:
                    541:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    542: ao15:  callf   $4,_setjmp      /* save context for error return */
                    543:        movab   ao15,_stpc      /* save starting address of subtest */
                    544:        movl    $0xf,_subtst    /* subtest number */
                    545:        movl    $2,_no_opr      /* number of operands in use */
                    546:        movl    $MASK2B3,_opr   /* first operand */
                    547:        movl    $SOURCE2B3,_opr + 4 /* second operand */
                    548: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    549:        movl    $MASK2B3,r3     /*mask                                  */
                    550:        movl    $SOURCE2B3,source/*source                               */
                    551:        movl    $INIT1B3,r5     /*destination                           */
                    552:        bispsw  $(Z|V)          /*overflow & zero bits ON               */
                    553:        orb3    r3,source+3,r5  /* try again                            */
                    554:        jeql    error15         /*error if Z = 1                        */
                    555:        jgeq    error15         /*error if N = 1                        */
                    556:        jcc     error15         /*error if C = 0                        */
                    557:        jvs     error15         /*error if V = 1                        */
                    558:        jmp     1f
                    559: error15: movpsl        _actual         /* actual = psl MAYBE is incorrect */
                    560:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    561:        movl    $2,_ercode      /* error code flag failure */
                    562:        jmp     *badrtn
                    563: 1:     movl    $-1,r6
                    564:        cmpl    r5,r6           /*if dest <> expected value,            */
                    565:        jeql    o16
                    566:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    567:        movl    $1,_ercode      /* error code data miscompare */
                    568:        movl    r5,_actual      /* actual data */
                    569:        movl    r6,_expected    /* expected data */
                    570:        jmp     *badrtn
                    571: /*                                                                     */
                    572: /*     Now try another mask(0x00), mask(0x00), & dest(0x00)            */
                    573: /*                                                                     */
                    574: o16:
                    575:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    576: ao16:  callf   $4,_setjmp      /* save context for error return */
                    577:        movab   ao16,_stpc      /* save starting address of subtest */
                    578:        movl    $0x10,_subtst   /* subtest number */
                    579:        movl    $2,_no_opr      /* number of operands in use */
                    580:        movl    $MASK3B3,_opr   /* first operand */
                    581:        movl    $SOURCE3B3,_opr + 4 /* second operand */
                    582: 0:     bicpsw  $PSWMASK        /*turn overflow enable bit off          */
                    583:        movl    $MASK3B3,r3     /*mask                                  */
                    584:        movl    $SOURCE3B3,source/*source                               */
                    585:        movl    $INIT3B3,r5     /*destination                           */
                    586:        bispsw  $(N|V)          /*overflow & negetive bits ON           */
                    587:        orb3    r3,source+3,r5  /* try again                            */
                    588:        jneq    error16         /*error if Z = 0                        */
                    589:        jlss    error16         /*error if N = 1                        */
                    590:        jcc     error16         /*error if C = 0                        */
                    591:        jvs     error16         /*error if V = 1                        */
                    592:        jmp     1f
                    593: error16: movpsl        _actual         /* actual = psl MAYBE is incorrect */
                    594:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    595:        movl    $2,_ercode      /* error code flag failure */
                    596:        jmp     *badrtn
                    597: 1:     cmpl    r5,$EXP3B3      /*if dest <> expected value,            */
                    598:        jeql    aldn
                    599:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
                    600:        movl    $1,_ercode      /* error code data miscompare */
                    601:        movl    r5,_actual      /* actual data */
                    602:        movl    $EXP3B3,_expected       /* expected data */
                    603:        jmp     *badrtn
                    604: 
                    605: aldn:  bbs     $0,_force_lp,0b /* if set loop on last subtest */
                    606:        jmp     *return
                    607: 
                    608: /*                                                                     */
                    609: /*     Variables                                                       */
                    610: /*                                                                     */
                    611:        .align  2
                    612: mask:  .space  4
                    613: source:        .space  4
                    614: dest:  .space  4
                    615: 
                    616: /*                                                                     */
                    617: /*     End of file                                                     */
                    618: 

unix.superglobalmegacorp.com

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