Annotation of cci/d/entry/cmp_l.s, revision 1.1

1.1     ! root        1: 
        !             2: 
        !             3: 
        !             4: 
        !             5: /*             CMPL (compare long) test                                */
        !             6: /*                                                                     */
        !             7: /*Test name = cmpl                                                     */
        !             8: /*Description =                                                                */
        !             9: /*     This test checks 'cmpl' instruction as follows:                 */
        !            10: /*     src1            src2            N Z V C (flags)                 */
        !            11: /*     ____            ____            _______________                 */
        !            12: /*     +       =       +               0 1 0 1                         */
        !            13: /*     -       =       -               0 1 0 1                         */
        !            14: /*     +       >       +               1 0 0 0                         */
        !            15: /*     -       <       -               1 0 0 0                         */
        !            16: /*     -       =       +               1 0 0 1                         */
        !            17: /*     -       >       +               1 0 0 1                         */
        !            18: /*     -       <       +               1 0 0 1                         */
        !            19: /*     +       <       -               0 0 0 0                         */
        !            20: /*     +       =       -               0 0 0 0                         */
        !            21: /*     +       >       -               0 0 0 0                         */
        !            22: /*     -       >       -               0 0 0 1                         */
        !            23: /*     +       >       +               0 0 0 1                         */
        !            24: /*     M     ----      M               -------                         */
        !            25: /*     R     ----      M               -------                         */
        !            26: /*                                                                     */
        !            27: /*                                                                     */
        !            28: /*                                                                     */
        !            29: 
        !            30: /*                                                                     */
        !            31: /*     constants definition for 'cmpx' tests.                          */
        !            32: /*                                                                     */
        !            33: 
        !            34:        .set    SRC1B1,0x7f     /*+127, highest +ve number, byte        */
        !            35:        .set    SRC1W1,0x7fff
        !            36:        .set    SRC1L1,0x7fffffff
        !            37:        .set    SRC2B1,0x5555557f
        !            38:        .set    SRC2W1,0x55557fff
        !            39:        .set    SRC2L1,SRC1L1
        !            40:        .set    SRC1B2,0xff     /*-1, highest -ve number, byte          */
        !            41:        .set    SRC1W2,0xffff
        !            42:        .set    SRC1L2,0xffffffff
        !            43:        .set    SRC2B2,SRC1B2
        !            44:        .set    SRC2W2,SRC1W2
        !            45:        .set    SRC2L2,SRC1L2
        !            46:        .set    SRC1B3,0x01
        !            47:        .set    SRC1W3,0X0001
        !            48:        .set    SRC1L3,0x00000001
        !            49:        .set    SRC2B3,0x02
        !            50:        .set    SRC2W3,0x0002
        !            51:        .set    SRC2L3,0x00000002
        !            52:        .set    SRC1B4,0xfe     /*-2                                    */
        !            53:        .set    SRC1W4,0xfffe
        !            54:        .set    SRC1L4,0xfffffffe
        !            55:        .set    SRC2B4,0xff     /*-1                                    */
        !            56:        .set    SRC2W4,0xffff
        !            57:        .set    SRC2L4,0xffffffff
        !            58:        .set    SRC1B5,0x81     /*-127                                  */
        !            59:        .set    SRC1W5,0x8001
        !            60:        .set    SRC1L5,0x80000001
        !            61:        .set    SRC2B5,0x7f     /*+127                                  */
        !            62:        .set    SRC2W5,0x7fff
        !            63:        .set    SRC2L5,0x7fffffff
        !            64:        .set    SRC1B6,SRC1B4   /*-2                                    */
        !            65:        .set    SRC1W6,SRC1W4
        !            66:        .set    SRC1L6,SRC1L4
        !            67:        .set    SRC2B6,SRC1B3   /*+1                                    */
        !            68:        .set    SRC2W6,SRC1W3
        !            69:        .set    SRC2L6,SRC1L3
        !            70:        .set    SRC1B7,SRC2B4   /*-1                                    */
        !            71:        .set    SRC1W7,SRC2W4
        !            72:        .set    SRC1L7,SRC2L4
        !            73:        .set    SRC2B7,SRC2B3   
        !            74:        .set    SRC2W7,SRC2W3   
        !            75:        .set    SRC2L7,SRC2L3   
        !            76:        .set    SRC1B8,SRC2B6   /*+1*/
        !            77:        .set    SRC1W8,SRC2W6
        !            78:        .set    SRC1L8,SRC2L6
        !            79:        .set    SRC2B8,SRC1B4   /*-2*/
        !            80:        .set    SRC2W8,SRC1W4
        !            81:        .set    SRC2L8,SRC1L4
        !            82:        .set    SRC1B9,SRC1B1   /*127*/
        !            83:        .set    SRC1W9,SRC1W1
        !            84:        .set    SRC1L9,SRC1L1
        !            85:        .set    SRC2B9,SRC1B5   /*-127*/
        !            86:        .set    SRC2W9,SRC1W5
        !            87:        .set    SRC2L9,SRC1L5
        !            88:        .set    SRC1B10,SRC2B3  /*2*/
        !            89:        .set    SRC1W10,SRC2W3
        !            90:        .set    SRC1L10,SRC2L3
        !            91:        .set    SRC2B10,SRC1B2  /*-1*/
        !            92:        .set    SRC2W10,SRC1W2
        !            93:        .set    SRC2L10,SRC1L2
        !            94:        .set    SRC1B11,SRC1B2  /*-1*/
        !            95:        .set    SRC1W11,SRC1W2
        !            96:        .set    SRC1L11,SRC1L2
        !            97:        .set    SRC2B11,SRC1B4  /*-2*/
        !            98:        .set    SRC2W11,SRC1W4
        !            99:        .set    SRC2L11,SRC1L4
        !           100:        .set    SRC1B12,SRC2B3  /*2*/
        !           101:        .set    SRC1W12,SRC2W3
        !           102:        .set    SRC1L12,SRC2L3
        !           103:        .set    SRC2B12,SRC1B3  /*1*/
        !           104:        .set    SRC2W12,SRC1W3
        !           105:        .set    SRC2L12,SRC1L3
        !           106: 
        !           107: /*                                                                     */
        !           108: /*     Syst.s - Constants                                              */
        !           109: /*                                                                     */
        !           110:        .set    IPL,8
        !           111:        .set    HIGH,31
        !           112:        .set    ZERO,0
        !           113:        .set    ONES,0xffffffff
        !           114:        .set    N,8
        !           115:        .set    Z,4
        !           116:        .set    V,2
        !           117:        .set    C,1
        !           118:        .set    T,16
        !           119:        .set    IV,32
        !           120:        .set    FU,64
        !           121:        .set    DV,128
        !           122:        .set    PSWMASK,0x003f
        !           123: /*                                                                     */
        !           124: /*     t1loc = M, t2loc = M                                            */
        !           125: /*                                                                     */
        !           126:        .globl  _cmp_l
        !           127: _cmp_l:
        !           128:        callf   $4,_setjmp      /* save context for error return */
        !           129:        movab   _cmp_l,_stpc    /* save address of subtest start */
        !           130:        movl    $1,_subtst      /* subtest number */
        !           131:        movl    $2,_no_opr      /* number of operands in use */
        !           132:        movl    $SRC1L1,_opr    /* first operand */
        !           133:        movl    $SRC2L1,_opr + 4 /* second operand */
        !           134: 0:     movl    $SRC1L1,tloc1   /*tloc1 = source1                       */
        !           135:        movl    $SRC2L1,tloc2   /*tloc2 = source2                       */
        !           136:        bicpsw  $PSWMASK        /*disable overflow & other enable bits  */
        !           137:        bispsw  $(N|V|C)        /*turn neg, overflow, & carry ON        */
        !           138:        cmpl    tloc1,tloc2     /*execute compare mem to mem            */
        !           139:        bneq    error1          /*error if Z = 0                        */
        !           140:        blss    error1          /*error if N = 1                        */
        !           141:        bvs     error1          /*error if V = 1                        */
        !           142:        bcc     error1          /*error if C = 0                        */
        !           143:        jmp     1f
        !           144: error1:        movpsl  _actual         /* actual data = psl MAYBE is incorrect */
        !           145:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           146:        movl    $2,_ercode      /* error code flag failure */
        !           147:        jmp     *badrtn
        !           148: 1:     bicpsw  $Z              /*clear Z flag                          */
        !           149:        cmpl    $SRC1L1,tloc1   /*check tloc1 & tlco2 unchanged         */
        !           150:        jeql    1f
        !           151:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           152:        movl    $3,_ercode      /* error code operand was changed */ 
        !           153:        movl    tloc1,_actual   /* actual data */
        !           154:        movl    $SRC1L1,_expected /* expected data */
        !           155:        jmp     *badrtn
        !           156: 1:     bicpsw  $Z
        !           157:        cmpl    $SRC2L1,tloc2
        !           158:        jeql    c2
        !           159:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           160:        movl    $3,_ercode      /* error code operand was changed */ 
        !           161:        movl    tloc2,_actual   /* actual data */
        !           162:        movl    $SRC2L1,_expected /* expected data */
        !           163:        jmp     *badrtn
        !           164: /*                                                                     */
        !           165: /*     different patterns for source1 & source2                        */
        !           166: /*                                                                     */
        !           167: c2:
        !           168:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           169: ac2:   callf   $4,_setjmp      /* save context for error return */
        !           170:        movab   ac2,_stpc       /* save address of subtest start */
        !           171:        movl    $2,_subtst      /* subtest number */
        !           172:        movl    $2,_no_opr      /* number of operands in use */
        !           173:        movl    $SRC1L2,_opr    /* first operand */
        !           174:        movl    $SRC2L2,_opr + 4 /* second operand */
        !           175: 0:     bicpsw  $PSWMASK        /*disable overflow & other enable bits  */
        !           176:        movl    $SRC1L2,r3      /*tloc1 = source1                       */
        !           177:        movl    $SRC2L2,tloc2   /*tloc2 = source2                       */
        !           178:        bispsw  $(N|V|C)        /*turn neg, overflow, & carry ON        */
        !           179:        cmpl    r3,tloc2        /*execute compare reg to mem            */
        !           180:        bneq    error2          /*error if Z = 0                        */
        !           181:        blss    error2          /*error if N = 1                        */
        !           182:        bvs     error2          /*error if V = 1                        */
        !           183:        bcc     error2          /*error if C = 0                        */
        !           184:        jmp     cmplnc
        !           185: error2:        movpsl  _actual         /* actual data = psl MAYBE is incorrect */
        !           186:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           187:        movl    $2,_ercode      /* error code flag failure */
        !           188:        jmp     *badrtn
        !           189: 
        !           190: cmplnc:
        !           191: 
        !           192:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           193: ac3:   callf   $4,_setjmp      /* save context for error return */
        !           194:        movab   ac3,_stpc       /* save address of subtest start */
        !           195:        movl    $3,_subtst      /* subtest number */
        !           196:        movl    $2,_no_opr      /* number of operands in use */
        !           197:        movl    $SRC1L3,_opr    /* first operand */
        !           198:        movl    $SRC2L3,_opr + 4 /* second operand */
        !           199: 0:     bicpsw  $PSWMASK        /*disable overflow & other enable bits  */
        !           200:        movl    $SRC1L3,tloc1   /*tloc1 = source1                       */
        !           201:        movl    $SRC2L3,r4      /*tloc2 = source2                       */
        !           202:        bispsw  $(Z|V)          /*turn overflow, & zero ON              */
        !           203:        cmpl    tloc1,r4        /*execute compare memory to reg4        */
        !           204:        beql    error3          /*error if Z = 1                        */
        !           205:        bgeq    error3          /*error if N = 0                        */
        !           206:        bvs     error3          /*error if V = 1                        */
        !           207:        bcs     error3          /*error if C = 1                        */
        !           208:        jmp     c4
        !           209: error3:        movpsl  _actual         /* actual data = psl MAYBE is incorrect */
        !           210:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           211:        movl    $2,_ercode      /* error code flag failure */
        !           212:        jmp     *badrtn
        !           213: /*                                                                     */
        !           214: /*     different patterns for source1 & source2                        */
        !           215: /*                                                                     */
        !           216: c4:
        !           217:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           218: ac4:   callf   $4,_setjmp      /* save context for error return */
        !           219:        movab   ac4,_stpc       /* save address of subtest start */
        !           220:        movl    $4,_subtst      /* subtest number */
        !           221:        movl    $2,_no_opr      /* number of operands in use */
        !           222:        movl    $SRC1L4,_opr    /* first operand */
        !           223:        movl    $SRC2L4,_opr + 4 /* second operand */
        !           224: 0:     bicpsw  $PSWMASK        /*disable overflow & other enable bits  */
        !           225:        movl    $SRC1L4,r3      /*tloc1 = source1                       */
        !           226:        movl    $SRC2L4,r4      /*tloc2 = source2                       */
        !           227:        bispsw  $(Z|V)          /*turn overflow, & zero ON              */
        !           228:        cmpl    r3,r4           /*execute compare reg to reg            */
        !           229:        beql    error4          /*error if Z = 1                        */
        !           230:        bgeq    error4          /*error if N = 0                        */
        !           231:        bvs     error4          /*error if V = 1                        */
        !           232:        bcs     error4          /*error if C = 1                        */
        !           233:        jmp     cmpln
        !           234: error4:        movpsl  _actual         /* actual data = psl MAYBE is incorrect */
        !           235:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           236:        movl    $2,_ercode      /* error code flag failure */
        !           237:        jmp     *badrtn
        !           238: 
        !           239: 
        !           240: cmpln:
        !           241:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           242: ac5:   callf   $4,_setjmp      /* save context for error return */
        !           243:        movab   ac5,_stpc       /* save address of subtest start */
        !           244:        movl    $5,_subtst      /* subtest number */
        !           245:        movl    $2,_no_opr      /* number of operands in use */
        !           246:        movl    $SRC1L5,_opr    /* first operand */
        !           247:        movl    $SRC2L5,_opr + 4 /* second operand */
        !           248: 0:     bicpsw  $PSWMASK        /*disable overflow & other enable bits  */
        !           249:        movl    $SRC1L5,tloc1   /*tloc1 = source1                       */
        !           250:        movl    $SRC2L5,tloc2   /*tloc2 = source2                       */
        !           251:        bispsw  $(Z|V|C)        /*turn zero, overflow, & carry ON       */
        !           252:        cmpl    tloc1,tloc2     /*execute compare                       */
        !           253:        beql    error5          /*error if Z = 1                        */
        !           254:        bgeq    error5          /*error if N = 0                        */
        !           255:        bvs     error5          /*error if V = 1                        */
        !           256:        bcc     error5          /*error if C = 0                        */
        !           257:        jmp     c6
        !           258: error5:        movpsl  _actual         /* actual data = psl MAYBE is incorrect */
        !           259:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           260:        movl    $2,_ercode      /* error code flag failure */
        !           261:        jmp     *badrtn
        !           262: /*                                                                     */
        !           263: /*     different patterns for source1 & source2                        */
        !           264: /*                                                                     */
        !           265: c6:
        !           266:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           267: ac6:   callf   $4,_setjmp      /* save context for error return */
        !           268:        movab   ac6,_stpc       /* save address of subtest start */
        !           269:        movl    $6,_subtst      /* subtest number */
        !           270:        movl    $2,_no_opr      /* number of operands in use */
        !           271:        movl    $SRC1L6,_opr    /* first operand */
        !           272:        movl    $SRC2L6,_opr + 4 /* second operand */
        !           273: 0:     bicpsw  $PSWMASK        /*disable overflow & other enable bits  */
        !           274:        movl    $SRC1L6,tloc1   /*tloc1 = source1                       */
        !           275:        movl    $SRC2L6,tloc2   /*tloc2 = source2                       */
        !           276:        bispsw  $(Z|V|C)        /*turn zero, overflow, & carry ON       */
        !           277:        cmpl    tloc1,tloc2     /*execute compare                       */
        !           278:        beql    error6          /*error if Z = 1                        */
        !           279:        bgeq    error6          /*error if N = 0                        */
        !           280:        bvs     error6          /*error if V = 1                        */
        !           281:        bcc     error6          /*error if C = 0                        */
        !           282:        jmp     c7
        !           283: error6:        movpsl  _actual         /* actual data = psl MAYBE is incorrect */
        !           284:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           285:        movl    $2,_ercode      /* error code flag failure */
        !           286:        jmp     *badrtn
        !           287: /*                                                                     */
        !           288: /*     different patterns for source1 & source2                        */
        !           289: /*                                                                     */
        !           290: c7:
        !           291:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           292: ac7:   callf   $4,_setjmp      /* save context for error return */
        !           293:        movab   ac7,_stpc       /* save address of subtest start */
        !           294:        movl    $7,_subtst      /* subtest number */
        !           295:        movl    $2,_no_opr      /* number of operands in use */
        !           296:        movl    $SRC1L7,_opr    /* first operand */
        !           297:        movl    $SRC2L7,_opr + 4 /* second operand */
        !           298: 0:     bicpsw  $PSWMASK        /*disable overflow & other enable bits  */
        !           299:        movl    $SRC1L7,tloc1   /*tloc1 = source1                       */
        !           300:        movl    $SRC2L7,tloc2   /*tloc2 = source2                       */
        !           301:        bispsw  $(Z|V|C)        /*turn zero, overflow, & carry ON       */
        !           302:        cmpl    tloc1,tloc2     /*execute compare                       */
        !           303:        beql    error7          /*error if Z = 1                        */
        !           304:        bgeq    error7          /*error if N = 0                        */
        !           305:        bvs     error7          /*error if V = 1                        */
        !           306:        bcc     error7          /*error if C = 0                        */
        !           307:        jmp     cmplc
        !           308: error7:        movpsl  _actual         /* actual data = psl MAYBE is incorrect */
        !           309:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           310:        movl    $2,_ercode      /* error code flag failure */
        !           311:        jmp     *badrtn
        !           312: 
        !           313: cmplc:
        !           314:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           315: ac8:   callf   $4,_setjmp      /* save context for error return */
        !           316:        movab   ac8,_stpc       /* save address of subtest start */
        !           317:        movl    $8,_subtst      /* subtest number */
        !           318:        movl    $2,_no_opr      /* number of operands in use */
        !           319:        movl    $SRC1L8,_opr    /* first operand */
        !           320:        movl    $SRC2L8,_opr + 4 /* second operand */
        !           321: 0:     bicpsw  $PSWMASK        /*disable overflow & other enable bits  */
        !           322:        movl    $SRC1L8,tloc1   /*tloc1 = source1                       */
        !           323:        movl    $SRC2L8,tloc2   /*tloc2 = source2                       */
        !           324:        bispsw  $(Z|V|N)        /*turn zero, overflow, & neg ON         */
        !           325:        cmpl    tloc1,tloc2     /*execute compare                       */
        !           326:        beql    error8          /*error if Z = 1                        */
        !           327:        blss    error8          /*error if N = 1                        */
        !           328:        bvs     error8          /*error if V = 1                        */
        !           329:        bcs     error8          /*error if C = 1                        */
        !           330:        jmp     c9
        !           331: error8:        movpsl  _actual         /* actual data = psl MAYBE is incorrect */
        !           332:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           333:        movl    $2,_ercode      /* error code flag failure */
        !           334:        jmp     *badrtn
        !           335: /*                                                                     */
        !           336: /*     different patterns for source1 & source2                        */
        !           337: /*                                                                     */
        !           338: c9:
        !           339:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           340: ac9:   callf   $4,_setjmp      /* save context for error return */
        !           341:        movab   ac9,_stpc       /* save address of subtest start */
        !           342:        movl    $9,_subtst      /* subtest number */
        !           343:        movl    $2,_no_opr      /* number of operands in use */
        !           344:        movl    $SRC1L9,_opr    /* first operand */
        !           345:        movl    $SRC2L9,_opr + 4 /* second operand */
        !           346: 0:     bicpsw  $PSWMASK        /*disable overflow & other enable bits  */
        !           347:        movl    $SRC1L9,tloc1   /*tloc1 = source1                       */
        !           348:        movl    $SRC2L9,tloc2   /*tloc2 = source2                       */
        !           349:        bispsw  $(Z|V|N)        /*turn zero, overflow, & neg ON         */
        !           350:        cmpl    tloc1,tloc2     /*execute compare                       */
        !           351:        beql    error9          /*error if Z = 1                        */
        !           352:        blss    error9          /*error if N = 1                        */
        !           353:        bvs     error9          /*error if V = 1                        */
        !           354:        bcs     error9          /*error if C = 1                        */
        !           355:        jmp     c10
        !           356: error9:        movpsl  _actual         /* actual data = psl MAYBE is incorrect */
        !           357:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           358:        movl    $2,_ercode      /* error code flag failure */
        !           359:        jmp     *badrtn
        !           360: /*                                                                     */
        !           361: /*     different patterns for source1 & source2                        */
        !           362: /*                                                                     */
        !           363: c10:
        !           364:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           365: ac10:  callf   $4,_setjmp      /* save context for error return */
        !           366:        movab   ac10,_stpc      /* save address of subtest start */
        !           367:        movl    $0xa,_subtst    /* subtest number */
        !           368:        movl    $2,_no_opr      /* number of operands in use */
        !           369:        movl    $SRC1L10,_opr   /* first operand */
        !           370:        movl    $SRC2L10,_opr + 4 /* second operand */
        !           371: 0:     bicpsw  $PSWMASK        /*disable overflow & other enable bits  */
        !           372:        movl    $SRC1L10,tloc1  /*tloc1 = source1                       */
        !           373:        movl    $SRC2L10,tloc2  /*tloc2 = source2                       */
        !           374:        bispsw  $(Z|V|N)        /*turn zero, overflow, & neg ON         */
        !           375:        cmpl    tloc1,tloc2     /*execute compare                       */
        !           376:        jeql    error10         /*error if Z = 1                        */
        !           377:        jlss    error10         /*error if N = 1                        */
        !           378:        jvs     error10         /*error if V = 1                        */
        !           379:        jcs     error10         /*error if C = 1                        */
        !           380:        jmp     cmploff
        !           381: error10: movpsl        _actual         /* actual data = psl MAYBE is incorrect */
        !           382:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           383:        movl    $2,_ercode      /* error code flag failure */
        !           384:        jmp     *badrtn
        !           385: 
        !           386: cmploff:
        !           387:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           388: ac11:  callf   $4,_setjmp      /* save context for error return */
        !           389:        movab   ac11,_stpc      /* save address of subtest start */
        !           390:        movl    $0xb,_subtst    /* subtest number */
        !           391:        movl    $2,_no_opr      /* number of operands in use */
        !           392:        movl    $SRC1L11,_opr   /* first operand */
        !           393:        movl    $SRC2L11,_opr + 4 /* second operand */
        !           394: 0:     bicpsw  $PSWMASK        /*disable overflow & other enable bits  */
        !           395:        movl    $SRC1L11,tloc1  /*tloc1 = source1                       */
        !           396:        movl    $SRC2L11,tloc2  /*tloc2 = source2                       */
        !           397:        bispsw  $(Z|N|V|C)      /*turn Z, neg, overflow, & carry ON     */
        !           398:        cmpl    tloc1,tloc2     /*execute compare                       */
        !           399:        beql    error11         /*error if Z = 1                        */
        !           400:        blss    error11         /*error if N = 1                        */
        !           401:        bvs     error11         /*error if V = 1                        */
        !           402:        bcc     error11         /*error if C = 0                        */
        !           403:        jmp     cmploff1
        !           404:        jmp     cmploff
        !           405: error11: movpsl        _actual         /* actual data = psl MAYBE is incorrect */
        !           406:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           407:        movl    $2,_ercode      /* error code flag failure */
        !           408:        jmp     *badrtn
        !           409: 
        !           410: cmploff1:
        !           411:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           412: ac12:  callf   $4,_setjmp      /* save context for error return */
        !           413:        movab   ac12,_stpc      /* save address of subtest start */
        !           414:        movl    $0xc,_subtst    /* subtest number */
        !           415:        movl    $2,_no_opr      /* number of operands in use */
        !           416:        movl    $SRC1L12,_opr   /* first operand */
        !           417:        movl    $SRC2L12,_opr + 4 /* second operand */
        !           418: 0:     bicpsw  $PSWMASK        /*disable overflow & other enable bits  */
        !           419:        movl    $SRC1L12,tloc1  /*tloc1 = source1                       */
        !           420:        movl    $SRC2L12,tloc2  /*tloc2 = source2                       */
        !           421:        bispsw  $(Z|N|V|C)      /*turn Z, neg, overflow, & carry ON     */
        !           422:        cmpl    tloc1,tloc2     /*execute compare                       */
        !           423:        beql    error12         /*error if Z = 1                        */
        !           424:        blss    error12         /*error if N = 1                        */
        !           425:        bvs     error12         /*error if V = 1                        */
        !           426:        bcc     error12         /*error if C = 0                        */
        !           427:        jmp     aldn
        !           428: error12: movpsl        _actual         /* actual data = psl MAYBE is incorrect */
        !           429:        bbs     $0,_scoplp,0b   /* if set scope loop on error */
        !           430:        movl    $2,_ercode      /* error code flag failure */
        !           431:        jmp     *badrtn
        !           432: aldn:  bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           433:        jmp     *return         /* good, return to monitor */
        !           434: 
        !           435: 
        !           436: /*     Variables       */
        !           437:        .align  2
        !           438: tloc1: .space  4
        !           439: tloc2: .space  4
        !           440: 
        !           441: /*     end of file     */

unix.superglobalmegacorp.com

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