Annotation of cci/d/fpevent/fpp_event.lst, revision 1.1.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  0000C5B4    1f00                                 .word   L218
                      8:    8  0000C5B6                                   # #include "fpp_defs.h"
                      9:    9  0000C5B6                                   # 
                     10:   10  0000C5B6                                   # /*************************************************************************
                     11:   11  0000C5B6                                   # *
                     12:   12  0000C5B6                                   # *        FLOATING POINT PROCESSOR EXCEPTION HANDLER
                     13:   13  0000C5B6                                   # *
                     14:   14  0000C5B6                                   # *  This routine will be called after any trap or exception. It will 
                     15:   15  0000C5B6                                   # *  compare the actual event type to any expected event type ( in 
                     16:   16  0000C5B6                                   # *  _EXP_EVENT ). If no event was expected _EXP_EVENT will be = 0.
                     17:   17  0000C5B6                                   # *
                     18:   18  0000C5B6                                   # *  If a previous error has set the FORCE_LOOP flag, then the test will exit
                     19:   19  0000C5B6                                   # *  through the loop address pointer without any event type checking.
                     20:   20  0000C5B6                                   # *  current subtest through _EVENT_RETURN. 
                     21:   21  0000C5B6                                   # *
                     22:   22  0000C5B6                                   # *  If the event was NOT it expected:
                     23:   23  0000C5B6                                   # *     if _PRT_ERROR is set, an error message will be printed.
                     24:   24  0000C5B6                                   # *     if _HALT_FLG  is set, the program will halt.
                     25:   25  0000C5B6                                   # *     if _UNEXP_EVENT_RET is non-zero, it will contain the return address, 
                     26:   26  0000C5B6                                   # *     or the program will return to the monitor via RETURN.
                     27:   27  0000C5B6                                   # *
                     28:   28  0000C5B6                                   # *  The error message will be of the form:
                     29:   29  0000C5B6                                   # *     ** cycle: xx. test: xx. unexpected event type: xx
                     30:   30  0000C5B6                                   # *     ** Par0 :  xxxxxxxx
                     31:   31  0000C5B6                                   # *     ** Par1 :  xxxxxxxx
                     32:   32  0000C5B6                                   # *     ** PC   :  xxxxxxxx
                     33:   33  0000C5B6                                   # *     ** PSL  :  xxxxxxxx
                     34:   34  0000C5B6                                   # *
                     35:   35  0000C5B6                                   # *
                     36:   36  0000C5B6                                   # *  30-Apr-85  combined 'fpp_event.s' and 'trap.c' into 'fpp_event.c'.
                     37:   37  0000C5B6                                   # *
                     38:   38  0000C5B6                                   # *************************************************************************/
                     39:   39  0000C5B6                                   # 
                     40:   40  0000C5B6                                   # XTrap( code )
                     41:   41  0000C5B6                                   # long code;                          /* event type code */
                     42:   42  0000C5B6                                   # {
                     43:   43  0000C5B6    13 026d                              jbr     L220
                     44:   44  0000C5B9                                  L221:
                     45:   45  0000C5B9                                   # register long r12, r11, r10, r9, r8;
                     46:   46  0000C5B9                                   # long tpc, tpsl;
                     47:   47  0000C5B9                                   #     if( force_loop )                /* check for continual looping  */
                     48:   48  0000C5B9    5d effffffff5                        tstl    _force_loop
                     49:   49  0000C5BF    31 06                                jeql    L222
                     50:   50  0000C5C1                                   #           asm("jmp *_event_return");; 
                     51:   51  0000C5C1    71 ffffffffed                 jmp *_event_return
                     52:   52  0000C5C7                                  L222:
                     53:   53  0000C5C7                                   #     asm("movl 8(fp),r12");          /* get par 0 */
                     54:   54  0000C5C7    0d ad08 5c                    movl 8(fp),r12
                     55:   55  0000C5CB                                   #     asm("movl 12(fp),r11");         /* get par 1 */
                     56:   56  0000C5CB    0d ad0c 5b                    movl 12(fp),r11
                     57:   57  0000C5CF                                   #     asm("movl 16(fp),r10");         /* get par 2 */
                     58:   58  0000C5CF    0d ad10 5a                    movl 16(fp),r10
                     59:   59  0000C5D3                                   #     asm("movl 20(fp),r9");          /* get par 3 */
                     60:   60  0000C5D3    0d ad14 59                    movl 20(fp),r9
                     61:   61  0000C5D7                                   #     asm("movl 24(fp),r8");          /* get par 4 */
                     62:   62  0000C5D7    0d ad18 58                    movl 24(fp),r8
                     63:   63  0000C5DB                                   #     if( code == ARITH_CODE ) {
                     64:   64  0000C5DB    1d ad04 34                           cmpl    4(fp),$52
                     65:   65  0000C5DF    21 10                                jneq    L223
                     66:   66  0000C5E1                                   #           event_code = r12;         /* set the arith fault type seen */
                     67:   67  0000C5E1    0d 5c efffffffcc                     movl    r12,_event_code
                     68:   68  0000C5E8                                   #           event_psl = r10;          /* take the PSL off the stack */
                     69:   69  0000C5E8    0d 5a efffffffc5                     movl    r10,_event_psl
                     70:   70  0000C5EF                                   #     } else
                     71:   71  0000C5EF    11 07                                jbr     L224
                     72:   72  0000C5F1                                  L223:
                     73:   73  0000C5F1                                   #           event_psl = r11;;         /* take the PSL off the stack */
                     74:   74  0000C5F1    0d 5b efffffffbc                     movl    r11,_event_psl
                     75:   75  0000C5F8                                  L224:
                     76:   76  0000C5F8                                   #     if( code == exp_event )  {      /* was the event expected?      */
                     77:   77  0000C5F8    1d ad04 efffffffb4                   cmpl    4(fp),_exp_event
                     78:   78  0000C600    21 18                                jneq    L225
                     79:   79  0000C602                                   #           if( (exp_event != ARITH_CODE) || (exp_code == r12) )
                     80:   80  0000C602    1d efffffffac 34                     cmpl    _exp_event,$52
                     81:   81  0000C609    21 09                                jneq    L9999
                     82:   82  0000C60B    1d efffffffa3 5c                     cmpl    _exp_code,r12
                     83:   83  0000C612    21 06                                jneq    L226
                     84:   84  0000C614                                  L9999:
                     85:   85  0000C614                                   #                 asm("jmp *_event_return");; /* exit -the evt was expected */
                     86:   86  0000C614    71 ffffffff9a                 jmp *_event_return
                     87:   87  0000C61A                                  L226:
                     88:   88  0000C61A                                   #     }
                     89:   89  0000C61A                                   # /*
                     90:   90  0000C61A                                   #  *  If we get here then the event was not expected
                     91:   91  0000C61A                                   # */
                     92:   92  0000C61A                                   #     errcnt++;                       /* bump the error count      */
                     93:   93  0000C61A                                  L225:
                     94:   94  0000C61A    6d efffffff94                        incl    _errcnt
                     95:   95  0000C620                                   #     if( prt_error ) {
                     96:   96  0000C620    5d efffffff8e                        tstl    _prt_error
                     97:   97  0000C626    21 03 13 01b1                        jeql    L227
                     98:   98  0000C62B                                   #           if( !error ) {
                     99:   99  0000C62B    5d efffffff83                        tstl    _error
                    100:  100  0000C631    21 10                                jneq    L228
                    101:  101  0000C633                                   #                 error = TRUE;       /* set current-error flag   */
                    102:  102  0000C633    0d 01 efffffff7a                     movl    $1,_error
                    103:  103  0000C63A                                   #                 writec('\n');
                    104:  104  0000C63A    dd 0a                                pushl   $10
                    105:  105  0000C63C    fe 08 efffffff71                     callf   $8,_writec
                    106:  106  0000C643                                   #           }
                    107:  107  0000C643                                   #           writes("\n** cycle: ");
                    108:  108  0000C643                                  L228:
                    109:  109  0000C643                                         .data   1
                    110:  110  0000027c *                                L231:
                    111:  111  0000027c *  0A2A2A206379636C653A2000             .ascii  "\12** cycle: \0"
                    112:  112  00000288 *                                       .text
                    113:  113  0000C643    dd 8f0000027c                        pushl   $L231
                    114:  114  0000C649    fe 08 efffffff64                     callf   $8,_writes
                    115:  115  0000C650                                   #           writed( cycle );
                    116:  116  0000C650    dd efffffff5e                        pushl   _cycle
                    117:  117  0000C656    fe 08 efffffff57                     callf   $8,_writed
                    118:  118  0000C65D                                   #           writes(". test: ");
                    119:  119  0000C65D                                         .data   1
                    120:  120  00000288 *                                L233:
                    121:  121  00000288 *  2E20746573743A2000                   .ascii  ". test: \0"
                    122:  122  00000291 *                                       .text
                    123:  123  0000C65D    dd 8f00000288                        pushl   $L233
                    124:  124  0000C663    fe 08 efffffff4a                     callf   $8,_writes
                    125:  125  0000C66A                                   #           writeh( test_no );
                    126:  126  0000C66A    dd efffffff44                        pushl   _test_no
                    127:  127  0000C670    fe 08 efffffff3d                     callf   $8,_writeh
                    128:  128  0000C677                                   #           writes(". unexpected event -type: ");
                    129:  129  0000C677                                         .data   1
                    130:  130  00000291 *                                L235:
                    131:  131  00000291 *  2E20756E65787065637465642            .ascii  ". unexpected event -type: \0"
                    132:                   06576656E74202D747970653A
                    133:                   2000
                    134:  132  000002ac *                                       .text
                    135:  133  0000C677    dd 8f00000291                        pushl   $L235
                    136:  134  0000C67D    fe 08 efffffff30                     callf   $8,_writes
                    137:  135  0000C684                                   #           writeh( code );
                    138:  136  0000C684    dd ad04                              pushl   4(fp)
                    139:  137  0000C687    fe 08 efffffff26                     callf   $8,_writeh
                    140:  138  0000C68E                                   #           writec('\n');
                    141:  139  0000C68E    dd 0a                                pushl   $10
                    142:  140  0000C690    fe 08 efffffff1d                     callf   $8,_writec
                    143:  141  0000C697                                   #           if( code==0x37 ) {        /* FPP Emulation trap */
                    144:  142  0000C697    1d ad04 37                           cmpl    4(fp),$55
                    145:  143  0000C69B    21 68                                jneq    L236
                    146:  144  0000C69D                                   #                  writes("** Par 0 :  "); write32h(r12); writec('\n');
                    147:  145  0000C69D                                         .data   1
                    148:  146  000002ac *                                L237:
                    149:  147  000002ac *  2A2A205061722030203A20200            .ascii  "** Par 0 :  \0"
                    150:                   0
                    151:  148  000002b9 *                                       .text
                    152:  149  0000C69D    dd 8f000002ac                        pushl   $L237
                    153:  150  0000C6A3    fe 08 efffffff0a                     callf   $8,_writes
                    154:  151  0000C6AA    dd 5c                                pushl   r12
                    155:  152  0000C6AC    fe 08 efffffff01                     callf   $8,_write32h
                    156:  153  0000C6B3    dd 0a                                pushl   $10
                    157:  154  0000C6B5    fe 08 effffffef8                     callf   $8,_writec
                    158:  155  0000C6BC                                   #                  writes("** Par 1 :  "); write32h(r11); writec('\n');
                    159:  156  0000C6BC                                         .data   1
                    160:  157  000002b9 *                                L239:
                    161:  158  000002b9 *  2A2A205061722031203A20200            .ascii  "** Par 1 :  \0"
                    162:                   0
                    163:  159  000002c6 *                                       .text
                    164:  160  0000C6BC    dd 8f000002b9                        pushl   $L239
                    165:  161  0000C6C2    fe 08 effffffeeb                     callf   $8,_writes
                    166:  162  0000C6C9    dd 5b                                pushl   r11
                    167:  163  0000C6CB    fe 08 effffffee2                     callf   $8,_write32h
                    168:  164  0000C6D2    dd 0a                                pushl   $10
                    169:  165  0000C6D4    fe 08 effffffed9                     callf   $8,_writec
                    170:  166  0000C6DB                                   #                  writes("** Par 2 :  "); write32h(r10); writec('\n');
                    171:  167  0000C6DB                                         .data   1
                    172:  168  000002c6 *                                L240:
                    173:  169  000002c6 *  2A2A205061722032203A20200            .ascii  "** Par 2 :  \0"
                    174:                   0
                    175:  170  000002d3 *                                       .text
                    176:  171  0000C6DB    dd 8f000002c6                        pushl   $L240
                    177:  172  0000C6E1    fe 08 effffffecc                     callf   $8,_writes
                    178:  173  0000C6E8    dd 5a                                pushl   r10
                    179:  174  0000C6EA    fe 08 effffffec3                     callf   $8,_write32h
                    180:  175  0000C6F1    dd 0a                                pushl   $10
                    181:  176  0000C6F3    fe 08 effffffeba                     callf   $8,_writec
                    182:  177  0000C6FA                                   #                  tpc = r9;
                    183:  178  0000C6FA    0d 59 adc8                           movl    r9,-56(fp)
                    184:  179  0000C6FE                                   #                  tpsl = r8; 
                    185:  180  0000C6FE    0d 58 adc4                           movl    r8,-60(fp)
                    186:  181  0000C702                                   #           } else
                    187:  182  0000C702    13 0097                              jbr     L241
                    188:  183  0000C705                                  L236:
                    189:  184  0000C705                                   #           if( (code==0x20) ||       /* bus error */
                    190:  185  0000C705                                   #               (code==0x2f) ||       /* access control violation */
                    191:  186  0000C705                                   #               (code==0x30) ) {      /* page fault */
                    192:  187  0000C705    1d ad04 20                           cmpl    4(fp),$32
                    193:  188  0000C709    31 0c                                jeql    L9998
                    194:  189  0000C70B    1d ad04 2f                           cmpl    4(fp),$47
                    195:  190  0000C70F    31 06                                jeql    L9998
                    196:  191  0000C711    1d ad04 30                           cmpl    4(fp),$48
                    197:  192  0000C715    21 48                                jneq    L242
                    198:  193  0000C717                                  L9998:
                    199:  194  0000C717                                   #                  writes("** Par 0 :  "); write32h(r12); writec('\n');
                    200:  195  0000C717                                         .data   1
                    201:  196  000002d3 *                                L243:
                    202:  197  000002d3 *  2A2A205061722030203A20200            .ascii  "** Par 0 :  \0"
                    203:                   0
                    204:  198  000002e0 *                                       .text
                    205:  199  0000C717    dd 8f000002d3                        pushl   $L243
                    206:  200  0000C71D    fe 08 effffffe90                     callf   $8,_writes
                    207:  201  0000C724    dd 5c                                pushl   r12
                    208:  202  0000C726    fe 08 effffffe87                     callf   $8,_write32h
                    209:  203  0000C72D    dd 0a                                pushl   $10
                    210:  204  0000C72F    fe 08 effffffe7e                     callf   $8,_writec
                    211:  205  0000C736                                   #                  writes("** Par 1 :  "); write32h(r11); writec('\n');
                    212:  206  0000C736                                         .data   1
                    213:  207  000002e0 *                                L244:
                    214:  208  000002e0 *  2A2A205061722031203A20200            .ascii  "** Par 1 :  \0"
                    215:                   0
                    216:  209  000002ed *                                       .text
                    217:  210  0000C736    dd 8f000002e0                        pushl   $L244
                    218:  211  0000C73C    fe 08 effffffe71                     callf   $8,_writes
                    219:  212  0000C743    dd 5b                                pushl   r11
                    220:  213  0000C745    fe 08 effffffe68                     callf   $8,_write32h
                    221:  214  0000C74C    dd 0a                                pushl   $10
                    222:  215  0000C74E    fe 08 effffffe5f                     callf   $8,_writec
                    223:  216  0000C755                                   #                  tpc = r10;
                    224:  217  0000C755    0d 5a adc8                           movl    r10,-56(fp)
                    225:  218  0000C759                                   #                  tpsl = r9; 
                    226:  219  0000C759    0d 59 adc4                           movl    r9,-60(fp)
                    227:  220  0000C75D                                   #           } else 
                    228:  221  0000C75D    11 3d                                jbr     L245
                    229:  222  0000C75F                                  L242:
                    230:  223  0000C75F                                   #           if( (code==0x34) ||       /* arithmetic acception */
                    231:  224  0000C75F                                   #               (code==0x2b) ) {      /* Kcall */
                    232:  225  0000C75F    1d ad04 34                           cmpl    4(fp),$52
                    233:  226  0000C763    31 06                                jeql    L9997
                    234:  227  0000C765    1d ad04 2b                           cmpl    4(fp),$43
                    235:  228  0000C769    21 29                                jneq    L246
                    236:  229  0000C76B                                  L9997:
                    237:  230  0000C76B                                   #                  writes("** Par.  :  "); 
                    238:  231  0000C76B                                         .data   1
                    239:  232  000002ed *                                L247:
                    240:  233  000002ed *  2A2A205061722E20203A20200            .ascii  "** Par.  :  \0"
                    241:                   0
                    242:  234  000002fa *                                       .text
                    243:  235  0000C76B    dd 8f000002ed                        pushl   $L247
                    244:  236  0000C771    fe 08 effffffe3c                     callf   $8,_writes
                    245:  237  0000C778                                   #                  writeh(r12); writec('\n');
                    246:  238  0000C778    dd 5c                                pushl   r12
                    247:  239  0000C77A    fe 08 effffffe33                     callf   $8,_writeh
                    248:  240  0000C781    dd 0a                                pushl   $10
                    249:  241  0000C783    fe 08 effffffe2a                     callf   $8,_writec
                    250:  242  0000C78A                                   #                  tpc = r11;
                    251:  243  0000C78A    0d 5b adc8                           movl    r11,-56(fp)
                    252:  244  0000C78E                                   #                  tpsl = r10;
                    253:  245  0000C78E    0d 5a adc4                           movl    r10,-60(fp)
                    254:  246  0000C792                                   #           } else {
                    255:  247  0000C792    11 08                                jbr     L248
                    256:  248  0000C794                                  L246:
                    257:  249  0000C794                                   #                  tpc = r12;
                    258:  250  0000C794    0d 5c adc8                           movl    r12,-56(fp)
                    259:  251  0000C798                                   #                  tpsl = r11; 
                    260:  252  0000C798    0d 5b adc4                           movl    r11,-60(fp)
                    261:  253  0000C79C                                   #           }
                    262:  254  0000C79C                                  L248:
                    263:  255  0000C79C                                  L245:
                    264:  256  0000C79C                                  L241:
                    265:  257  0000C79C                                   #           writes("** PC    :  "); write32h(tpc); writec('\n');
                    266:  258  0000C79C                                         .data   1
                    267:  259  000002fa *                                L249:
                    268:  260  000002fa *  2A2A205043202020203A20200            .ascii  "** PC    :  \0"
                    269:                   0
                    270:  261  00000307 *                                       .text
                    271:  262  0000C79C    dd 8f000002fa                        pushl   $L249
                    272:  263  0000C7A2    fe 08 effffffe0b                     callf   $8,_writes
                    273:  264  0000C7A9    dd adc8                              pushl   -56(fp)
                    274:  265  0000C7AC    fe 08 effffffe01                     callf   $8,_write32h
                    275:  266  0000C7B3    dd 0a                                pushl   $10
                    276:  267  0000C7B5    fe 08 effffffdf8                     callf   $8,_writec
                    277:  268  0000C7BC                                   #           writes("** PSL   :  "); write32h(tpsl); writec('\n');
                    278:  269  0000C7BC                                         .data   1
                    279:  270  00000307 *                                L250:
                    280:  271  00000307 *  2A2A2050534C2020203A20200            .ascii  "** PSL   :  \0"
                    281:                   0
                    282:  272  00000314 *                                       .text
                    283:  273  0000C7BC    dd 8f00000307                        pushl   $L250
                    284:  274  0000C7C2    fe 08 effffffdeb                     callf   $8,_writes
                    285:  275  0000C7C9    dd adc4                              pushl   -60(fp)
                    286:  276  0000C7CC    fe 08 effffffde1                     callf   $8,_write32h
                    287:  277  0000C7D3    dd 0a                                pushl   $10
                    288:  278  0000C7D5    fe 08 effffffdd8                     callf   $8,_writec
                    289:  279  0000C7DC                                   #     }
                    290:  280  0000C7DC                                   #     if( halt_flg )  {               /* halt on the error? */
                    291:  281  0000C7DC                                  L227:
                    292:  282  0000C7DC    5d effffffdd2                        tstl    _halt_flg
                    293:  283  0000C7E2    31 2b                                jeql    L251
                    294:  284  0000C7E4                                   #           asm("movl _test_no,r0");          /* r0 = test number   */
                    295:  285  0000C7E4    0d effffffdca 50              movl   _test_no,r0
                    296:  286  0000C7EB                                   #           asm("clrl r1");                   /* r1 = 0 (subtest #) */
                    297:  287  0000C7EB    4d 51                         clrl   r1
                    298:  288  0000C7ED                                   #           asm("movl _event_type,r2");       /* r2 = event code    */
                    299:  289  0000C7ED    0d effffffdc1 52              movl   _event_type,r2
                    300:  290  0000C7F4                                   #           asm("movl _cycle,r3");            /* r3 = cycle count   */
                    301:  291  0000C7F4    0d effffffdba 53              movl   _cycle,r3
                    302:  292  0000C7FB                                   #           asm("movl r12,r4");               /* r4 = parameter 1   */
                    303:  293  0000C7FB    0d 5c 54                      movl r12,r4
                    304:  294  0000C7FE                                   #           asm("movl r11,r5");               /* r5 = parameter 2   */
                    305:  295  0000C7FE    0d 5b 55                      movl r11,r5
                    306:  296  0000C801                                   #           asm("movl r10,r6");               /* r6 = parameter 3   */
                    307:  297  0000C801    0d 5a 56                      movl r10,r6
                    308:  298  0000C804                                   #           asm("movl r9,r7");                /* r7 = parameter 4   */
                    309:  299  0000C804    0d 59 57                      movl r9,r7
                    310:  300  0000C807                                   #           asm("movl _index,r8");            /* r8 = data index    */
                    311:  301  0000C807    0d effffffda7 58              movl _index,r8
                    312:  302  0000C80E                                   #           asm("halt");                      /* halt               */
                    313:  303  0000C80E    00                            halt
                    314:  304  0000C80F                                   #     }
                    315:  305  0000C80F                                   #     if( unexp_event_ret )
                    316:  306  0000C80F                                  L251:
                    317:  307  0000C80F    5d effffffd9f                        tstl    _unexp_event_ret
                    318:  308  0000C815    31 08                                jeql    L252
                    319:  309  0000C817                                   #           asm("jmp *_unexp_event_ret");     /* return to the test */
                    320:  310  0000C817    71 fffffffd97                 jmp *_unexp_event_ret
                    321:  311  0000C81D                                   #     else
                    322:  312  0000C81D    11 06                                jbr     L253
                    323:  313  0000C81F                                  L252:
                    324:  314  0000C81F                                   #           asm("jmp *return");
                    325:  315  0000C81F    71 fffffffd8f                 jmp *return
                    326:  316  0000C825                                  L253:
                    327:  317  0000C825                                   # }
                    328:  318  0000C825    40                                   ret#2
                    329:  319  0000C826                                         .set    L218,0x1F00
                    330:  320  0000C826                                  L220:
                    331:  321  0000C826    3c 3c 5d 5e                          subl3   $60,fp,sp
                    332:  322  0000C82A    13 fd8c                              jbr     L221
                    333:  323  0000C82D                                         .data
                    334:  323  00018DE1                                         .data

unix.superglobalmegacorp.com

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