Annotation of cci/d/macro4/mtpr.lst, revision 1.1

1.1     ! root        1:    1  00000000                                  LL0:
        !             2:    2  00000000                                         .data
        !             3:    3  00000678 *                                       .text
        !             4:    4  00000000                                         .align  1
        !             5:    5  00000000                                         .globl  _mtpr_tst
        !             6:    6  00000000                                  _mtpr_tst:
        !             7:    7  000259C4    0000                                 .word   L215
        !             8:    8  000259C6                                   # 
        !             9:    9  000259C6                                   # #include "fpp_defs.h"
        !            10:   10  000259C6                                   # 
        !            11:   11  000259C6                                   # #define TBL_SIZE 1024               /* size of the prom table */
        !            12:   12  000259C6                                   # 
        !            13:   13  000259C6                                   # /*****************************************************************************
        !            14:   14  000259C6                                   # *
        !            15:   15  000259C6                                   # *               MTPR - TEST THE "READ TABLE DATA" MTPR INSTRUCTION
        !            16:   16  000259C6                                   # *
        !            17:   17  000259C6                                   # *   This test checks the ability to use an MTPR to the Diagnostic Control
        !            18:   18  000259C6                                   # *   Register (DCR) to read an entry in the FPP tables.
        !            19:   19  000259C6                                   # *
        !            20:   20  000259C6                                   # *   The instruction is:
        !            21:   21  000259C6                                   # *       MTPR $2048,$DCR
        !            22:   22  000259C6                                   # *       R0 = the table address to check
        !            23:   23  000259C6                                   # *
        !            24:   24  000259C6                                   # *   The MTPR instruction will put the table data into R1.
        !            25:   25  000259C6                                   # *
        !            26:   26  000259C6                                   # *****************************************************************************/
        !            27:   27  000259C6                                   # mtpr_tst()
        !            28:   28  000259C6                                   # {
        !            29:   29  000259C6    11 3a                                jbr     L217
        !            30:   30  000259C8                                  L218:
        !            31:   31  000259C8                                   #         asm(".globl _mtpr_t");
        !            32:   32  000259C8                                  .globl _mtpr_t
        !            33:   33  000259C8                                   #         asm("_mtpr_t:");                        /* entry address            */
        !            34:   34  000259C8                                  _mtpr_t:
        !            35:   35  000259C8                                   #         if( (cycle == 1) && (prt_hdrs) )        /* print headers on 1st cycle */
        !            36:   36  000259C8    1d effffffff6 01                     cmpl    _cycle,$1
        !            37:   37  000259CF    21 15                                jneq    L219
        !            38:   38  000259D1    5d efffffffed                        tstl    _prt_hdrs
        !            39:   39  000259D7    31 0d                                jeql    L219
        !            40:   40  000259D9                                   #            writes(" MTPR");
        !            41:   41  000259D9                                         .data   1
        !            42:   42  00000678 *                                L221:
        !            43:   43  00000678 *  204D54505200                         .ascii  " MTPR\0"
        !            44:   44  0000067e *                                       .text
        !            45:   45  000259D9    dd 8f00000678                        pushl   $L221
        !            46:   46  000259DF    fe 08 efffffffde                     callf   $8,_writes
        !            47:   47  000259E6                                   #         mtpr_1();                               /* read w/ sgl accumulator  */
        !            48:   48  000259E6                                  L219:
        !            49:   49  000259E6    fe 04 ef00000017                     callf   $4,_mtpr_1
        !            50:   50  000259ED                                   #         mtpr_2();                               /* read w/ dbl accumulator  */
        !            51:   51  000259ED    fe 04 ef0000010a                     callf   $4,_mtpr_2
        !            52:   52  000259F4                                   #         mtpr_3();                               /* read during "sinf"       */
        !            53:   53  000259F4    fe 04 ef0000021b                     callf   $4,_mtpr_3
        !            54:   54  000259FB                                   #         asm("jmp *return");                     /* return to the test monitor */
        !            55:   55  000259FB    71 ffffffffc3                 jmp *return
        !            56:   56  00025A01                                   # }
        !            57:   57  00025A01    40                                   ret#2
        !            58:   58  00025A02                                         .set    L215,0x0
        !            59:   59  00025A02                                  L217:
        !            60:   60  00025A02    11 c4                                jbr     L218
        !            61:   61  00025A04                                         .data
        !            62:   62  00000678 *                                       .text
        !            63:   63  00025A04                                         .align  1
        !            64:   64  00025A04                                         .globl  _mtpr_1
        !            65:   65  00025A04                                  _mtpr_1:
        !            66:   66  00025A04    0000                                 .word   L225
        !            67:   67  00025A06                                   # 
        !            68:   68  00025A06                                   # 
        !            69:   69  00025A06                                   # 
        !            70:   70  00025A06                                   # /************************************************************************
        !            71:   71  00025A06                                   # *
        !            72:   72  00025A06                                   # *       SUBTEST 1 - Read the tables with a single precision accumulator
        !            73:   73  00025A06                                   # *
        !            74:   74  00025A06                                   # ************************************************************************/
        !            75:   75  00025A06                                   # mtpr_1() 
        !            76:   76  00025A06                                   # {
        !            77:   77  00025A06    13 00f2                              jbr     L227
        !            78:   78  00025A09                                  L228:
        !            79:   79  00025A09                                   #         force_loop = FALSE;
        !            80:   80  00025A09    4d efffffffb5                        clrl    _force_loop
        !            81:   81  00025A0F                                   #     subtest = 1;
        !            82:   82  00025A0F    0d 01 efffffffae                     movl    $1,_subtest
        !            83:   83  00025A16                                   #         index = 0;
        !            84:   84  00025A16    4d efffffffa8                        clrl    _index
        !            85:   85  00025A1C                                   #         for( sgl_value_1 = 0; sgl_value_1 < TBL_SIZE; sgl_value_1++ ) { 
        !            86:   86  00025A1C    4d efffffffa2                        clrl    _sgl_value_1
        !            87:   87  00025A22                                  L231:
        !            88:   88  00025A22    1d efffffff9c 890400                 cmpl    _sgl_value_1,$1024
        !            89:   89  00025A2B    91 03 13 00ca                        jgeq    L230
        !            90:   90  00025A30                                   #              sgl_ld_acc   = ldf_1_data[index].ld;      /* get a sgl value   */
        !            91:   91  00025A30    0d efffffff8e 50                     movl    _index,r0
        !            92:   92  00025A37    48 03 50 50                          shll    $3,r0,r0
        !            93:   93  00025A3B    0d e000000000 efffffff7e             movl    _ldf_1_data(r0),_sgl_ld_acc
        !            94:   94  00025A46                                   #              sgl_expected = ldf_1_data[index].exp;     /* & expected acc.   */
        !            95:   95  00025A46    0d efffffff78 50                     movl    _index,r0
        !            96:   96  00025A4D    48 03 50 50                          shll    $3,r0,r0
        !            97:   97  00025A51    0d e000000004 efffffff68             movl    _ldf_1_data+4(r0),_sgl_expected
        !            98:   98  00025A5C                                   # /*
        !            99:   99  00025A5C                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
        !           100:  100  00025A5C                                   #  * The force loop flag is set after the first error.
        !           101:  101  00025A5C                                   # */
        !           102:  102  00025A5C                                   #              asm("_mtpr_1_lp1:");
        !           103:  103  00025A5C                                  _mtpr_1_lp1:
        !           104:  104  00025A5C                                   #              asm("ldf _sgl_ld_acc");            /* load the accumulator     */
        !           105:  105  00025A5C    06 efffffff62                 ldf _sgl_ld_acc
        !           106:  106  00025A62                                   #              asm("movl _sgl_value_1,r0");       /* move table address to r0 */
        !           107:  107  00025A62    0d efffffff5c 50              movl _sgl_value_1,r0
        !           108:  108  00025A69                                   #              asm("clrl r1");                    /* clear R1                 */
        !           109:  109  00025A69    4d 51                         clrl r1
        !           110:  110  00025A6B                                   #              asm("mtpr $0x800,$27");                /* read the table entry     */
        !           111:  111  00025A6B    ad 890800 1b                  mtpr $0x800,$27
        !           112:  112  00025A70                                   #              asm("stf _sgl_st_acc");            /* save the accumulator     */
        !           113:  113  00025A70    26 efffffff4e                 stf _sgl_st_acc
        !           114:  114  00025A76                                   #              asm("movl r1,_sgl_value_2");       /* save the value read      */
        !           115:  115  00025A76    0d 51 efffffff47              movl r1,_sgl_value_2
        !           116:  116  00025A7D                                   #              if( force_loop )
        !           117:  117  00025A7D    5d efffffff41                        tstl    _force_loop
        !           118:  118  00025A83    31 02                                jeql    L232
        !           119:  119  00025A85                                   #                   asm("brb _mtpr_1_lp1");;       /* loop on the error        */
        !           120:  120  00025A85    11 d5                         brb _mtpr_1_lp1
        !           121:  121  00025A87                                  L232:
        !           122:  122  00025A87                                   # /* 
        !           123:  123  00025A87                                   #  * end error loop 
        !           124:  124  00025A87                                   # */
        !           125:  125  00025A87                                   #              if( sgl_st_acc  != sgl_expected ) { /* verify the accumulator */
        !           126:  126  00025A87    1d efffffff37 efffffff32             cmpl    _sgl_st_acc,_sgl_expected
        !           127:  127  00025A92    31 41                                jeql    L233
        !           128:  128  00025A94                                   #                   errcnt++;                     /* bump the error count    */
        !           129:  129  00025A94    6d efffffff2a                        incl    _errcnt
        !           130:  130  00025A9A                                   #                   if( prt_error ) 
        !           131:  131  00025A9A    5d efffffff24                        tstl    _prt_error
        !           132:  132  00025AA0    31 0d                                jeql    L234
        !           133:  133  00025AA2                                   #                        print_mtpr_error(
        !           134:  134  00025AA2                                   #                          " (SGL Accumulator) -THE ACC WAS MODIFIED");
        !           135:  135  00025AA2                                         .data   1
        !           136:  136  0000067e *                                L236:
        !           137:  137  0000067e *  202853474C20416363756D756            .ascii  " (SGL Accumulator) -THE ACC WAS MODIFIED\0"
        !           138:                   C61746F7229202D5448452041
        !           139:                   434320574153204D4F4449464
        !           140:                   9454400
        !           141:  138  000006a7 *                                       .text
        !           142:  139  00025AA2    dd 8f0000067e                        pushl   $L236
        !           143:  140  00025AA8    fe 08 ef000002eb                     callf   $8,_print_mtpr_error
        !           144:  141  00025AAF                                   #                   if( halt_flg ) 
        !           145:  142  00025AAF                                  L234:
        !           146:  143  00025AAF    5d efffffff0f                        tstl    _halt_flg
        !           147:  144  00025AB5    31 09                                jeql    L237
        !           148:  145  00025AB7                                   #                    mtpr_er_halt( 2 );
        !           149:  146  00025AB7    dd 02                                pushl   $2
        !           150:  147  00025AB9    fe 08 ef000004a6                     callf   $8,_mtpr_er_halt
        !           151:  148  00025AC0                                   #                   if( loop_on_err ) {
        !           152:  149  00025AC0                                  L237:
        !           153:  150  00025AC0    5d effffffefe                        tstl    _loop_on_err
        !           154:  151  00025AC6    31 0d                                jeql    L239
        !           155:  152  00025AC8                                   #                        force_loop = TRUE;       /* set the force loop flag */
        !           156:  153  00025AC8    0d 01 effffffef5                     movl    $1,_force_loop
        !           157:  154  00025ACF                                   #                        asm("jmp _mtpr_1_lp1");  /* and loop                */
        !           158:  155  00025ACF    71 efffffff87                 jmp _mtpr_1_lp1
        !           159:  156  00025AD5                                   #                   }
        !           160:  157  00025AD5                                   #              }   /* end of compare error */
        !           161:  158  00025AD5                                  L239:
        !           162:  159  00025AD5                                   #              if( ++index > max_ldf_1_index )
        !           163:  160  00025AD5                                  L233:
        !           164:  161  00025AD5    6d effffffee9                        incl    _index
        !           165:  162  00025ADB    0d effffffee3 50                     movl    _index,r0
        !           166:  163  00025AE2    1d 50 effffffedb                     cmpl    r0,_max_ldf_1_index
        !           167:  164  00025AE9    51 06                                jleq    L240
        !           168:  165  00025AEB                                   #                   index = 0;                   /* reset the Acc's index */
        !           169:  166  00025AEB    4d effffffed3                        clrl    _index
        !           170:  167  00025AF1                                   #         }
        !           171:  168  00025AF1                                  L240:
        !           172:  169  00025AF1                                  L229:
        !           173:  170  00025AF1    6d effffffecd                        incl    _sgl_value_1
        !           174:  171  00025AF7    13 ff28                              jbr     L231
        !           175:  172  00025AFA                                  L230:
        !           176:  173  00025AFA                                   # }  /* end of subtest 1 */
        !           177:  174  00025AFA    40                                   ret#2
        !           178:  175  00025AFB                                         .set    L225,0x0
        !           179:  176  00025AFB                                  L227:
        !           180:  177  00025AFB    13 ff0b                              jbr     L228
        !           181:  178  00025AFE                                         .data
        !           182:  179  00000678 *                                       .text
        !           183:  180  00025AFE                                         .align  1
        !           184:  181  00025AFE                                         .globl  _mtpr_2
        !           185:  182  00025AFE                                  _mtpr_2:
        !           186:  183  00025AFE    0000                                 .word   L241
        !           187:  184  00025B00                                   # 
        !           188:  185  00025B00                                   # 
        !           189:  186  00025B00                                   # 
        !           190:  187  00025B00                                   # 
        !           191:  188  00025B00                                   # 
        !           192:  189  00025B00                                   # /************************************************************************
        !           193:  190  00025B00                                   # *
        !           194:  191  00025B00                                   # *       SUBTEST 2 - Read the tables with a double precision accumulator
        !           195:  192  00025B00                                   # *
        !           196:  193  00025B00                                   # ************************************************************************/
        !           197:  194  00025B00                                   # mtpr_2() 
        !           198:  195  00025B00                                   # {
        !           199:  196  00025B00    13 010f                              jbr     L243
        !           200:  197  00025B03                                  L244:
        !           201:  198  00025B03                                   #         force_loop = FALSE;
        !           202:  199  00025B03    4d effffffebb                        clrl    _force_loop
        !           203:  200  00025B09                                   #     subtest = 2;
        !           204:  201  00025B09    0d 02 effffffeb4                     movl    $2,_subtest
        !           205:  202  00025B10                                   #         index = 0;
        !           206:  203  00025B10    4d effffffeae                        clrl    _index
        !           207:  204  00025B16                                   #         for( sgl_value_1 = 0; sgl_value_1 < TBL_SIZE; sgl_value_1++ ) { 
        !           208:  205  00025B16    4d effffffea8                        clrl    _sgl_value_1
        !           209:  206  00025B1C                                  L247:
        !           210:  207  00025B1C    1d effffffea2 890400                 cmpl    _sgl_value_1,$1024
        !           211:  208  00025B25    91 03 13 00e7                        jgeq    L246
        !           212:  209  00025B2A                                   #              dbl_ld_acc   = ldd_1_data[index].ld;      /* get a dbl value   */
        !           213:  210  00025B2A    48 04 effffffe93 50                  shll    $4,_index,r0
        !           214:  211  00025B32    0c 8f00000000 50                     addl2   $_ldd_1_data,r0
        !           215:  212  00025B39    0d a004 effffffe87                   movl    4(r0),_dbl_ld_acc+4
        !           216:  213  00025B41    0d 60 effffffe7c                     movl    (r0),_dbl_ld_acc
        !           217:  214  00025B48                                   #              dbl_expected = ldd_1_data[index].exp;     /* & expected acc.   */
        !           218:  215  00025B48    48 04 effffffe75 50                  shll    $4,_index,r0
        !           219:  216  00025B50    0c 8f00000008 50                     addl2   $_ldd_1_data+8,r0
        !           220:  217  00025B57    0d a004 effffffe69                   movl    4(r0),_dbl_expected+4
        !           221:  218  00025B5F    0d 60 effffffe5e                     movl    (r0),_dbl_expected
        !           222:  219  00025B66                                   # /*
        !           223:  220  00025B66                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
        !           224:  221  00025B66                                   #  * The force loop flag is set after the first error.
        !           225:  222  00025B66                                   # */
        !           226:  223  00025B66                                   #              asm("_mtpr_2_lp1:");
        !           227:  224  00025B66                                  _mtpr_2_lp1:
        !           228:  225  00025B66                                   #              asm("ldd _dbl_ld_acc");            /* load the accumulator     */
        !           229:  226  00025B66    07 effffffe58                 ldd _dbl_ld_acc
        !           230:  227  00025B6C                                   #              asm("movl _sgl_value_1,r0");       /* move table address to r0 */
        !           231:  228  00025B6C    0d effffffe52 50              movl _sgl_value_1,r0
        !           232:  229  00025B73                                   #              asm("clrl r1");                    /* clear R1                 */
        !           233:  230  00025B73    4d 51                         clrl r1
        !           234:  231  00025B75                                   #              asm("mtpr $0x800,$27");                /* read the table entry     */
        !           235:  232  00025B75    ad 890800 1b                  mtpr $0x800,$27
        !           236:  233  00025B7A                                   #              asm("std _dbl_st_acc");            /* save the accumulator     */
        !           237:  234  00025B7A    27 effffffe44                 std _dbl_st_acc
        !           238:  235  00025B80                                   #              asm("movl r1,_sgl_value_2");       /* save the value read      */
        !           239:  236  00025B80    0d 51 effffffe3d              movl r1,_sgl_value_2
        !           240:  237  00025B87                                   #              if( force_loop )
        !           241:  238  00025B87    5d effffffe37                        tstl    _force_loop
        !           242:  239  00025B8D    31 02                                jeql    L248
        !           243:  240  00025B8F                                   #                   asm("brb _mtpr_2_lp1");;       /* loop on the error        */
        !           244:  241  00025B8F    11 d5                         brb _mtpr_2_lp1
        !           245:  242  00025B91                                  L248:
        !           246:  243  00025B91                                   # /* 
        !           247:  244  00025B91                                   #  * end error loop 
        !           248:  245  00025B91                                   # */
        !           249:  246  00025B91                                   #              if( (dbl_st_acc.m != dbl_expected.m) ||  /* verify the acc. */
        !           250:  247  00025B91                                   #                  (dbl_st_acc.l != dbl_expected.l) ) { 
        !           251:  248  00025B91    1d effffffe2d effffffe28             cmpl    _dbl_st_acc,_dbl_expected
        !           252:  249  00025B9C    21 0d                                jneq    L9999
        !           253:  250  00025B9E    1d effffffe24 effffffe1f             cmpl    _dbl_st_acc+4,_dbl_expected+4
        !           254:  251  00025BA9    31 41                                jeql    L249
        !           255:  252  00025BAB                                  L9999:
        !           256:  253  00025BAB                                   #                   errcnt++;                     /* bump the error count    */
        !           257:  254  00025BAB    6d effffffe13                        incl    _errcnt
        !           258:  255  00025BB1                                   #                   if( prt_error ) 
        !           259:  256  00025BB1    5d effffffe0d                        tstl    _prt_error
        !           260:  257  00025BB7    31 0d                                jeql    L250
        !           261:  258  00025BB9                                   #                        print_mtpr_error(
        !           262:  259  00025BB9                                   #                          " (DBL Accumulator) -THE ACC WAS MODIFIED");
        !           263:  260  00025BB9                                         .data   1
        !           264:  261  000006a7 *                                L251:
        !           265:  262  000006a7 *  202844424C20416363756D756            .ascii  " (DBL Accumulator) -THE ACC WAS MODIFIED\0"
        !           266:                   C61746F7229202D5448452041
        !           267:                   434320574153204D4F4449464
        !           268:                   9454400
        !           269:  263  000006d0 *                                       .text
        !           270:  264  00025BB9    dd 8f000006a7                        pushl   $L251
        !           271:  265  00025BBF    fe 08 ef000001d4                     callf   $8,_print_mtpr_error
        !           272:  266  00025BC6                                   #                   if( halt_flg ) 
        !           273:  267  00025BC6                                  L250:
        !           274:  268  00025BC6    5d effffffdf8                        tstl    _halt_flg
        !           275:  269  00025BCC    31 09                                jeql    L252
        !           276:  270  00025BCE                                   #                    mtpr_er_halt( 2 );
        !           277:  271  00025BCE    dd 02                                pushl   $2
        !           278:  272  00025BD0    fe 08 ef0000038f                     callf   $8,_mtpr_er_halt
        !           279:  273  00025BD7                                   #                   if( loop_on_err ) {
        !           280:  274  00025BD7                                  L252:
        !           281:  275  00025BD7    5d effffffde7                        tstl    _loop_on_err
        !           282:  276  00025BDD    31 0d                                jeql    L253
        !           283:  277  00025BDF                                   #                        force_loop = TRUE;       /* set the force loop flag */
        !           284:  278  00025BDF    0d 01 effffffdde                     movl    $1,_force_loop
        !           285:  279  00025BE6                                   #                        asm("jmp _mtpr_2_lp1");  /* and loop                */
        !           286:  280  00025BE6    71 efffffff7a                 jmp _mtpr_2_lp1
        !           287:  281  00025BEC                                   #                   }
        !           288:  282  00025BEC                                   #              }   /* end of compare error */
        !           289:  283  00025BEC                                  L253:
        !           290:  284  00025BEC                                   #              if( ++index > max_ldf_1_index )
        !           291:  285  00025BEC                                  L249:
        !           292:  286  00025BEC    6d effffffdd2                        incl    _index
        !           293:  287  00025BF2    0d effffffdcc 50                     movl    _index,r0
        !           294:  288  00025BF9    1d 50 effffffdc4                     cmpl    r0,_max_ldf_1_index
        !           295:  289  00025C00    51 06                                jleq    L254
        !           296:  290  00025C02                                   #                   index = 0;                   /* reset the Acc's index */
        !           297:  291  00025C02    4d effffffdbc                        clrl    _index
        !           298:  292  00025C08                                   #         }
        !           299:  293  00025C08                                  L254:
        !           300:  294  00025C08                                  L245:
        !           301:  295  00025C08    6d effffffdb6                        incl    _sgl_value_1
        !           302:  296  00025C0E    13 ff0b                              jbr     L247
        !           303:  297  00025C11                                  L246:
        !           304:  298  00025C11                                   # }  /* end of subtest 2 */
        !           305:  299  00025C11    40                                   ret#2
        !           306:  300  00025C12                                         .set    L241,0x0
        !           307:  301  00025C12                                  L243:
        !           308:  302  00025C12    13 feee                              jbr     L244
        !           309:  303  00025C15                                         .data
        !           310:  304  00000678 *                                       .text
        !           311:  305  00025C15    00                                   .align  1
        !           312:  306  00025C16                                         .globl  _mtpr_3
        !           313:  307  00025C16                                  _mtpr_3:
        !           314:  308  00025C16    0000                                 .word   L255
        !           315:  309  00025C18                                   # 
        !           316:  310  00025C18                                   # 
        !           317:  311  00025C18                                   # 
        !           318:  312  00025C18                                   # 
        !           319:  313  00025C18                                   # 
        !           320:  314  00025C18                                   # /************************************************************************
        !           321:  315  00025C18                                   # *
        !           322:  316  00025C18                                   # *       SUBTEST 3 - Read table data during a SINF function
        !           323:  317  00025C18                                   # *
        !           324:  318  00025C18                                   # * Read every 10th table entry while doing SINF's.
        !           325:  319  00025C18                                   # * Read the entry once, read it again during a SINF, verify that the SINF
        !           326:  320  00025C18                                   # * result is correct and that the same table data was read.
        !           327:  321  00025C18                                   # ************************************************************************/
        !           328:  322  00025C18                                   # mtpr_3() 
        !           329:  323  00025C18                                   # {
        !           330:  324  00025C18    13 0178                              jbr     L257
        !           331:  325  00025C1B                                  L258:
        !           332:  326  00025C1B                                   # int max_index;
        !           333:  327  00025C1B                                   #         force_loop = FALSE;
        !           334:  328  00025C1B    4d effffffda3                        clrl    _force_loop
        !           335:  329  00025C21                                   #     subtest = 3;
        !           336:  330  00025C21    0d 03 effffffd9c                     movl    $3,_subtest
        !           337:  331  00025C28                                   #     max_index = TBL_SIZE / 10;
        !           338:  332  00025C28    0d 8866 adc8                         movl    $102,-56(fp)
        !           339:  333  00025C2D                                   #     if( max_index > max_sinf_1_index )      /* don't go over the SIN data */
        !           340:  334  00025C2D    1d adc8 effffffd8f                   cmpl    -56(fp),_max_sinf_1_index
        !           341:  335  00025C35    51 08                                jleq    L259
        !           342:  336  00025C37                                   #          max_index = max_sinf_1_index;      /* set the max index value */
        !           343:  337  00025C37    0d effffffd87 adc8                   movl    _max_sinf_1_index,-56(fp)
        !           344:  338  00025C3F                                   #         for( index = 0; index < max_sinf_1_index; index++ )  { 
        !           345:  339  00025C3F                                  L259:
        !           346:  340  00025C3F    4d effffffd7f                        clrl    _index
        !           347:  341  00025C45                                  L262:
        !           348:  342  00025C45    1d effffffd79 effffffd74             cmpl    _index,_max_sinf_1_index
        !           349:  343  00025C50    91 03 13 013d                        jgeq    L261
        !           350:  344  00025C55                                   #          sgl_value_1  = index * 10;         /* get table entry to read */
        !           351:  345  00025C55    5c 0a effffffd68 50                  mull3   $10,_index,r0
        !           352:  346  00025C5D    0d 50 effffffd60                     movl    r0,_sgl_value_1
        !           353:  347  00025C64                                   #              sgl_ld_acc   = sinf_1_data[index].ld;      /* get a sgl value */
        !           354:  348  00025C64    0d effffffd5a 50                     movl    _index,r0
        !           355:  349  00025C6B    48 03 50 50                          shll    $3,r0,r0
        !           356:  350  00025C6F    0d e000000000 effffffd4a             movl    _sinf_1_data(r0),_sgl_ld_acc
        !           357:  351  00025C7A                                   #              sgl_expected = sinf_1_data[index].exp;     /* & expected acc. */
        !           358:  352  00025C7A    0d effffffd44 50                     movl    _index,r0
        !           359:  353  00025C81    48 03 50 50                          shll    $3,r0,r0
        !           360:  354  00025C85    0d e000000004 effffffd34             movl    _sinf_1_data+4(r0),_sgl_expected
        !           361:  355  00025C90                                   #              asm("movl _sgl_value_1,r0");       /* move table address to r0 */
        !           362:  356  00025C90    0d effffffd2e 50              movl _sgl_value_1,r0
        !           363:  357  00025C97                                   #              asm("clrl r1");                    /* clear R1                 */
        !           364:  358  00025C97    4d 51                         clrl r1
        !           365:  359  00025C99                                   #              asm("mtpr $0x800,$27");                /* read the table entry     */
        !           366:  360  00025C99    ad 890800 1b                  mtpr $0x800,$27
        !           367:  361  00025C9E                                   #              asm("movl r1,_sgl_value_3");       /* save the value read      */
        !           368:  362  00025C9E    0d 51 effffffd1f              movl r1,_sgl_value_3
        !           369:  363  00025CA5                                   # /*
        !           370:  364  00025CA5                                   #  * If LOOP ON ERROR is set, this is the loop for this subtest.
        !           371:  365  00025CA5                                   #  * The force loop flag is set after the first error.
        !           372:  366  00025CA5                                   # */
        !           373:  367  00025CA5                                   #              asm("_mtpr_3_lp1:");
        !           374:  368  00025CA5                                  _mtpr_3_lp1:
        !           375:  369  00025CA5                                   #              asm("ldf _sgl_ld_acc");            /* load the accumulator     */
        !           376:  370  00025CA5    06 effffffd19                 ldf _sgl_ld_acc
        !           377:  371  00025CAB                                   #              asm("movl _sgl_value_1,r0");       /* move table address to r0 */
        !           378:  372  00025CAB    0d effffffd13 50              movl _sgl_value_1,r0
        !           379:  373  00025CB2                                   #              asm("clrl r1");                    /* clear R1                 */
        !           380:  374  00025CB2    4d 51                         clrl r1
        !           381:  375  00025CB4                                   #          asm("sinf");                       /* start the SIN function   */
        !           382:  376  00025CB4    05                            sinf
        !           383:  377  00025CB5                                   #              asm("mtpr $0x800,$27");                /* read the table entry     */
        !           384:  378  00025CB5    ad 890800 1b                  mtpr $0x800,$27
        !           385:  379  00025CBA                                   #              asm("stf _sgl_st_acc");            /* save the accumulator     */
        !           386:  380  00025CBA    26 effffffd04                 stf _sgl_st_acc
        !           387:  381  00025CC0                                   #              asm("movl r1,_sgl_value_2");       /* save the value read      */
        !           388:  382  00025CC0    0d 51 effffffcfd              movl r1,_sgl_value_2
        !           389:  383  00025CC7                                   #              if( force_loop )
        !           390:  384  00025CC7    5d effffffcf7                        tstl    _force_loop
        !           391:  385  00025CCD    31 02                                jeql    L263
        !           392:  386  00025CCF                                   #                   asm("brb _mtpr_3_lp1");;       /* loop on the error        */
        !           393:  387  00025CCF    11 d4                         brb _mtpr_3_lp1
        !           394:  388  00025CD1                                  L263:
        !           395:  389  00025CD1                                   # /* 
        !           396:  390  00025CD1                                   #  * end error loop 
        !           397:  391  00025CD1                                   # */
        !           398:  392  00025CD1                                   #              if( sgl_value_2 != sgl_value_3 ) { /* verify the data read  */
        !           399:  393  00025CD1    1d effffffced effffffce8             cmpl    _sgl_value_2,_sgl_value_3
        !           400:  394  00025CDC    31 41                                jeql    L264
        !           401:  395  00025CDE                                   #                   errcnt++;                     /* bump the error count  */
        !           402:  396  00025CDE    6d effffffce0                        incl    _errcnt
        !           403:  397  00025CE4                                   #                   if( prt_error ) 
        !           404:  398  00025CE4    5d effffffcda                        tstl    _prt_error
        !           405:  399  00025CEA    31 0d                                jeql    L265
        !           406:  400  00025CEC                                   #                        print_mtpr_error( bad_tbl_entry_msg );
        !           407:  401  00025CEC    dd effffffcd2                        pushl   _bad_tbl_entry_msg
        !           408:  402  00025CF2    fe 08 ef000000a1                     callf   $8,_print_mtpr_error
        !           409:  403  00025CF9                                   #                   if( halt_flg ) 
        !           410:  404  00025CF9                                  L265:
        !           411:  405  00025CF9    5d effffffcc5                        tstl    _halt_flg
        !           412:  406  00025CFF    31 09                                jeql    L266
        !           413:  407  00025D01                                   #                    mtpr_er_halt( 1 );
        !           414:  408  00025D01    dd 01                                pushl   $1
        !           415:  409  00025D03    fe 08 ef0000025c                     callf   $8,_mtpr_er_halt
        !           416:  410  00025D0A                                   #                   if( loop_on_err ) {
        !           417:  411  00025D0A                                  L266:
        !           418:  412  00025D0A    5d effffffcb4                        tstl    _loop_on_err
        !           419:  413  00025D10    31 0d                                jeql    L267
        !           420:  414  00025D12                                   #                        force_loop = TRUE;       /* set the force loop flag */
        !           421:  415  00025D12    0d 01 effffffcab                     movl    $1,_force_loop
        !           422:  416  00025D19                                   #                        asm("jmp _mtpr_3_lp1");  /* and loop                */
        !           423:  417  00025D19    71 efffffff86                 jmp _mtpr_3_lp1
        !           424:  418  00025D1F                                   #                   }
        !           425:  419  00025D1F                                   #              }   /* end of table data compare error */
        !           426:  420  00025D1F                                  L267:
        !           427:  421  00025D1F                                   #                if( sgl_st_acc != sgl_expected ) { /* verify the accumulator */
        !           428:  422  00025D1F                                  L264:
        !           429:  423  00025D1F    1d effffffc9f effffffc9a             cmpl    _sgl_st_acc,_sgl_expected
        !           430:  424  00025D2A    31 41                                jeql    L268
        !           431:  425  00025D2C                                   #                   errcnt++;                     /* bump the error count    */
        !           432:  426  00025D2C    6d effffffc92                        incl    _errcnt
        !           433:  427  00025D32                                   #                   if( prt_error ) 
        !           434:  428  00025D32    5d effffffc8c                        tstl    _prt_error
        !           435:  429  00025D38    31 0d                                jeql    L269
        !           436:  430  00025D3A                                   #                        print_mtpr_error("  -BAD FINAL ACC");
        !           437:  431  00025D3A                                         .data   1
        !           438:  432  000006d0 *                                L270:
        !           439:  433  000006d0 *  20202D4241442046494E414C2            .ascii  "  -BAD FINAL ACC\0"
        !           440:                   041434300
        !           441:  434  000006e1 *                                       .text
        !           442:  435  00025D3A    dd 8f000006d0                        pushl   $L270
        !           443:  436  00025D40    fe 08 ef00000053                     callf   $8,_print_mtpr_error
        !           444:  437  00025D47                                   #                   if( halt_flg ) 
        !           445:  438  00025D47                                  L269:
        !           446:  439  00025D47    5d effffffc77                        tstl    _halt_flg
        !           447:  440  00025D4D    31 09                                jeql    L271
        !           448:  441  00025D4F                                   #                    mtpr_er_halt( 3 );
        !           449:  442  00025D4F    dd 03                                pushl   $3
        !           450:  443  00025D51    fe 08 ef0000020e                     callf   $8,_mtpr_er_halt
        !           451:  444  00025D58                                   #                   if( loop_on_err ) {
        !           452:  445  00025D58                                  L271:
        !           453:  446  00025D58    5d effffffc66                        tstl    _loop_on_err
        !           454:  447  00025D5E    31 0d                                jeql    L272
        !           455:  448  00025D60                                   #                        force_loop = TRUE;       /* set the force loop flag */
        !           456:  449  00025D60    0d 01 effffffc5d                     movl    $1,_force_loop
        !           457:  450  00025D67                                   #                        asm("jmp _mtpr_3_lp1");  /* and loop                */
        !           458:  451  00025D67    71 efffffff38                 jmp _mtpr_3_lp1
        !           459:  452  00025D6D                                   #                   }
        !           460:  453  00025D6D                                   #              }   /* end of SINF compare error */
        !           461:  454  00025D6D                                  L272:
        !           462:  455  00025D6D                                   #              if( ++index > max_sinf_1_index )
        !           463:  456  00025D6D                                  L268:
        !           464:  457  00025D6D    6d effffffc51                        incl    _index
        !           465:  458  00025D73    0d effffffc4b 50                     movl    _index,r0
        !           466:  459  00025D7A    1d 50 effffffc43                     cmpl    r0,_max_sinf_1_index
        !           467:  460  00025D81    51 06                                jleq    L273
        !           468:  461  00025D83                                   #                   index = 0;                   /* reset the Acc's index */
        !           469:  462  00025D83    4d effffffc3b                        clrl    _index
        !           470:  463  00025D89                                   #         }
        !           471:  464  00025D89                                  L273:
        !           472:  465  00025D89                                  L260:
        !           473:  466  00025D89    6d effffffc35                        incl    _index
        !           474:  467  00025D8F    13 feb3                              jbr     L262
        !           475:  468  00025D92                                  L261:
        !           476:  469  00025D92                                   # }  /* end of subtest 3 */
        !           477:  470  00025D92    40                                   ret#2
        !           478:  471  00025D93                                         .set    L255,0x0
        !           479:  472  00025D93                                  L257:
        !           480:  473  00025D93    3c 38 5d 5e                          subl3   $56,fp,sp
        !           481:  474  00025D97    13 fe81                              jbr     L258
        !           482:  475  00025D9A                                         .data
        !           483:  476  00000678 *                                       .text
        !           484:  477  00025D9A                                         .align  1
        !           485:  478  00025D9A                                         .globl  _print_mtpr_error
        !           486:  479  00025D9A                                  _print_mtpr_error:
        !           487:  480  00025D9A    0000                                 .word   L274
        !           488:  481  00025D9C                                   # 
        !           489:  482  00025D9C                                   # 
        !           490:  483  00025D9C                                   # 
        !           491:  484  00025D9C                                   # /******************************************************************************
        !           492:  485  00025D9C                                   # *
        !           493:  486  00025D9C                                   # *   Print an error message of the form:
        !           494:  487  00025D9C                                   # *
        !           495:  488  00025D9C                                   # *  cycle: xx  MTPR test xx, subtest xx  <your message here>
        !           496:  489  00025D9C                                   # *  table index = xxxxxxxx,  table entry read = xxxxxxxx   (2nd read)
        !           497:  490  00025D9C                                   # *                             expected entry = xxxxxxxx   (1st read)
        !           498:  491  00025D9C                                   # * or
        !           499:  492  00025D9C                                   # *  cycle: xx  MTPR test xx, subtest xx  <your message here>
        !           500:  493  00025D9C                                   # *  table index = xxxxxxxx,  table entry = xxxxxxxx
        !           501:  494  00025D9C                                   # *  initial Acc = xxxxxxxx xxxxxxxx,    final Acc = xxxxxxxx xxxxxxxx
        !           502:  495  00025D9C                                   # *                                   expected Acc = xxxxxxxx xxxxxxxx
        !           503:  496  00025D9C                                   # ******************************************************************************/
        !           504:  497  00025D9C                                   # print_mtpr_error( msg )
        !           505:  498  00025D9C                                   # char *msg;
        !           506:  499  00025D9C                                   # {
        !           507:  500  00025D9C    13 01c3                              jbr     L276
        !           508:  501  00025D9F                                  L277:
        !           509:  502  00025D9F                                   #         writes(" \n");         /* start a new print line */
        !           510:  503  00025D9F                                         .data   1
        !           511:  504  000006e1 *                                L278:
        !           512:  505  000006e1 *  200A00                               .ascii  " \12\0"
        !           513:  506  000006e4 *                                       .text
        !           514:  507  00025D9F    dd 8f000006e1                        pushl   $L278
        !           515:  508  00025DA5    fe 08 effffffc18                     callf   $8,_writes
        !           516:  509  00025DAC                                   #     writes("cycle: ");
        !           517:  510  00025DAC                                         .data   1
        !           518:  511  000006e4 *                                L279:
        !           519:  512  000006e4 *  6379636C653A2000                     .ascii  "cycle: \0"
        !           520:  513  000006ec *                                       .text
        !           521:  514  00025DAC    dd 8f000006e4                        pushl   $L279
        !           522:  515  00025DB2    fe 08 effffffc0b                     callf   $8,_writes
        !           523:  516  00025DB9                                   #     writed( cycle );
        !           524:  517  00025DB9    dd effffffc05                        pushl   _cycle
        !           525:  518  00025DBF    fe 08 effffffbfe                     callf   $8,_writed
        !           526:  519  00025DC6                                   #     writes("  MTPR test ");
        !           527:  520  00025DC6                                         .data   1
        !           528:  521  000006ec *                                L281:
        !           529:  522  000006ec *  20204D5450522074657374200            .ascii  "  MTPR test \0"
        !           530:                   0
        !           531:  523  000006f9 *                                       .text
        !           532:  524  00025DC6    dd 8f000006ec                        pushl   $L281
        !           533:  525  00025DCC    fe 08 effffffbf1                     callf   $8,_writes
        !           534:  526  00025DD3                                   #     writed( test_no );
        !           535:  527  00025DD3    dd effffffbeb                        pushl   _test_no
        !           536:  528  00025DD9    fe 08 effffffbe4                     callf   $8,_writed
        !           537:  529  00025DE0                                   #     writes( msg );
        !           538:  530  00025DE0    dd ad04                              pushl   4(fp)
        !           539:  531  00025DE3    fe 08 effffffbda                     callf   $8,_writes
        !           540:  532  00025DEA                                   #     writes("\ntable index = ");
        !           541:  533  00025DEA                                         .data   1
        !           542:  534  000006f9 *                                L282:
        !           543:  535  000006f9 *  0A7461626C6520696E6465782            .ascii  "\12table index = \0"
        !           544:                   03D2000
        !           545:  536  00000709 *                                       .text
        !           546:  537  00025DEA    dd 8f000006f9                        pushl   $L282
        !           547:  538  00025DF0    fe 08 effffffbcd                     callf   $8,_writes
        !           548:  539  00025DF7                                   #     write32h( sgl_value_1 );
        !           549:  540  00025DF7    dd effffffbc7                        pushl   _sgl_value_1
        !           550:  541  00025DFD    fe 08 effffffbc0                     callf   $8,_write32h
        !           551:  542  00025E04                                   #     if( msg == bad_tbl_entry_msg ) {        /* bad data read? */
        !           552:  543  00025E04    1d ad04 effffffbb8                   cmpl    4(fp),_bad_tbl_entry_msg
        !           553:  544  00025E0C    21 51                                jneq    L284
        !           554:  545  00025E0E                                   #          writes(",  table entry = ");
        !           555:  546  00025E0E                                         .data   1
        !           556:  547  00000709 *                                L285:
        !           557:  548  00000709 *  2C20207461626C6520656E747            .ascii  ",  table entry = \0"
        !           558:                   279203D2000
        !           559:  549  0000071b *                                       .text
        !           560:  550  00025E0E    dd 8f00000709                        pushl   $L285
        !           561:  551  00025E14    fe 08 effffffba9                     callf   $8,_writes
        !           562:  552  00025E1B                                   #          write32h( sgl_value_2 );
        !           563:  553  00025E1B    dd effffffba3                        pushl   _sgl_value_2
        !           564:  554  00025E21    fe 08 effffffb9c                     callf   $8,_write32h
        !           565:  555  00025E28                                   #          writes("   (2nd read)\n");
        !           566:  556  00025E28                                         .data   1
        !           567:  557  0000071b *                                L286:
        !           568:  558  0000071b *  20202028326E6420726561642            .ascii  "   (2nd read)\12\0"
        !           569:                   90A00
        !           570:  559  0000072a *                                       .text
        !           571:  560  00025E28    dd 8f0000071b                        pushl   $L286
        !           572:  561  00025E2E    fe 08 effffffb8f                     callf   $8,_writes
        !           573:  562  00025E35                                   #          writes("                      entry expected = ");
        !           574:  563  00025E35                                         .data   1
        !           575:  564  0000072a *                                L287:
        !           576:  565  0000072a *  2020202020202020202020202            .ascii  "                      entry expected = \0"
        !           577:                   0202020202020202020656E74
        !           578:                   7279206578706563746564203
        !           579:                   D2000
        !           580:  566  00000752 *                                       .text
        !           581:  567  00025E35    dd 8f0000072a                        pushl   $L287
        !           582:  568  00025E3B    fe 08 effffffb82                     callf   $8,_writes
        !           583:  569  00025E42                                   #          write32h( sgl_value_3 );
        !           584:  570  00025E42    dd effffffb7c                        pushl   _sgl_value_3
        !           585:  571  00025E48    fe 08 effffffb75                     callf   $8,_write32h
        !           586:  572  00025E4F                                   #          writes("   (1st read)\n");
        !           587:  573  00025E4F                                         .data   1
        !           588:  574  00000752 *                                L288:
        !           589:  575  00000752 *  2020202831737420726561642            .ascii  "   (1st read)\12\0"
        !           590:                   90A00
        !           591:  576  00000761 *                                       .text
        !           592:  577  00025E4F    dd 8f00000752                        pushl   $L288
        !           593:  578  00025E55    fe 08 effffffb68                     callf   $8,_writes
        !           594:  579  00025E5C                                   #     } else {                                /* bad accumulator error */
        !           595:  580  00025E5C    13 0102                              jbr     L289
        !           596:  581  00025E5F                                  L284:
        !           597:  582  00025E5F                                   #          writes(",  table entry = ");
        !           598:  583  00025E5F                                         .data   1
        !           599:  584  00000761 *                                L290:
        !           600:  585  00000761 *  2C20207461626C6520656E747            .ascii  ",  table entry = \0"
        !           601:                   279203D2000
        !           602:  586  00000773 *                                       .text
        !           603:  587  00025E5F    dd 8f00000761                        pushl   $L290
        !           604:  588  00025E65    fe 08 effffffb58                     callf   $8,_writes
        !           605:  589  00025E6C                                   #          write32h( sgl_value_2 );
        !           606:  590  00025E6C    dd effffffb52                        pushl   _sgl_value_2
        !           607:  591  00025E72    fe 08 effffffb4b                     callf   $8,_write32h
        !           608:  592  00025E79                                   #          writes("\ninitial Acc = ");
        !           609:  593  00025E79                                         .data   1
        !           610:  594  00000773 *                                L291:
        !           611:  595  00000773 *  0A696E697469616C204163632            .ascii  "\12initial Acc = \0"
        !           612:                   03D2000
        !           613:  596  00000783 *                                       .text
        !           614:  597  00025E79    dd 8f00000773                        pushl   $L291
        !           615:  598  00025E7F    fe 08 effffffb3e                     callf   $8,_writes
        !           616:  599  00025E86                                   #          if( subtest == 2 ) {               /* DBL precision? */
        !           617:  600  00025E86    1d effffffb38 02                     cmpl    _subtest,$2
        !           618:  601  00025E8D    31 03 13 0085                        jneq    L292
        !           619:  602  00025E92                                   #              write32h( dbl_ld_acc.m );
        !           620:  603  00025E92    dd effffffb2c                        pushl   _dbl_ld_acc
        !           621:  604  00025E98    fe 08 effffffb25                     callf   $8,_write32h
        !           622:  605  00025E9F                                   #              writec(' ');
        !           623:  606  00025E9F    dd 20                                pushl   $32
        !           624:  607  00025EA1    fe 08 effffffb1c                     callf   $8,_writec
        !           625:  608  00025EA8                                   #              write32h( dbl_ld_acc.l );
        !           626:  609  00025EA8    dd effffffb1a                        pushl   _dbl_ld_acc+4
        !           627:  610  00025EAE    fe 08 effffffb0f                     callf   $8,_write32h
        !           628:  611  00025EB5                                   #              writes(",    final Acc = ");
        !           629:  612  00025EB5                                         .data   1
        !           630:  613  00000783 *                                L294:
        !           631:  614  00000783 *  2C2020202066696E616C20416            .ascii  ",    final Acc = \0"
        !           632:                   363203D2000
        !           633:  615  00000795 *                                       .text
        !           634:  616  00025EB5    dd 8f00000783                        pushl   $L294
        !           635:  617  00025EBB    fe 08 effffffb02                     callf   $8,_writes
        !           636:  618  00025EC2                                   #              write32h( dbl_st_acc.m );
        !           637:  619  00025EC2    dd effffffafc                        pushl   _dbl_st_acc
        !           638:  620  00025EC8    fe 08 effffffaf5                     callf   $8,_write32h
        !           639:  621  00025ECF                                   #              writec(' ');
        !           640:  622  00025ECF    dd 20                                pushl   $32
        !           641:  623  00025ED1    fe 08 effffffaec                     callf   $8,_writec
        !           642:  624  00025ED8                                   #              write32h( dbl_st_acc.l );
        !           643:  625  00025ED8    dd effffffaea                        pushl   _dbl_st_acc+4
        !           644:  626  00025EDE    fe 08 effffffadf                     callf   $8,_write32h
        !           645:  627  00025EE5                                   #              writes("\n                                 expected Acc = ");
        !           646:  628  00025EE5                                         .data   1
        !           647:  629  00000795 *                                L295:
        !           648:  630  00000795 *  0A20202020202020202020202            .ascii  "\12                                 expected Acc = \0"
        !           649:                   0202020202020202020202020
        !           650:                   2020202020202020206578706
        !           651:                   56374656420416363203D2000
        !           652:  631  000007c7 *                                       .text
        !           653:  632  00025EE5    dd 8f00000795                        pushl   $L295
        !           654:  633  00025EEB    fe 08 effffffad2                     callf   $8,_writes
        !           655:  634  00025EF2                                   #              write32h( dbl_expected.m );
        !           656:  635  00025EF2    dd effffffacc                        pushl   _dbl_expected
        !           657:  636  00025EF8    fe 08 effffffac5                     callf   $8,_write32h
        !           658:  637  00025EFF                                   #              writec(' ');
        !           659:  638  00025EFF    dd 20                                pushl   $32
        !           660:  639  00025F01    fe 08 effffffabc                     callf   $8,_writec
        !           661:  640  00025F08                                   #              write32h( dbl_expected.l );
        !           662:  641  00025F08    dd effffffaba                        pushl   _dbl_expected+4
        !           663:  642  00025F0E    fe 08 effffffaaf                     callf   $8,_write32h
        !           664:  643  00025F15                                   #          } else {                           /* SGL precision */
        !           665:  644  00025F15    11 41                                jbr     L296
        !           666:  645  00025F17                                  L292:
        !           667:  646  00025F17                                   #              write32h( sgl_ld_acc );
        !           668:  647  00025F17    dd effffffaa7                        pushl   _sgl_ld_acc
        !           669:  648  00025F1D    fe 08 effffffaa0                     callf   $8,_write32h
        !           670:  649  00025F24                                   #              writes(",    final Acc = ");
        !           671:  650  00025F24                                         .data   1
        !           672:  651  000007c7 *                                L297:
        !           673:  652  000007c7 *  2C2020202066696E616C20416            .ascii  ",    final Acc = \0"
        !           674:                   363203D2000
        !           675:  653  000007d9 *                                       .text
        !           676:  654  00025F24    dd 8f000007c7                        pushl   $L297
        !           677:  655  00025F2A    fe 08 effffffa93                     callf   $8,_writes
        !           678:  656  00025F31                                   #              write32h( sgl_st_acc );
        !           679:  657  00025F31    dd effffffa8d                        pushl   _sgl_st_acc
        !           680:  658  00025F37    fe 08 effffffa86                     callf   $8,_write32h
        !           681:  659  00025F3E                                   #              writes("\n                        expected Acc = ");
        !           682:  660  00025F3E                                         .data   1
        !           683:  661  000007d9 *                                L298:
        !           684:  662  000007d9 *  0A20202020202020202020202            .ascii  "\12                        expected Acc = \0"
        !           685:                   0202020202020202020202020
        !           686:                   6578706563746564204163632
        !           687:                   03D2000
        !           688:  663  00000802 *                                       .text
        !           689:  664  00025F3E    dd 8f000007d9                        pushl   $L298
        !           690:  665  00025F44    fe 08 effffffa79                     callf   $8,_writes
        !           691:  666  00025F4B                                   #              write32h( sgl_expected );
        !           692:  667  00025F4B    dd effffffa73                        pushl   _sgl_expected
        !           693:  668  00025F51    fe 08 effffffa6c                     callf   $8,_write32h
        !           694:  669  00025F58                                   #          }
        !           695:  670  00025F58                                  L296:
        !           696:  671  00025F58                                   #     writec('\n');
        !           697:  672  00025F58    dd 0a                                pushl   $10
        !           698:  673  00025F5A    fe 08 effffffa63                     callf   $8,_writec
        !           699:  674  00025F61                                   #     }
        !           700:  675  00025F61                                  L289:
        !           701:  676  00025F61                                   # }
        !           702:  677  00025F61    40                                   ret#2
        !           703:  678  00025F62                                         .set    L274,0x0
        !           704:  679  00025F62                                  L276:
        !           705:  680  00025F62    13 fe3a                              jbr     L277
        !           706:  681  00025F65                                         .data
        !           707:  682  00000678 *                                       .text
        !           708:  683  00025F65    00                                   .align  1
        !           709:  684  00025F66                                         .globl  _mtpr_er_halt
        !           710:  685  00025F66                                  _mtpr_er_halt:
        !           711:  686  00025F66    0000                                 .word   L299
        !           712:  687  00025F68                                   # 
        !           713:  688  00025F68                                   # 
        !           714:  689  00025F68                                   # 
        !           715:  690  00025F68                                   # 
        !           716:  691  00025F68                                   # /******************************************************************************
        !           717:  692  00025F68                                   # *
        !           718:  693  00025F68                                   # *   halt with the failure information in registers
        !           719:  694  00025F68                                   # *
        !           720:  695  00025F68                                   # ******************************************************************************/
        !           721:  696  00025F68                                   # mtpr_er_halt( code )
        !           722:  697  00025F68                                   # int code;                   /* error code to halt with */
        !           723:  698  00025F68                                   # {
        !           724:  699  00025F68    13 00cc                              jbr     L301
        !           725:  700  00025F6B                                  L302:
        !           726:  701  00025F6B                                   #     sgl_dummy1 = code;      /* get the halt code */
        !           727:  702  00025F6B    0d ad04 effffffa51                   movl    4(fp),_sgl_dummy1
        !           728:  703  00025F73                                   #     if( subtest != 2 ) {    /* check for DBL accumulator */
        !           729:  704  00025F73    1d effffffa4b 02                     cmpl    _subtest,$2
        !           730:  705  00025F7A    31 33                                jeql    L303
        !           731:  706  00025F7C                                   #          dbl_ld_acc.m = sgl_ld_acc;         /* get the init Acc */
        !           732:  707  00025F7C    0d effffffa42 effffffa3d             movl    _sgl_ld_acc,_dbl_ld_acc
        !           733:  708  00025F87                                   #          dbl_ld_acc.l = 0;
        !           734:  709  00025F87    4d effffffa3b                        clrl    _dbl_ld_acc+4
        !           735:  710  00025F8D                                   #          dbl_st_acc.m = sgl_st_acc;         /* get the final Acc */
        !           736:  711  00025F8D    0d effffffa31 effffffa2c             movl    _sgl_st_acc,_dbl_st_acc
        !           737:  712  00025F98                                   #          dbl_st_acc.l = 0;
        !           738:  713  00025F98    4d effffffa2a                        clrl    _dbl_st_acc+4
        !           739:  714  00025F9E                                   #          dbl_expected.m = sgl_expected;     /* get the expected Acc */
        !           740:  715  00025F9E    0d effffffa20 effffffa1b             movl    _sgl_expected,_dbl_expected
        !           741:  716  00025FA9                                   #          dbl_expected.l = 0;
        !           742:  717  00025FA9    4d effffffa19                        clrl    _dbl_expected+4
        !           743:  718  00025FAF                                   #     }
        !           744:  719  00025FAF                                   #     asm("movl _test_no,r0");                /* r0  = test number    */
        !           745:  720  00025FAF                                  L303:
        !           746:  721  00025FAF    0d effffffa0f 50              movl _test_no,r0
        !           747:  722  00025FB6                                   #     asm("movl _subtest,r1");                /* r1  = subtest #      */
        !           748:  723  00025FB6    0d effffffa08 51              movl _subtest,r1
        !           749:  724  00025FBD                                   #     asm("movl _sgl_dummy1,r2");             /* r2  = error code     */
        !           750:  725  00025FBD    0d effffffa01 52              movl _sgl_dummy1,r2
        !           751:  726  00025FC4                                   #     asm("movl _cycle,r3");                  /* r3  = cycle count    */
        !           752:  727  00025FC4    0d effffff9fa 53              movl _cycle,r3
        !           753:  728  00025FCB                                   #     if( code == 2 ) {  /* corrupted Acc */
        !           754:  729  00025FCB    1d ad04 02                           cmpl    4(fp),$2
        !           755:  730  00025FCF    21 3a                                jneq    L304
        !           756:  731  00025FD1                                   #          asm("movl _dbl_ld_acc,r4");        /* r4  = MS initial Acc */
        !           757:  732  00025FD1    0d effffff9ed 54              movl _dbl_ld_acc,r4
        !           758:  733  00025FD8                                   #          asm("movl _dbl_ld_acc+4,r5");      /* r5  = LS initial Acc */
        !           759:  734  00025FD8    0d effffff9ea 55              movl _dbl_ld_acc+4,r5
        !           760:  735  00025FDF                                   #          asm("movl _dbl_st_acc,r6");        /* r6  = MS final Acc   */
        !           761:  736  00025FDF    0d effffff9df 56              movl _dbl_st_acc,r6
        !           762:  737  00025FE6                                   #          asm("movl _dbl_st_acc+4,r7");      /* r7  = LS final Acc   */
        !           763:  738  00025FE6    0d effffff9dc 57              movl _dbl_st_acc+4,r7
        !           764:  739  00025FED                                   #          asm("movl _dbl_expected,r8");      /* r8  = MS expected    */
        !           765:  740  00025FED    0d effffff9d1 58              movl _dbl_expected,r8
        !           766:  741  00025FF4                                   #          asm("movl _dbl_expected+4,r9");    /* r9  = LS expected    */
        !           767:  742  00025FF4    0d effffff9ce 59              movl _dbl_expected+4,r9
        !           768:  743  00025FFB                                   #          asm("movl _sgl_value_1,r10");      /* r10 = table addr.    */
        !           769:  744  00025FFB    0d effffff9c3 5a              movl _sgl_value_1,r10
        !           770:  745  00026002                                   #          asm("movl _sgl_value_2,r11");;     /* r11 = entry read     */
        !           771:  746  00026002    0d effffff9bc 5b              movl _sgl_value_2,r11
        !           772:  747  00026009                                   #     } else {  /* wrong data read or wrong final Acc */
        !           773:  748  00026009    11 2a                                jbr     L305
        !           774:  749  0002600B                                  L304:
        !           775:  750  0002600B                                   #          asm("movl _sgl_value_1,r4");       /* r4  = table addr.    */
        !           776:  751  0002600B    0d effffff9b3 54              movl _sgl_value_1,r4
        !           777:  752  00026012                                   #          asm("movl _sgl_value_2,r5");       /* r5  = entry read     */
        !           778:  753  00026012    0d effffff9ac 55              movl _sgl_value_2,r5
        !           779:  754  00026019                                   #          asm("movl _sgl_value_3,r6");       /* r6  = expected entry */
        !           780:  755  00026019    0d effffff9a5 56              movl _sgl_value_3,r6
        !           781:  756  00026020                                   #          asm("movl _sgl_ld_acc,r7");        /* r7  = initial Acc    */
        !           782:  757  00026020    0d effffff99e 57              movl _sgl_ld_acc,r7
        !           783:  758  00026027                                   #          asm("movl _sgl_st_acc,r8");        /* r8  = final Acc      */
        !           784:  759  00026027    0d effffff997 58              movl _sgl_st_acc,r8
        !           785:  760  0002602E                                   #          asm("movl _sgl_expected,r9");;     /* r9  = sgl expected   */
        !           786:  761  0002602E    0d effffff990 59              movl _sgl_expected,r9
        !           787:  762  00026035                                   #     };
        !           788:  763  00026035                                  L305:
        !           789:  764  00026035                                   #     asm("halt");;                           /* HALT ...             */
        !           790:  765  00026035    00                            halt
        !           791:  766  00026036                                   # }
        !           792:  767  00026036    40                                   ret#2
        !           793:  768  00026037                                         .set    L299,0x0
        !           794:  769  00026037                                  L301:
        !           795:  770  00026037    13 ff31                              jbr     L302
        !           796:  771  0002603A                                         .data
        !           797:  771  0004B9FE                                         .data

unix.superglobalmegacorp.com

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