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

1.1     ! root        1: 
        !             2: 
        !             3: /*             ADDA (add address) test                                 */
        !             4: /*                                                                     */
        !             5: /*Test name = adda                                                     */
        !             6: /*Description =                                                                */
        !             7: /*     This test checks 'adda' instruction as follows:         */
        !             8: /*add          sum             result          N Z V C (flags)         */
        !             9: /*___          ___             ______          _______________         */
        !            10: /*0x7fffffff   0x7fffffff      0xfffffffe      0 0 1 0                 */
        !            11: /*0x80000000   0x80000000      0x00000000      0 1 1 1                 */
        !            12: /*0x80000000   0xffffffff      0x7fffffff      0 0 1 1                 */
        !            13: /*0x80000001   0x7fffffff      0x00000000      0 1 0 1                 */
        !            14: /*0x80000000   0x7fffffff      0xffffffff      1 0 0 0                 */
        !            15: /*0xc0000000   0xc0000000      0x80000000      1 0 0 1                 */
        !            16: /*     Note: the flags should not change.                              */
        !            17: /*                                                                     */
        !            18: /*     constants definition for 'addx' tests.                          */
        !            19: /*                                                                     */
        !            20: 
        !            21:        .set    A1B1,0x1111107f/*+127, highest +ve number, byte */
        !            22:        .set    A1W1,0x11107fff
        !            23:        .set    A1L1,0x7fffffff
        !            24:        .set    A2B1,0x1111107f/* +127 */
        !            25:        .set    A2W1,0x11107fff
        !            26:        .set    A2L1,A1L1
        !            27:        .set    RB1,0x111110fe
        !            28:        .set    RW1,0x1110fffe
        !            29:        .set    RL1,0xfffffffe
        !            30:        .set    A1B2,0x11111080/* -128 */
        !            31:        .set    A1W2,0x11108000
        !            32:        .set    A1L2,0x80000000
        !            33:        .set    A2B2,0x11111080/* -128 */
        !            34:        .set    A2W2,0x11118000
        !            35:        .set    A2L2,0X80000000
        !            36:        .set    RB2,0x11111000/* 0 */
        !            37:        .set    RW2,0x11100000
        !            38:        .set    RL2,0x00000000
        !            39:        .set    A1B3,0X80       /* -128 */
        !            40:        .set    A1W3,0x8000
        !            41:        .set    A1L3,0x80000000
        !            42:        .set    A2B3,0xff       /* -1 */
        !            43:        .set    A2W3,0xffff
        !            44:        .set    A2L3,0xffffffff
        !            45:        .set    RB3,0x0000007f
        !            46:        .set    RW3,0X00007fff
        !            47:        .set    RL3,0X7fffffff
        !            48:        .set    A1B4,0x81       /* -127 */
        !            49:        .set    A1W4,0x8001
        !            50:        .set    A1L4,0x80000001
        !            51:        .set    A2B4,0x7f       /* 127 */
        !            52:        .set    A2W4,0x7fff
        !            53:        .set    A2L4,0x7fffffff
        !            54:        .set    RB4,0           /* 0 */
        !            55:        .set    RW4,RB4
        !            56:        .set    RL4,RB4
        !            57:        .set    A1B5,A1B3       /* -128 */
        !            58:        .set    A1W5,A1W3
        !            59:        .set    A1L5,A1L3
        !            60:        .set    A2B5,A2B4       /* 127 */
        !            61:        .set    A2W5,A2W4
        !            62:        .set    A2L5,A2L4
        !            63:        .set    RB5,0xff                /* -1 */
        !            64:        .set    RW5,0xffff
        !            65:        .set    RL5,0xffffffff
        !            66:        .set    A1B6,0xc0       /* -64 */
        !            67:        .set    A1W6,0xc000
        !            68:        .set    A1L6,0xc0000000
        !            69:        .set    A2B6,A1B6       /* -64 */
        !            70:        .set    A2W6,A1W6
        !            71:        .set    A2L6,A1L6
        !            72:        .set    RB6,0x00000080  /* -128 */
        !            73:        .set    RW6,0x00008000
        !            74:        .set    RL6,0X80000000
        !            75: 
        !            76:        .set    INITB,0x11111055/* initialization values for 3 operand */
        !            77:        .set    INITW,0x11105555
        !            78:        .set    INITL,0X55555555
        !            79:        
        !            80: /*                                                                     */
        !            81: /*     Syst.s - Constants                                              */
        !            82: /*                                                                     */
        !            83:        .set    IPL,8
        !            84:        .set    HIGH,31
        !            85:        .set    ZERO,0
        !            86:        .set    ONES,0xffffffff
        !            87:        .set    N,8
        !            88:        .set    Z,4
        !            89:        .set    V,2
        !            90:        .set    C,1
        !            91:        .set    T,16
        !            92:        .set    IV,32
        !            93:        .set    FU,64
        !            94:        .set    DV,128
        !            95:        .set    PSWMASK,0x003f
        !            96: 
        !            97:        .globl  _add_a
        !            98: _add_a:
        !            99: al1:
        !           100:        callf   $4,_setjmp      /* save context for error return */
        !           101:        movab   al1,_stpc       /* save subtest program counter */
        !           102:        movl    $1,_subtst      /* save subtest number */       
        !           103:        movl    $2,_no_opr      /* number of operands in use */
        !           104:        movl    $A1L1,_opr      /* first operand */
        !           105:        movl    $A2L1,_opr + 4  /* second operand */
        !           106: 0:
        !           107:        movl    $A1L1,add       /*first operand                         */
        !           108:        movl    $A2L1,sum       /*second operand                        */
        !           109:        bicpsw  $PSWMASK        /*PSW = 0                               */
        !           110:        bispsw  $(N|Z|C)        /* these flags ON                       */
        !           111:        adda    add,sum         /* try 'adda' instruction mem to mem    */
        !           112:        bicpsw  $Z
        !           113:        movl    $RL1,r4
        !           114:        cmpl    $RL1,sum        /*sum = expected ?                      */
        !           115:        jeql    al1r
        !           116:        bbs     $0,_scoplp,0b   /* if set loop on error */
        !           117:        movl    $1,_ercode      /* error code data miscompare */
        !           118:        movl    sum,_actual     /* actual data */
        !           119:        movl    $RL1,_expected  /* expected data */
        !           120:        jmp     *badrtn
        !           121: 
        !           122: 
        !           123: /*     reverse operands mem to reg     */
        !           124: 
        !           125: al1r:
        !           126:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           127: aal1r: callf   $4,_setjmp      /* save context for error return */
        !           128:        movab   aal1r,_stpc     /* save subtest program counter */
        !           129:        movl    $2,_subtst      /* save subtest number */       
        !           130: 0:     movl    $A2L1,add       /*first operand                         */
        !           131:        movl    $A1L1,r5        /*second operand                        */
        !           132:        bicpsw  $PSWMASK        /*PSW = 0                               */
        !           133:        bispsw  $(N|Z|C)        /* these flags ON                       */
        !           134:        adda    add,r5          /* try 'add' instruction mem to reg     */
        !           135:        jgtr    e2              /*error if N = 0                        */
        !           136:        jneq    e2              /*error if Z = 0                        */
        !           137:        jvs     e2              /*error if V = 1                        */
        !           138:        jcc     e2              /*error if C = 0                        */
        !           139:        bicpsw  $Z
        !           140:        movl    $RL1,r4
        !           141:        cmpl    $RL1,r5         /*sum = expected ?                      */
        !           142:        jeql    al2             /* if correct continue */
        !           143:        movl    $1,_ercode      /* error code data miscompare */
        !           144:        bbs     $0,_scoplp,0b   /* if set loop on error */
        !           145:        movl    $1,_ercode      /* error code data miscompare */
        !           146:        movl    r5,_actual      /* actual data */
        !           147:        movl    $RL1,_expected  /* expected data */
        !           148:        jmp     *badrtn
        !           149: e2:    movpsl  _actual         /* actual = psl */
        !           150:        bbs     $0,_scoplp,0b   /* if set loop on error */
        !           151:        movl    $2,_ercode      /* error code flag failure */
        !           152:        jmp     *badrtn
        !           153: 
        !           154: al2:
        !           155:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           156: aal2:  callf   $4,_setjmp      /* save context for error return */
        !           157:        movab   aal2,_stpc      /* save subtest program counter */
        !           158:        movl    $3,_subtst      /* save subtest number */       
        !           159:        movl    $2,_no_opr      /* number of operands in use */
        !           160:        movl    $A1L2,_opr      /* first operand */
        !           161:        movl    $A2L2,_opr + 4  /* second operand */
        !           162: 0:     movl    $A1L2,r5        /*first operand                         */
        !           163:        movl    $A2L2,sum       /*second operand                        */
        !           164:        bicpsw  $PSWMASK        /*PSW = 0                               */
        !           165:        bispsw  $N              /* these flags ON                       */
        !           166:        adda    r5,sum  /* try 'add' instruction reg to memory          */
        !           167:        jgtr    e3              /*error if N = 0                        */
        !           168:        jeql    e3              /*error if Z = 1                        */
        !           169:        jvs     e3              /*error if V = 1                        */
        !           170:        jcs     e3              /*error if C = 1                        */
        !           171:        bicpsw  $Z
        !           172:        cmpl    $RL2,sum        /*sum = expected ?                      */
        !           173:        jeql    al2r            /* if correct continue */
        !           174:        movl    $1,_ercode      /* error code data miscompare */
        !           175:        bbs     $0,_scoplp,0b   /* if set loop on error */
        !           176:        movl    sum,_actual     /* actual data */
        !           177:        movl    $RL2,_expected  /* expected data */
        !           178:        jmp     *badrtn
        !           179: e3:    movpsl  _actual         /* actual = psl */
        !           180:        bbs     $0,_scoplp,0b   /* if set loop on error */
        !           181:        movl    $2,_ercode      /* error code flag failure */
        !           182:        jmp     *badrtn
        !           183: 
        !           184: /*     reverse operands register to register operation                 */
        !           185: 
        !           186: al2r:
        !           187:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           188: aal2r: callf   $4,_setjmp      /* save context for error return */
        !           189:        movab   aal2r,_stpc     /* save subtest program counter */
        !           190:        movl    $4,_subtst      /* save subtest number */       
        !           191: 0:     movl    $A2L2,r5        /*first operand                         */
        !           192:        movl    $A1L2,r6        /*second operand                        */
        !           193:        bicpsw  $PSWMASK        /*PSW = 0                               */
        !           194:        bispsw  $N              /* these flags ON                       */
        !           195:        adda    r5,r6           /* try 'add' instruction                */
        !           196:        jgtr    e4              /*error if N = 0                        */
        !           197:        jeql    e4              /*error if Z = 1                        */
        !           198:        jvs     e4              /*error if V = 1                        */
        !           199:        jcs     e4              /*error if C = 1                        */
        !           200:        bicpsw  $Z
        !           201:        movl    $RL2,r4
        !           202:        cmpl    $RL2,r6         /*sum = expected ?                      */
        !           203:        jeql    al3             /* if correct continue */
        !           204:        movl    $1,_ercode      /* error code data miscompare */
        !           205:        bbs     $0,_scoplp,0b   /* if set loop on error */
        !           206:        movl    r6,_actual      /* actual data */
        !           207:        movl    $RL2,_expected  /* expected data */
        !           208:        jmp     *badrtn
        !           209: e4:    movpsl  _actual         /* actual = psl */
        !           210:        bbs     $0,_scoplp,0b   /* if set loop on error */
        !           211:        movl    $2,_ercode      /* error code flag failure */
        !           212:        jmp     *badrtn
        !           213: 
        !           214: 
        !           215: 
        !           216: al3:
        !           217:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           218: aal3:  callf   $4,_setjmp      /* save context for error return */
        !           219:        movab   aal3,_stpc      /* save subtest program counter */
        !           220:        movl    $5,_subtst      /* save subtest number */       
        !           221:        movl    $2,_no_opr      /* number of operands in use */
        !           222:        movl    $A1L3,_opr      /* first operand */
        !           223:        movl    $A2L3,_opr + 4  /* second operand */
        !           224: 0:     movl    $A1L3,add       /*first operand                         */
        !           225:        movl    $A2L3,sum       /*second operand                        */
        !           226:        bicpsw  $PSWMASK        /*PSW = 0                               */
        !           227:        bispsw  $(N|Z)          /* these flags ON                       */
        !           228:        adda    add,sum /* try 'add' instruction                */
        !           229:        jgtr    e5              /*error if N = 0                        */
        !           230:        jneq    e5              /*error if Z = 0                        */
        !           231:        jvs     e5              /*error if V = 1                        */
        !           232:        jcs     e5              /*error if C = 1                        */
        !           233:        bicpsw  $Z
        !           234:        movl    $RL3,r4
        !           235:        cmpl    r4,sum          /*sum = expected ?                      */
        !           236:        jeql    al3r            /* if correct continue */
        !           237:        movl    $1,_ercode      /* error code data miscompare */
        !           238:        bbs     $0,_scoplp,0b   /* if set loop on error */
        !           239:        movl    sum,_actual     /* actual data */
        !           240:        movl    $RL3,_expected  /* expected data */
        !           241:        jmp     *badrtn
        !           242: e5:    movpsl  _actual         /* actual = psl */
        !           243:        bbs     $0,_scoplp,0b   /* if set loop on error */
        !           244:        movl    $2,_ercode      /* error code flag failure */
        !           245:        jmp     *badrtn
        !           246: 
        !           247: 
        !           248: /*     reverse operands                                                */
        !           249: 
        !           250: al3r:
        !           251:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           252: aal3r: callf   $4,_setjmp      /* save context for error return */
        !           253:        movab   aal3r,_stpc     /* save subtest program counter */
        !           254:        movl    $6,_subtst      /* save subtest number */       
        !           255: 0:     movl    $A2L3,add       /*first operand                         */
        !           256:        movl    $A1L3,sum       /*second operand                        */
        !           257:        bicpsw  $PSWMASK        /*PSW = 0                               */
        !           258:        bispsw  $(N|Z)          /* these flags ON                       */
        !           259:        adda    add,sum /* try 'add' instruction                */
        !           260:        jgtr    e6              /*error if N = 0                        */
        !           261:        jneq    e6              /*error if Z = 0                        */
        !           262:        jvs     e6              /*error if V = 1                        */
        !           263:        jcs     e6              /*error if C = 1                        */
        !           264:        bicpsw  $Z
        !           265:        movl    $RL3,r4
        !           266:        cmpl    $RL3,sum        /*sum = expected ?                      */
        !           267:        jeql    al4             /* if correct continue */
        !           268:        movl    $1,_ercode      /* error code data miscompare */
        !           269:        bbs     $0,_scoplp,0b   /* if set loop on error */
        !           270:        movl    sum,_actual     /* actual data */
        !           271:        movl    $RL3,_expected  /* expected data */
        !           272:        jmp     *badrtn
        !           273: e6:    movpsl  _actual         /* actual = psl */
        !           274:        bbs     $0,_scoplp,0b   /* if set loop on error */
        !           275:        movl    $2,_ercode      /* error code flag failure */
        !           276:        jmp     *badrtn
        !           277: 
        !           278: al4:
        !           279:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           280: aal4:  callf   $4,_setjmp      /* save context for error return */
        !           281:        movab   aal4,_stpc      /* save subtest program counter */
        !           282:        movl    $7,_subtst      /* save subtest number */       
        !           283:        movl    $2,_no_opr      /* number of operands in use */
        !           284:        movl    $A1L4,_opr      /* first operand */
        !           285:        movl    $A2L4,_opr + 4  /* second operand */
        !           286: 0:     movl    $A1L4,add       /*first operand                         */
        !           287:        movl    $A2L4,sum       /*second operand                        */
        !           288:        bicpsw  $PSWMASK        /*PSW = 0                               */
        !           289:        bispsw  $(N|V)          /* these flags ON                       */
        !           290:        adda    add,sum /* try 'add' instruction                */
        !           291:        jgtr    e7              /*error if N = 0                        */
        !           292:        jeql    e7              /*error if Z = 1                        */
        !           293:        jvc     e7              /*error if V = 0                        */
        !           294:        jcs     e7              /*error if C = 1                        */
        !           295:        bicpsw  $Z
        !           296:        movl    $RL4,r4
        !           297:        cmpl    $RL4,sum        /*sum = expected ?                      */
        !           298:        jeql    al4r            /* if correct continue */
        !           299:        movl    $1,_ercode      /* error code data miscompare */
        !           300:        bbs     $0,_scoplp,0b   /* if set loop on error */
        !           301:        movl    sum,_actual     /* actual data */
        !           302:        movl    $RL4,_expected  /* expected data */
        !           303:        jmp     *badrtn
        !           304: e7:    movpsl  _actual         /* actual = psl */
        !           305:        bbs     $0,_scoplp,0b   /* if set loop on error */
        !           306:        movl    $2,_ercode      /* error code flag failure */
        !           307:        jmp     *badrtn
        !           308: 
        !           309: 
        !           310: /*     reverse operands                                                */
        !           311: 
        !           312: al4r:
        !           313:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           314: aal4r: callf   $4,_setjmp      /* save context for error return */
        !           315:        movab   aal4r,_stpc     /* save subtest program counter */
        !           316:        movl    $8,_subtst      /* save subtest number */       
        !           317: 0:     movl    $A2L4,add       /*first operand                         */
        !           318:        movl    $A1L4,sum       /*second operand                        */
        !           319:        bicpsw  $PSWMASK        /*PSW = 0                               */
        !           320:        bispsw  $(N|V)          /* these flags ON                       */
        !           321:        adda    add,sum /* try 'add' instruction                */
        !           322:        jgtr    e8              /*error if N = 0                        */
        !           323:        jeql    e8              /*error if Z = 1                        */
        !           324:        jvc     e8              /*error if V = 0                        */
        !           325:        jcs     e8              /*error if C = 1                        */
        !           326:        bicpsw  $Z
        !           327:        movl    $0,r4
        !           328:        cmpl    r4,sum  /*sum = expected ?                      */
        !           329:        jeql    al5             /* if correct continue */
        !           330:        movl    $1,_ercode      /* error code data miscompare */
        !           331:        bbs     $0,_scoplp,0b   /* if set loop on error */
        !           332:        movl    sum,_actual     /* actual data */
        !           333:        movl    $0,_expected    /* expected data */
        !           334:        jmp     *badrtn
        !           335: e8:    movpsl  _actual         /* actual = psl */
        !           336:        bbs     $0,_scoplp,0b   /* if set loop on error */
        !           337:        movl    $2,_ercode      /* error code flag failure */
        !           338:        jmp     *badrtn
        !           339: 
        !           340: 
        !           341: 
        !           342: al5:
        !           343:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           344: aal5:  callf   $4,_setjmp      /* save context for error return */
        !           345:        movab   aal5,_stpc      /* save subtest program counter */
        !           346:        movl    $9,_subtst      /* save subtest number */       
        !           347:        movl    $2,_no_opr      /* number of operands in use */
        !           348:        movl    $A1L5,_opr      /* first operand */
        !           349:        movl    $A2L5,_opr + 4  /* second operand */
        !           350: 0:     movl    $A1L5,add       /*first operand                         */
        !           351:        movl    $A2L5,sum       /*second operand                        */
        !           352:        bicpsw  $PSWMASK        /*PSW = 0                               */
        !           353:        bispsw  $(V|Z|C)        /* these flags ON                       */
        !           354:        adda    add,sum /* try 'add' instruction                */
        !           355:        jlss    e9              /*error if N = 1                        */
        !           356:        jneq    e9              /*error if Z = 0                        */
        !           357:        jvc     e9              /*error if V = 0                        */
        !           358:        jcc     e9              /*error if C = 0                        */
        !           359:        bicpsw  $Z
        !           360:        movl    $RL5,r4
        !           361:        cmpl    $RL5,sum        /*sum = expected ?                      */
        !           362:        jeql    al5r            /* if correct continue */
        !           363:        movl    $1,_ercode      /* error code data miscompare */
        !           364:        bbs     $0,_scoplp,0b   /* if set loop on error */
        !           365:        movl    sum,_actual     /* actual data */
        !           366:        movl    $RL5,_expected  /* expected data */
        !           367:        jmp     *badrtn
        !           368: e9:    movpsl  _actual         /* actual = psl */
        !           369:        bbs     $0,_scoplp,0b   /* if set loop on error */
        !           370:        movl    $2,_ercode      /* error code flag failure */
        !           371:        jmp     *badrtn
        !           372: 
        !           373: 
        !           374: /*     reverse operands                                                */
        !           375: 
        !           376: al5r:
        !           377:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           378: aal5r: callf   $4,_setjmp      /* save context for error return */
        !           379:        movab   aal5r,_stpc     /* save subtest program counter */
        !           380:        movl    $0xa,_subtst    /* save subtest number */       
        !           381: 0:     movl    $A2L5,add       /*first operand                         */
        !           382:        movl    $A1L5,sum       /*second operand                        */
        !           383:        bicpsw  $PSWMASK        /*PSW = 0                               */
        !           384:        bispsw  $(V|Z|C)        /* these flags ON                       */
        !           385:        adda    add,sum /* try 'add' instruction                */
        !           386:        jlss    e10             /*error if N = 1                        */
        !           387:        jneq    e10             /*error if Z = 0                        */
        !           388:        jvc     e10             /*error if V = 0                        */
        !           389:        jcc     e10             /*error if C = 0                        */
        !           390:        bicpsw  $Z
        !           391:        movl    $RL5,r4
        !           392:        cmpl    r4,sum  /*sum = expected ?                      */
        !           393:        jeql    al6             /* if correct continue */
        !           394:        movl    $1,_ercode      /* error code data miscompare */
        !           395: 1:     bbs     $0,_scoplp,0b   /* if set loop on error */
        !           396:        movl    sum,_actual     /* actual data */
        !           397:        movl    $RL5,_expected  /* expected data */
        !           398:        jmp     *badrtn
        !           399: e10:   movpsl  _actual         /* actual = psl */
        !           400:        bbs     $0,_scoplp,0b   /* if set loop on error */
        !           401:        movl    $2,_ercode      /* error code flag failure */
        !           402:        jmp     *badrtn
        !           403: 
        !           404: al6:
        !           405:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           406: aal6:  callf   $4,_setjmp      /* save context for error return */
        !           407:        movab   aal6,_stpc      /* save subtest program counter */
        !           408:        movl    $0xb,_subtst    /* save subtest number */       
        !           409:        movl    $2,_no_opr      /* number of operands in use */
        !           410:        movl    $A1L6,_opr      /* first operand */
        !           411:        movl    $A2L6,_opr + 4  /* second operand */
        !           412: 0:     movl    $A1L6,add       /*first operand                         */
        !           413:        movl    $A2L6,sum       /*second operand                        */
        !           414:        bicpsw  $PSWMASK        /*PSW = 0                               */
        !           415:        bispsw  $(Z|V)          /* these flags ON                       */
        !           416:        adda    add,sum /* try 'add' instruction                */
        !           417:        jlss    e11             /*error if N = 1                        */
        !           418:        jneq    e11             /*error if Z = 0                        */
        !           419:        jvc     e11             /*error if V = 0                        */
        !           420:        jcs     e11             /*error if C = 1                        */
        !           421:        bicpsw  $Z
        !           422:        movl    $RL6,r4
        !           423:        cmpl    $RL6,sum        /*sum = expected ?                      */
        !           424:        jeql    al6r            /* if correct continue */
        !           425:        movl    $1,_ercode      /* error code data miscompare */
        !           426: 1:     bbs     $0,_scoplp,0b   /* if set loop on error */
        !           427:        movl    sum,_actual     /* actual data */
        !           428:        movl    $RL6,_expected  /* expected data */
        !           429:        jmp     *badrtn
        !           430: e11:   movpsl  _actual         /* actual = psl */
        !           431:        bbs     $0,_scoplp,0b   /* if set loop on error */
        !           432:        movl    $2,_ercode      /* error code flag failure */
        !           433:        jmp     *badrtn
        !           434: 
        !           435: 
        !           436: /*     reverse operands                                                */
        !           437: 
        !           438: al6r:
        !           439:        bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           440: aal6r: callf   $4,_setjmp      /* save context for error return */
        !           441:        movab   aal6r,_stpc     /* save subtest program counter */
        !           442:        movl    $0xc,_subtst    /* save subtest number */       
        !           443: 0:     movl    $A2L6,add       /*first operand                         */
        !           444:        movl    $A1L6,sum       /*second operand                        */
        !           445:        bicpsw  $PSWMASK        /*PSW = 0                               */
        !           446:        bispsw  $(Z|V)          /* these flags ON                       */
        !           447:        adda    add,sum /* try 'add' instruction                */
        !           448:        jlss    e12             /*error if N = 1                        */
        !           449:        jneq    e12             /*error if Z = 0                        */
        !           450:        jvc     e12             /*error if V = 0                        */
        !           451:        jcs     e12             /*error if C = 1                        */
        !           452:        bicpsw  $Z
        !           453:        cmpl    $RL6,sum        /*sum = expected ?                      */
        !           454:        jeql    aldn            /* if correct continue */
        !           455:        movl    $1,_ercode      /* error code data miscompare */
        !           456: 1:     bbs     $0,_scoplp,0b   /* if set loop on error */
        !           457:        movl    sum,_actual     /* actual data */
        !           458:        movl    $RL6,_expected  /* expected data */
        !           459:        jmp     *badrtn
        !           460: e12:   movpsl  _actual         /* actual = psl */
        !           461:        bbs     $0,_scoplp,0b   /* if set loop on error */
        !           462:        movl    $2,_ercode      /* error code flag failure */
        !           463:        jmp     *badrtn
        !           464: aldn:  bbs     $0,_force_lp,0b /* if set loop on last subtest */
        !           465:        jmp     *return
        !           466: 
        !           467: /*                                                                     */
        !           468: /*     Varialles                                                       */
        !           469: /*                                                                     */
        !           470:        .align  2
        !           471: add1:  .space  4
        !           472: add2:  .space  4
        !           473: sum:   .space  4
        !           474: add:   .space  4
        !           475: 
        !           476: /*     End of file                                                     */
        !           477: 
        !           478: 

unix.superglobalmegacorp.com

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