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

1.1     ! root        1:    1  00000000                                  LL0:
        !             2:    2  00000000                                         .data
        !             3:    3  0000027c *                                       .text
        !             4:    4  00000000                                         .align  1
        !             5:    5  00000000                                         .globl  _XTrap
        !             6:    6  00000000                                  _XTrap:
        !             7:    7  0000C438    1f00                                 .word   L215
        !             8:    8  0000C43A                                   # #include "fpp_defs.h"
        !             9:    9  0000C43A                                   # 
        !            10:   10  0000C43A                                   # /*************************************************************************
        !            11:   11  0000C43A                                   # *
        !            12:   12  0000C43A                                   # *        FLOATING POINT PROCESSOR EXCEPTION HANDLER
        !            13:   13  0000C43A                                   # *
        !            14:   14  0000C43A                                   # *  This routine will be called after any trap or exception. It will 
        !            15:   15  0000C43A                                   # *  compare the actual event type to any expected event type ( in 
        !            16:   16  0000C43A                                   # *  _EXP_EVENT ). If no event was expected _EXP_EVENT will be = 0.
        !            17:   17  0000C43A                                   # *
        !            18:   18  0000C43A                                   # *  If a previous error has set the FORCE_LOOP flag, then the test will exit
        !            19:   19  0000C43A                                   # *  through the loop address pointer without any event type checking.
        !            20:   20  0000C43A                                   # *  current subtest through _EVENT_RETURN. 
        !            21:   21  0000C43A                                   # *
        !            22:   22  0000C43A                                   # *  If the event was NOT it expected:
        !            23:   23  0000C43A                                   # *     if _PRT_ERROR is set, an error message will be printed.
        !            24:   24  0000C43A                                   # *     if _HALT_FLG  is set, the program will halt.
        !            25:   25  0000C43A                                   # *     if _UNEXP_EVENT_RET is non-zero, it will contain the return address, 
        !            26:   26  0000C43A                                   # *     or the program will return to the monitor via RETURN.
        !            27:   27  0000C43A                                   # *
        !            28:   28  0000C43A                                   # *  The error message will be of the form:
        !            29:   29  0000C43A                                   # *     ** cycle: xx. test: xx. unexpected event type: xx
        !            30:   30  0000C43A                                   # *     ** Par0 :  xxxxxxxx
        !            31:   31  0000C43A                                   # *     ** Par1 :  xxxxxxxx
        !            32:   32  0000C43A                                   # *     ** PC   :  xxxxxxxx
        !            33:   33  0000C43A                                   # *     ** PSL  :  xxxxxxxx
        !            34:   34  0000C43A                                   # *
        !            35:   35  0000C43A                                   # *
        !            36:   36  0000C43A                                   # *  30-Apr-85  combined 'fpp_event.s' and 'trap.c' into 'fpp_event.c'.
        !            37:   37  0000C43A                                   # *
        !            38:   38  0000C43A                                   # *************************************************************************/
        !            39:   39  0000C43A                                   # 
        !            40:   40  0000C43A                                   # XTrap( code )
        !            41:   41  0000C43A                                   # long code;                          /* event type code */
        !            42:   42  0000C43A                                   # {
        !            43:   43  0000C43A    13 026d                              jbr     L217
        !            44:   44  0000C43D                                  L218:
        !            45:   45  0000C43D                                   # register long r12, r11, r10, r9, r8;
        !            46:   46  0000C43D                                   # long tpc, tpsl;
        !            47:   47  0000C43D                                   #     if( force_loop )                /* check for continual looping  */
        !            48:   48  0000C43D    5d effffffff5                        tstl    _force_loop
        !            49:   49  0000C443    31 06                                jeql    L219
        !            50:   50  0000C445                                   #           asm("jmp *_event_return");; 
        !            51:   51  0000C445    71 ffffffffed                 jmp *_event_return
        !            52:   52  0000C44B                                  L219:
        !            53:   53  0000C44B                                   #     asm("movl 8(fp),r12");          /* get par 0 */
        !            54:   54  0000C44B    0d ad08 5c                    movl 8(fp),r12
        !            55:   55  0000C44F                                   #     asm("movl 12(fp),r11");         /* get par 1 */
        !            56:   56  0000C44F    0d ad0c 5b                    movl 12(fp),r11
        !            57:   57  0000C453                                   #     asm("movl 16(fp),r10");         /* get par 2 */
        !            58:   58  0000C453    0d ad10 5a                    movl 16(fp),r10
        !            59:   59  0000C457                                   #     asm("movl 20(fp),r9");          /* get par 3 */
        !            60:   60  0000C457    0d ad14 59                    movl 20(fp),r9
        !            61:   61  0000C45B                                   #     asm("movl 24(fp),r8");          /* get par 4 */
        !            62:   62  0000C45B    0d ad18 58                    movl 24(fp),r8
        !            63:   63  0000C45F                                   #     if( code == ARITH_CODE ) {
        !            64:   64  0000C45F    1d ad04 34                           cmpl    4(fp),$52
        !            65:   65  0000C463    21 10                                jneq    L220
        !            66:   66  0000C465                                   #           event_code = r12;         /* set the arith fault type seen */
        !            67:   67  0000C465    0d 5c efffffffcc                     movl    r12,_event_code
        !            68:   68  0000C46C                                   #           event_psl = r10;          /* take the PSL off the stack */
        !            69:   69  0000C46C    0d 5a efffffffc5                     movl    r10,_event_psl
        !            70:   70  0000C473                                   #     } else
        !            71:   71  0000C473    11 07                                jbr     L221
        !            72:   72  0000C475                                  L220:
        !            73:   73  0000C475                                   #           event_psl = r11;;         /* take the PSL off the stack */
        !            74:   74  0000C475    0d 5b efffffffbc                     movl    r11,_event_psl
        !            75:   75  0000C47C                                  L221:
        !            76:   76  0000C47C                                   #     if( code == exp_event )  {      /* was the event expected?      */
        !            77:   77  0000C47C    1d ad04 efffffffb4                   cmpl    4(fp),_exp_event
        !            78:   78  0000C484    21 18                                jneq    L222
        !            79:   79  0000C486                                   #           if( (exp_event != ARITH_CODE) || (exp_code == r12) )
        !            80:   80  0000C486    1d efffffffac 34                     cmpl    _exp_event,$52
        !            81:   81  0000C48D    21 09                                jneq    L9999
        !            82:   82  0000C48F    1d efffffffa3 5c                     cmpl    _exp_code,r12
        !            83:   83  0000C496    21 06                                jneq    L223
        !            84:   84  0000C498                                  L9999:
        !            85:   85  0000C498                                   #                 asm("jmp *_event_return");; /* exit -the evt was expected */
        !            86:   86  0000C498    71 ffffffff9a                 jmp *_event_return
        !            87:   87  0000C49E                                  L223:
        !            88:   88  0000C49E                                   #     }
        !            89:   89  0000C49E                                   # /*
        !            90:   90  0000C49E                                   #  *  If we get here then the event was not expected
        !            91:   91  0000C49E                                   # */
        !            92:   92  0000C49E                                   #     errcnt++;                       /* bump the error count      */
        !            93:   93  0000C49E                                  L222:
        !            94:   94  0000C49E    6d efffffff94                        incl    _errcnt
        !            95:   95  0000C4A4                                   #     if( prt_error ) {
        !            96:   96  0000C4A4    5d efffffff8e                        tstl    _prt_error
        !            97:   97  0000C4AA    21 03 13 01b1                        jeql    L224
        !            98:   98  0000C4AF                                   #           if( !error ) {
        !            99:   99  0000C4AF    5d efffffff83                        tstl    _error
        !           100:  100  0000C4B5    21 10                                jneq    L225
        !           101:  101  0000C4B7                                   #                 error = TRUE;       /* set current-error flag   */
        !           102:  102  0000C4B7    0d 01 efffffff7a                     movl    $1,_error
        !           103:  103  0000C4BE                                   #                 writec('\n');
        !           104:  104  0000C4BE    dd 0a                                pushl   $10
        !           105:  105  0000C4C0    fe 08 efffffff71                     callf   $8,_writec
        !           106:  106  0000C4C7                                   #           }
        !           107:  107  0000C4C7                                   #           writes("\n** cycle: ");
        !           108:  108  0000C4C7                                  L225:
        !           109:  109  0000C4C7                                         .data   1
        !           110:  110  0000027c *                                L228:
        !           111:  111  0000027c *  0A2A2A206379636C653A2000             .ascii  "\12** cycle: \0"
        !           112:  112  00000288 *                                       .text
        !           113:  113  0000C4C7    dd 8f0000027c                        pushl   $L228
        !           114:  114  0000C4CD    fe 08 efffffff64                     callf   $8,_writes
        !           115:  115  0000C4D4                                   #           writed( cycle );
        !           116:  116  0000C4D4    dd efffffff5e                        pushl   _cycle
        !           117:  117  0000C4DA    fe 08 efffffff57                     callf   $8,_writed
        !           118:  118  0000C4E1                                   #           writes(". test: ");
        !           119:  119  0000C4E1                                         .data   1
        !           120:  120  00000288 *                                L230:
        !           121:  121  00000288 *  2E20746573743A2000                   .ascii  ". test: \0"
        !           122:  122  00000291 *                                       .text
        !           123:  123  0000C4E1    dd 8f00000288                        pushl   $L230
        !           124:  124  0000C4E7    fe 08 efffffff4a                     callf   $8,_writes
        !           125:  125  0000C4EE                                   #           writeh( test_no );
        !           126:  126  0000C4EE    dd efffffff44                        pushl   _test_no
        !           127:  127  0000C4F4    fe 08 efffffff3d                     callf   $8,_writeh
        !           128:  128  0000C4FB                                   #           writes(". unexpected event -type: ");
        !           129:  129  0000C4FB                                         .data   1
        !           130:  130  00000291 *                                L232:
        !           131:  131  00000291 *  2E20756E65787065637465642            .ascii  ". unexpected event -type: \0"
        !           132:                   06576656E74202D747970653A
        !           133:                   2000
        !           134:  132  000002ac *                                       .text
        !           135:  133  0000C4FB    dd 8f00000291                        pushl   $L232
        !           136:  134  0000C501    fe 08 efffffff30                     callf   $8,_writes
        !           137:  135  0000C508                                   #           writeh( code );
        !           138:  136  0000C508    dd ad04                              pushl   4(fp)
        !           139:  137  0000C50B    fe 08 efffffff26                     callf   $8,_writeh
        !           140:  138  0000C512                                   #           writec('\n');
        !           141:  139  0000C512    dd 0a                                pushl   $10
        !           142:  140  0000C514    fe 08 efffffff1d                     callf   $8,_writec
        !           143:  141  0000C51B                                   #           if( code==0x37 ) {        /* FPP Emulation trap */
        !           144:  142  0000C51B    1d ad04 37                           cmpl    4(fp),$55
        !           145:  143  0000C51F    21 68                                jneq    L233
        !           146:  144  0000C521                                   #                  writes("** Par 0 :  "); write32h(r12); writec('\n');
        !           147:  145  0000C521                                         .data   1
        !           148:  146  000002ac *                                L234:
        !           149:  147  000002ac *  2A2A205061722030203A20200            .ascii  "** Par 0 :  \0"
        !           150:                   0
        !           151:  148  000002b9 *                                       .text
        !           152:  149  0000C521    dd 8f000002ac                        pushl   $L234
        !           153:  150  0000C527    fe 08 efffffff0a                     callf   $8,_writes
        !           154:  151  0000C52E    dd 5c                                pushl   r12
        !           155:  152  0000C530    fe 08 efffffff01                     callf   $8,_write32h
        !           156:  153  0000C537    dd 0a                                pushl   $10
        !           157:  154  0000C539    fe 08 effffffef8                     callf   $8,_writec
        !           158:  155  0000C540                                   #                  writes("** Par 1 :  "); write32h(r11); writec('\n');
        !           159:  156  0000C540                                         .data   1
        !           160:  157  000002b9 *                                L236:
        !           161:  158  000002b9 *  2A2A205061722031203A20200            .ascii  "** Par 1 :  \0"
        !           162:                   0
        !           163:  159  000002c6 *                                       .text
        !           164:  160  0000C540    dd 8f000002b9                        pushl   $L236
        !           165:  161  0000C546    fe 08 effffffeeb                     callf   $8,_writes
        !           166:  162  0000C54D    dd 5b                                pushl   r11
        !           167:  163  0000C54F    fe 08 effffffee2                     callf   $8,_write32h
        !           168:  164  0000C556    dd 0a                                pushl   $10
        !           169:  165  0000C558    fe 08 effffffed9                     callf   $8,_writec
        !           170:  166  0000C55F                                   #                  writes("** Par 2 :  "); write32h(r10); writec('\n');
        !           171:  167  0000C55F                                         .data   1
        !           172:  168  000002c6 *                                L237:
        !           173:  169  000002c6 *  2A2A205061722032203A20200            .ascii  "** Par 2 :  \0"
        !           174:                   0
        !           175:  170  000002d3 *                                       .text
        !           176:  171  0000C55F    dd 8f000002c6                        pushl   $L237
        !           177:  172  0000C565    fe 08 effffffecc                     callf   $8,_writes
        !           178:  173  0000C56C    dd 5a                                pushl   r10
        !           179:  174  0000C56E    fe 08 effffffec3                     callf   $8,_write32h
        !           180:  175  0000C575    dd 0a                                pushl   $10
        !           181:  176  0000C577    fe 08 effffffeba                     callf   $8,_writec
        !           182:  177  0000C57E                                   #                  tpc = r9;
        !           183:  178  0000C57E    0d 59 adc8                           movl    r9,-56(fp)
        !           184:  179  0000C582                                   #                  tpsl = r8; 
        !           185:  180  0000C582    0d 58 adc4                           movl    r8,-60(fp)
        !           186:  181  0000C586                                   #           } else
        !           187:  182  0000C586    13 0097                              jbr     L238
        !           188:  183  0000C589                                  L233:
        !           189:  184  0000C589                                   #           if( (code==0x20) ||       /* bus error */
        !           190:  185  0000C589                                   #               (code==0x2f) ||       /* access control violation */
        !           191:  186  0000C589                                   #               (code==0x30) ) {      /* page fault */
        !           192:  187  0000C589    1d ad04 20                           cmpl    4(fp),$32
        !           193:  188  0000C58D    31 0c                                jeql    L9998
        !           194:  189  0000C58F    1d ad04 2f                           cmpl    4(fp),$47
        !           195:  190  0000C593    31 06                                jeql    L9998
        !           196:  191  0000C595    1d ad04 30                           cmpl    4(fp),$48
        !           197:  192  0000C599    21 48                                jneq    L239
        !           198:  193  0000C59B                                  L9998:
        !           199:  194  0000C59B                                   #                  writes("** Par 0 :  "); write32h(r12); writec('\n');
        !           200:  195  0000C59B                                         .data   1
        !           201:  196  000002d3 *                                L240:
        !           202:  197  000002d3 *  2A2A205061722030203A20200            .ascii  "** Par 0 :  \0"
        !           203:                   0
        !           204:  198  000002e0 *                                       .text
        !           205:  199  0000C59B    dd 8f000002d3                        pushl   $L240
        !           206:  200  0000C5A1    fe 08 effffffe90                     callf   $8,_writes
        !           207:  201  0000C5A8    dd 5c                                pushl   r12
        !           208:  202  0000C5AA    fe 08 effffffe87                     callf   $8,_write32h
        !           209:  203  0000C5B1    dd 0a                                pushl   $10
        !           210:  204  0000C5B3    fe 08 effffffe7e                     callf   $8,_writec
        !           211:  205  0000C5BA                                   #                  writes("** Par 1 :  "); write32h(r11); writec('\n');
        !           212:  206  0000C5BA                                         .data   1
        !           213:  207  000002e0 *                                L241:
        !           214:  208  000002e0 *  2A2A205061722031203A20200            .ascii  "** Par 1 :  \0"
        !           215:                   0
        !           216:  209  000002ed *                                       .text
        !           217:  210  0000C5BA    dd 8f000002e0                        pushl   $L241
        !           218:  211  0000C5C0    fe 08 effffffe71                     callf   $8,_writes
        !           219:  212  0000C5C7    dd 5b                                pushl   r11
        !           220:  213  0000C5C9    fe 08 effffffe68                     callf   $8,_write32h
        !           221:  214  0000C5D0    dd 0a                                pushl   $10
        !           222:  215  0000C5D2    fe 08 effffffe5f                     callf   $8,_writec
        !           223:  216  0000C5D9                                   #                  tpc = r10;
        !           224:  217  0000C5D9    0d 5a adc8                           movl    r10,-56(fp)
        !           225:  218  0000C5DD                                   #                  tpsl = r9; 
        !           226:  219  0000C5DD    0d 59 adc4                           movl    r9,-60(fp)
        !           227:  220  0000C5E1                                   #           } else 
        !           228:  221  0000C5E1    11 3d                                jbr     L242
        !           229:  222  0000C5E3                                  L239:
        !           230:  223  0000C5E3                                   #           if( (code==0x34) ||       /* arithmetic acception */
        !           231:  224  0000C5E3                                   #               (code==0x2b) ) {      /* Kcall */
        !           232:  225  0000C5E3    1d ad04 34                           cmpl    4(fp),$52
        !           233:  226  0000C5E7    31 06                                jeql    L9997
        !           234:  227  0000C5E9    1d ad04 2b                           cmpl    4(fp),$43
        !           235:  228  0000C5ED    21 29                                jneq    L243
        !           236:  229  0000C5EF                                  L9997:
        !           237:  230  0000C5EF                                   #                  writes("** Par.  :  "); 
        !           238:  231  0000C5EF                                         .data   1
        !           239:  232  000002ed *                                L244:
        !           240:  233  000002ed *  2A2A205061722E20203A20200            .ascii  "** Par.  :  \0"
        !           241:                   0
        !           242:  234  000002fa *                                       .text
        !           243:  235  0000C5EF    dd 8f000002ed                        pushl   $L244
        !           244:  236  0000C5F5    fe 08 effffffe3c                     callf   $8,_writes
        !           245:  237  0000C5FC                                   #                  writeh(r12); writec('\n');
        !           246:  238  0000C5FC    dd 5c                                pushl   r12
        !           247:  239  0000C5FE    fe 08 effffffe33                     callf   $8,_writeh
        !           248:  240  0000C605    dd 0a                                pushl   $10
        !           249:  241  0000C607    fe 08 effffffe2a                     callf   $8,_writec
        !           250:  242  0000C60E                                   #                  tpc = r11;
        !           251:  243  0000C60E    0d 5b adc8                           movl    r11,-56(fp)
        !           252:  244  0000C612                                   #                  tpsl = r10;
        !           253:  245  0000C612    0d 5a adc4                           movl    r10,-60(fp)
        !           254:  246  0000C616                                   #           } else {
        !           255:  247  0000C616    11 08                                jbr     L245
        !           256:  248  0000C618                                  L243:
        !           257:  249  0000C618                                   #                  tpc = r12;
        !           258:  250  0000C618    0d 5c adc8                           movl    r12,-56(fp)
        !           259:  251  0000C61C                                   #                  tpsl = r11; 
        !           260:  252  0000C61C    0d 5b adc4                           movl    r11,-60(fp)
        !           261:  253  0000C620                                   #           }
        !           262:  254  0000C620                                  L245:
        !           263:  255  0000C620                                  L242:
        !           264:  256  0000C620                                  L238:
        !           265:  257  0000C620                                   #           writes("** PC    :  "); write32h(tpc); writec('\n');
        !           266:  258  0000C620                                         .data   1
        !           267:  259  000002fa *                                L246:
        !           268:  260  000002fa *  2A2A205043202020203A20200            .ascii  "** PC    :  \0"
        !           269:                   0
        !           270:  261  00000307 *                                       .text
        !           271:  262  0000C620    dd 8f000002fa                        pushl   $L246
        !           272:  263  0000C626    fe 08 effffffe0b                     callf   $8,_writes
        !           273:  264  0000C62D    dd adc8                              pushl   -56(fp)
        !           274:  265  0000C630    fe 08 effffffe01                     callf   $8,_write32h
        !           275:  266  0000C637    dd 0a                                pushl   $10
        !           276:  267  0000C639    fe 08 effffffdf8                     callf   $8,_writec
        !           277:  268  0000C640                                   #           writes("** PSL   :  "); write32h(tpsl); writec('\n');
        !           278:  269  0000C640                                         .data   1
        !           279:  270  00000307 *                                L247:
        !           280:  271  00000307 *  2A2A2050534C2020203A20200            .ascii  "** PSL   :  \0"
        !           281:                   0
        !           282:  272  00000314 *                                       .text
        !           283:  273  0000C640    dd 8f00000307                        pushl   $L247
        !           284:  274  0000C646    fe 08 effffffdeb                     callf   $8,_writes
        !           285:  275  0000C64D    dd adc4                              pushl   -60(fp)
        !           286:  276  0000C650    fe 08 effffffde1                     callf   $8,_write32h
        !           287:  277  0000C657    dd 0a                                pushl   $10
        !           288:  278  0000C659    fe 08 effffffdd8                     callf   $8,_writec
        !           289:  279  0000C660                                   #     }
        !           290:  280  0000C660                                   #     if( halt_flg )  {               /* halt on the error? */
        !           291:  281  0000C660                                  L224:
        !           292:  282  0000C660    5d effffffdd2                        tstl    _halt_flg
        !           293:  283  0000C666    31 2b                                jeql    L248
        !           294:  284  0000C668                                   #           asm("movl _test_no,r0");          /* r0 = test number   */
        !           295:  285  0000C668    0d effffffdca 50              movl   _test_no,r0
        !           296:  286  0000C66F                                   #           asm("clrl r1");                   /* r1 = 0 (subtest #) */
        !           297:  287  0000C66F    4d 51                         clrl   r1
        !           298:  288  0000C671                                   #           asm("movl _event_type,r2");       /* r2 = event code    */
        !           299:  289  0000C671    0d effffffdc1 52              movl   _event_type,r2
        !           300:  290  0000C678                                   #           asm("movl _cycle,r3");            /* r3 = cycle count   */
        !           301:  291  0000C678    0d effffffdba 53              movl   _cycle,r3
        !           302:  292  0000C67F                                   #           asm("movl r12,r4");               /* r4 = parameter 1   */
        !           303:  293  0000C67F    0d 5c 54                      movl r12,r4
        !           304:  294  0000C682                                   #           asm("movl r11,r5");               /* r5 = parameter 2   */
        !           305:  295  0000C682    0d 5b 55                      movl r11,r5
        !           306:  296  0000C685                                   #           asm("movl r10,r6");               /* r6 = parameter 3   */
        !           307:  297  0000C685    0d 5a 56                      movl r10,r6
        !           308:  298  0000C688                                   #           asm("movl r9,r7");                /* r7 = parameter 4   */
        !           309:  299  0000C688    0d 59 57                      movl r9,r7
        !           310:  300  0000C68B                                   #           asm("movl _index,r8");            /* r8 = data index    */
        !           311:  301  0000C68B    0d effffffda7 58              movl _index,r8
        !           312:  302  0000C692                                   #           asm("halt");                      /* halt               */
        !           313:  303  0000C692    00                            halt
        !           314:  304  0000C693                                   #     }
        !           315:  305  0000C693                                   #     if( unexp_event_ret )
        !           316:  306  0000C693                                  L248:
        !           317:  307  0000C693    5d effffffd9f                        tstl    _unexp_event_ret
        !           318:  308  0000C699    31 08                                jeql    L249
        !           319:  309  0000C69B                                   #           asm("jmp *_unexp_event_ret");     /* return to the test */
        !           320:  310  0000C69B    71 fffffffd97                 jmp *_unexp_event_ret
        !           321:  311  0000C6A1                                   #     else
        !           322:  312  0000C6A1    11 06                                jbr     L250
        !           323:  313  0000C6A3                                  L249:
        !           324:  314  0000C6A3                                   #           asm("jmp *return");
        !           325:  315  0000C6A3    71 fffffffd8f                 jmp *return
        !           326:  316  0000C6A9                                  L250:
        !           327:  317  0000C6A9                                   # }
        !           328:  318  0000C6A9    40                                   ret#2
        !           329:  319  0000C6AA                                         .set    L215,0x1F00
        !           330:  320  0000C6AA                                  L217:
        !           331:  321  0000C6AA    3c 3c 5d 5e                          subl3   $60,fp,sp
        !           332:  322  0000C6AE    13 fd8c                              jbr     L218
        !           333:  323  0000C6B1                                         .data
        !           334:  323  00018AE9                                         .data

unix.superglobalmegacorp.com

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