Annotation of nono/exp/fmovemc.has, revision 1.1.1.3

1.1       root        1: ;
                      2: ; nono
1.1.1.2   root        3: ; Copyright (C) 2020 nono project
1.1       root        4: ;
1.1.1.2   root        5: ; Redistribution and use in source and binary forms, with or without
                      6: ; modification, are permitted provided that the following conditions
                      7: ; are met:
                      8: ; 1. Redistributions of source code must retain the above copyright
                      9: ;    notice, this list of conditions and the following disclaimer.
                     10: ; 2. Redistributions in binary form must reproduce the above copyright
                     11: ;    notice, this list of conditions and the following disclaimer in the
                     12: ;    documentation and/or other materials provided with the distribution.
                     13: ;
                     14: ; THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
                     15: ; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
                     16: ; OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
                     17: ; IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
                     18: ; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
                     19: ; BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
                     20: ; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
                     21: ; AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
                     22: ; OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     23: ; OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     24: ; SUCH DAMAGE.
1.1       root       25: 
                     26: ; How to compile:
1.1.1.3 ! root       27: ;  > has fmovemc.has
        !            28: ;  > hlk fmovemc.o si_util.o
1.1       root       29: 
                     30:        .xref   hexstr_long
                     31:        .include doscall.mac
                     32:        .list
                     33:        .cpu    68030
                     34: 
                     35: PRINT  .macro  msg
                     36:        pea.l   msg(pc)
                     37:        DOS     _PRINT
                     38:        addq.l  #4,sp
                     39:        .endm
                     40: 
                     41: SET_FLINE_TRAP .macro
                     42:        move.l  (a5),a4
                     43:        lea.l   fline_handler(pc),a1
                     44:        move.l  a1,(a5)
                     45:        .endm
                     46: 
                     47: RESTORE_FLINE_TRAP     .macro
                     48:        move.l  a4,(a5)
                     49:        .endm
                     50: 
                     51:        .text
                     52:        .even
1.1.1.3 ! root       53: start:
        !            54:        bra     start2
        !            55: 
1.1       root       56: test_fmovem_dn_to____:
                     57:        PRINT   msg_fmovem_dn_to____
                     58:        fmove.l #0,fpcr
                     59:        fmove.l #0,fpsr
                     60:        fmove.l #0,fpiar
                     61:        move.l  #$55555555,d0
                     62:        SET_FLINE_TRAP
                     63:        moveq.l #0,d7
                     64:        lea.l   @f,a3
                     65:        .dc.w   $f200, $8000
                     66: @@:
                     67:        RESTORE_FLINE_TRAP
                     68:        tst.l   d7
                     69:        beq     @f
                     70:        PRINT   msg_fail_trap
                     71:        rts
                     72: @@:
                     73:        fmove.l fpcr,d0
                     74:        moveq.l #0,d1
                     75:        cmp.l   d1,d0
                     76:        beq     @f
                     77:        pea.l   msg_fail_cr(pc)
                     78:        move.l  d1,-(sp)
                     79:        move.l  d0,-(sp)
                     80:        bsr     result
                     81:        lea.l   12(sp),sp
                     82: @@:
                     83:        fmove.l fpsr,d0
                     84:        moveq.l #0,d1
                     85:        cmp.l   d1,d0
                     86:        beq     @f
                     87:        pea.l   msg_fail_sr(pc)
                     88:        move.l  d1,-(sp)
                     89:        move.l  d0,-(sp)
                     90:        bsr     result
                     91:        lea.l   12(sp),sp
                     92: @@:
                     93:        fmove.l fpiar,a0
                     94:        move.l  #$55555555,a1
                     95:        cmpa.l  a1,a0
                     96:        beq     @f
                     97:        pea.l   msg_fail_ir(pc)
                     98:        move.l  a1,-(sp)
                     99:        move.l  a0,-(sp)
                    100:        bsr     result
                    101:        lea.l   12(sp),sp
                    102: @@:
                    103:        tst.l   d7
                    104:        bne     @f
                    105:        PRINT   msg_ok
                    106: @@:
                    107:        rts
                    108: 
                    109: test_fmovem_an_to____:
                    110:        PRINT   msg_fmovem_an_to____
                    111:        fmove.l #0,fpcr
                    112:        fmove.l #0,fpsr
                    113:        fmove.l #0,fpiar
                    114:        move.l  #$55555555,a0
                    115:        SET_FLINE_TRAP
                    116:        moveq.l #0,d7
                    117:        lea.l   @f,a3
                    118:        .dc.w   $f208, $8000
                    119: @@:
                    120:        RESTORE_FLINE_TRAP
                    121:        tst.l   d7
                    122:        beq     @f
                    123:        PRINT   msg_fail_trap
                    124:        rts
                    125: @@:
                    126:        fmove.l fpcr,d0
                    127:        moveq.l #0,d1
                    128:        cmp.l   d1,d0
                    129:        beq     @f
                    130:        pea.l   msg_fail_cr(pc)
                    131:        move.l  d1,-(sp)
                    132:        move.l  d0,-(sp)
                    133:        bsr     result
                    134:        lea.l   12(sp),sp
                    135: @@:
                    136:        fmove.l fpsr,d0
                    137:        moveq.l #0,d1
                    138:        cmp.l   d1,d0
                    139:        beq     @f
                    140:        pea.l   msg_fail_sr(pc)
                    141:        move.l  d1,-(sp)
                    142:        move.l  d0,-(sp)
                    143:        bsr     result
                    144:        lea.l   12(sp),sp
                    145: @@:
                    146:        fmove.l fpiar,a0
                    147:        move.l  #$55555555,a1
                    148:        cmpa.l  a1,a0
                    149:        beq     @f
                    150:        pea.l   msg_fail_ir(pc)
                    151:        move.l  a1,-(sp)
                    152:        move.l  a0,-(sp)
                    153:        bsr     result
                    154:        lea.l   12(sp),sp
                    155: @@:
                    156:        tst.l   d7
                    157:        bne     @f
                    158:        PRINT   msg_ok
                    159: @@:
                    160:        rts
                    161: 
                    162: test_fmovem_anin_to____:
                    163:        PRINT   msg_fmovem_anin_to____
                    164:        fmove.l #0,fpcr
                    165:        fmove.l #0,fpsr
                    166:        fmove.l #0,fpiar
                    167:        move.l  #$55555555,workarea
                    168:        lea.l   workarea(pc),a0
                    169:        SET_FLINE_TRAP
                    170:        moveq.l #0,d7
                    171:        lea.l   @f,a3
                    172:        .dc.w   $f210, $8000
                    173: @@:
                    174:        RESTORE_FLINE_TRAP
                    175:        tst.l   d7
                    176:        beq     @f
                    177:        PRINT   msg_fail_trap
                    178:        rts
                    179: @@:
                    180:        lea.l   workarea(pc),a1
                    181:        cmpa.l  a1,a0
                    182:        beq     @f
                    183:        pea.l   msg_fail_addr(pc)
                    184:        move.l  a1,-(sp)
                    185:        move.l  a0,-(sp)
                    186:        bsr     result
                    187:        lea.l   12(sp),sp
                    188: @@:
                    189:        fmove.l fpcr,d0
                    190:        moveq.l #0,d1
                    191:        cmp.l   d1,d0
                    192:        beq     @f
                    193:        pea.l   msg_fail_cr(pc)
                    194:        move.l  d1,-(sp)
                    195:        move.l  d0,-(sp)
                    196:        bsr     result
                    197:        lea.l   12(sp),sp
                    198: @@:
                    199:        fmove.l fpsr,d0
                    200:        moveq.l #0,d1
                    201:        cmp.l   d1,d0
                    202:        beq     @f
                    203:        pea.l   msg_fail_sr(pc)
                    204:        move.l  d1,-(sp)
                    205:        move.l  d0,-(sp)
                    206:        bsr     result
                    207:        lea.l   12(sp),sp
                    208: @@:
                    209:        fmove.l fpiar,a0
                    210:        move.l  #$55555555,a1
                    211:        cmpa.l  a1,a0
                    212:        beq     @f
                    213:        pea.l   msg_fail_ir(pc)
                    214:        move.l  a1,-(sp)
                    215:        move.l  a0,-(sp)
                    216:        bsr     result
                    217:        lea.l   12(sp),sp
                    218: @@:
                    219:        tst.l   d7
                    220:        bne     @f
                    221:        PRINT   msg_ok
                    222: @@:
                    223:        rts
                    224: 
                    225: test_fmovem_anpi_to____:
                    226:        PRINT   msg_fmovem_anpi_to____
                    227:        fmove.l #0,fpcr
                    228:        fmove.l #0,fpsr
                    229:        fmove.l #0,fpiar
                    230:        move.l  #$55555555,workarea
                    231:        lea.l   workarea(pc),a0
                    232:        SET_FLINE_TRAP
                    233:        moveq.l #0,d7
                    234:        lea.l   @f,a3
                    235:        .dc.w   $f218, $8000
                    236: @@:
                    237:        RESTORE_FLINE_TRAP
                    238:        tst.l   d7
                    239:        beq     @f
                    240:        PRINT   msg_fail_trap
                    241:        rts
                    242: @@:
                    243:        lea.l workarea+4(pc),a1
                    244:        cmpa.l  a1,a0
                    245:        beq     @f
                    246:        pea.l   msg_fail_addr(pc)
                    247:        move.l  a1,-(sp)
                    248:        move.l  a0,-(sp)
                    249:        bsr     result
                    250:        lea.l   12(sp),sp
                    251: @@:
                    252:        fmove.l fpcr,d0
                    253:        moveq.l #0,d1
                    254:        cmp.l   d1,d0
                    255:        beq     @f
                    256:        pea.l   msg_fail_cr(pc)
                    257:        move.l  d1,-(sp)
                    258:        move.l  d0,-(sp)
                    259:        bsr     result
                    260:        lea.l   12(sp),sp
                    261: @@:
                    262:        fmove.l fpsr,d0
                    263:        moveq.l #0,d1
                    264:        cmp.l   d1,d0
                    265:        beq     @f
                    266:        pea.l   msg_fail_sr(pc)
                    267:        move.l  d1,-(sp)
                    268:        move.l  d0,-(sp)
                    269:        bsr     result
                    270:        lea.l   12(sp),sp
                    271: @@:
                    272:        fmove.l fpiar,a0
                    273:        move.l  #$55555555,a1
                    274:        cmpa.l  a1,a0
                    275:        beq     @f
                    276:        pea.l   msg_fail_ir(pc)
                    277:        move.l  a1,-(sp)
                    278:        move.l  a0,-(sp)
                    279:        bsr     result
                    280:        lea.l   12(sp),sp
                    281: @@:
                    282:        tst.l   d7
                    283:        bne     @f
                    284:        PRINT   msg_ok
                    285: @@:
                    286:        rts
                    287: 
                    288: test_fmovem_anpd_to____:
                    289:        PRINT   msg_fmovem_anpd_to____
                    290:        fmove.l #0,fpcr
                    291:        fmove.l #0,fpsr
                    292:        fmove.l #0,fpiar
                    293:        move.l  #$55555555,workarea
                    294:        lea.l   workarea+4(pc),a0
                    295:        SET_FLINE_TRAP
                    296:        moveq.l #0,d7
                    297:        lea.l   @f,a3
                    298:        .dc.w   $f220, $8000
                    299: @@:
                    300:        RESTORE_FLINE_TRAP
                    301:        tst.l   d7
                    302:        beq     @f
                    303:        PRINT   msg_fail_trap
                    304:        rts
                    305: @@:
                    306:        lea.l   workarea(pc),a1
                    307:        cmpa.l  a1,a0
                    308:        beq     @f
                    309:        pea.l   msg_fail_addr(pc)
                    310:        move.l  a1,-(sp)
                    311:        move.l  a0,-(sp)
                    312:        bsr     result
                    313:        lea.l   12(sp),sp
                    314: @@:
                    315:        fmove.l fpcr,d0
                    316:        moveq.l #0,d1
                    317:        cmp.l   d1,d0
                    318:        beq     @f
                    319:        pea.l   msg_fail_cr(pc)
                    320:        move.l  d1,-(sp)
                    321:        move.l  d0,-(sp)
                    322:        bsr     result
                    323:        lea.l   12(sp),sp
                    324: @@:
                    325:        fmove.l fpsr,d0
                    326:        moveq.l #0,d1
                    327:        cmp.l   d1,d0
                    328:        beq     @f
                    329:        pea.l   msg_fail_sr(pc)
                    330:        move.l  d1,-(sp)
                    331:        move.l  d0,-(sp)
                    332:        bsr     result
                    333:        lea.l   12(sp),sp
                    334: @@:
                    335:        fmove.l fpiar,a0
                    336:        move.l  #$55555555,a1
                    337:        cmpa.l  a1,a0
                    338:        beq     @f
                    339:        pea.l   msg_fail_ir(pc)
                    340:        move.l  a1,-(sp)
                    341:        move.l  a0,-(sp)
                    342:        bsr     result
                    343:        lea.l   12(sp),sp
                    344: @@:
                    345:        tst.l   d7
                    346:        bne     @f
                    347:        PRINT   msg_ok
                    348: @@:
                    349:        rts
                    350: 
                    351: test_fmovem_imm_to____:
                    352:        PRINT   msg_fmovem_imm_to____
                    353:        fmove.l #0,fpcr
                    354:        fmove.l #0,fpsr
                    355:        fmove.l #0,fpiar
                    356:        SET_FLINE_TRAP
                    357:        moveq.l #0,d7
                    358:        lea.l   @f,a3
                    359:        .dc.w   $f23c, $8000
                    360:        .dc.l $55555555
                    361: @@:
                    362:        RESTORE_FLINE_TRAP
                    363:        tst.l   d7
                    364:        beq     @f
                    365:        PRINT   msg_fail_trap
                    366:        rts
                    367: @@:
                    368:        fmove.l fpcr,d0
                    369:        moveq.l #0,d1
                    370:        cmp.l   d1,d0
                    371:        beq     @f
                    372:        pea.l   msg_fail_cr(pc)
                    373:        move.l  d1,-(sp)
                    374:        move.l  d0,-(sp)
                    375:        bsr     result
                    376:        lea.l   12(sp),sp
                    377: @@:
                    378:        fmove.l fpsr,d0
                    379:        moveq.l #0,d1
                    380:        cmp.l   d1,d0
                    381:        beq     @f
                    382:        pea.l   msg_fail_sr(pc)
                    383:        move.l  d1,-(sp)
                    384:        move.l  d0,-(sp)
                    385:        bsr     result
                    386:        lea.l   12(sp),sp
                    387: @@:
                    388:        fmove.l fpiar,a0
                    389:        move.l  #$55555555,a1
                    390:        cmpa.l  a1,a0
                    391:        beq     @f
                    392:        pea.l   msg_fail_ir(pc)
                    393:        move.l  a1,-(sp)
                    394:        move.l  a0,-(sp)
                    395:        bsr     result
                    396:        lea.l   12(sp),sp
                    397: @@:
                    398:        tst.l   d7
                    399:        bne     @f
                    400:        PRINT   msg_ok
                    401: @@:
                    402:        rts
                    403: 
                    404: test_fmovem_dn_to___I:
                    405:        PRINT   msg_fmovem_dn_to___I
                    406:        fmove.l #0,fpcr
                    407:        fmove.l #0,fpsr
                    408:        fmove.l #0,fpiar
                    409:        move.l  #$55555555,d0
                    410:        SET_FLINE_TRAP
                    411:        moveq.l #0,d7
                    412:        lea.l   @f,a3
                    413:        fmovem.l d0,fpiar
                    414: @@:
                    415:        RESTORE_FLINE_TRAP
                    416:        tst.l   d7
                    417:        beq     @f
                    418:        PRINT   msg_fail_trap
                    419:        rts
                    420: @@:
                    421:        fmove.l fpcr,d0
                    422:        moveq.l #0,d1
                    423:        cmp.l   d1,d0
                    424:        beq     @f
                    425:        pea.l   msg_fail_cr(pc)
                    426:        move.l  d1,-(sp)
                    427:        move.l  d0,-(sp)
                    428:        bsr     result
                    429:        lea.l   12(sp),sp
                    430: @@:
                    431:        fmove.l fpsr,d0
                    432:        moveq.l #0,d1
                    433:        cmp.l   d1,d0
                    434:        beq     @f
                    435:        pea.l   msg_fail_sr(pc)
                    436:        move.l  d1,-(sp)
                    437:        move.l  d0,-(sp)
                    438:        bsr     result
                    439:        lea.l   12(sp),sp
                    440: @@:
                    441:        fmove.l fpiar,a0
                    442:        move.l  #$55555555,a1
                    443:        cmpa.l  a1,a0
                    444:        beq     @f
                    445:        pea.l   msg_fail_ir(pc)
                    446:        move.l  a1,-(sp)
                    447:        move.l  a0,-(sp)
                    448:        bsr     result
                    449:        lea.l   12(sp),sp
                    450: @@:
                    451:        tst.l   d7
                    452:        bne     @f
                    453:        PRINT   msg_ok
                    454: @@:
                    455:        rts
                    456: 
                    457: test_fmovem_an_to___I:
                    458:        PRINT   msg_fmovem_an_to___I
                    459:        fmove.l #0,fpcr
                    460:        fmove.l #0,fpsr
                    461:        fmove.l #0,fpiar
                    462:        move.l  #$55555555,a0
                    463:        SET_FLINE_TRAP
                    464:        moveq.l #0,d7
                    465:        lea.l   @f,a3
                    466:        fmovem.l a0,fpiar
                    467: @@:
                    468:        RESTORE_FLINE_TRAP
                    469:        tst.l   d7
                    470:        beq     @f
                    471:        PRINT   msg_fail_trap
                    472:        rts
                    473: @@:
                    474:        fmove.l fpcr,d0
                    475:        moveq.l #0,d1
                    476:        cmp.l   d1,d0
                    477:        beq     @f
                    478:        pea.l   msg_fail_cr(pc)
                    479:        move.l  d1,-(sp)
                    480:        move.l  d0,-(sp)
                    481:        bsr     result
                    482:        lea.l   12(sp),sp
                    483: @@:
                    484:        fmove.l fpsr,d0
                    485:        moveq.l #0,d1
                    486:        cmp.l   d1,d0
                    487:        beq     @f
                    488:        pea.l   msg_fail_sr(pc)
                    489:        move.l  d1,-(sp)
                    490:        move.l  d0,-(sp)
                    491:        bsr     result
                    492:        lea.l   12(sp),sp
                    493: @@:
                    494:        fmove.l fpiar,a0
                    495:        move.l  #$55555555,a1
                    496:        cmpa.l  a1,a0
                    497:        beq     @f
                    498:        pea.l   msg_fail_ir(pc)
                    499:        move.l  a1,-(sp)
                    500:        move.l  a0,-(sp)
                    501:        bsr     result
                    502:        lea.l   12(sp),sp
                    503: @@:
                    504:        tst.l   d7
                    505:        bne     @f
                    506:        PRINT   msg_ok
                    507: @@:
                    508:        rts
                    509: 
                    510: test_fmovem_anin_to___I:
                    511:        PRINT   msg_fmovem_anin_to___I
                    512:        fmove.l #0,fpcr
                    513:        fmove.l #0,fpsr
                    514:        fmove.l #0,fpiar
                    515:        move.l  #$55555555,workarea
                    516:        lea.l   workarea(pc),a0
                    517:        SET_FLINE_TRAP
                    518:        moveq.l #0,d7
                    519:        lea.l   @f,a3
                    520:        fmovem.l (a0),fpiar
                    521: @@:
                    522:        RESTORE_FLINE_TRAP
                    523:        tst.l   d7
                    524:        beq     @f
                    525:        PRINT   msg_fail_trap
                    526:        rts
                    527: @@:
                    528:        lea.l   workarea(pc),a1
                    529:        cmpa.l  a1,a0
                    530:        beq     @f
                    531:        pea.l   msg_fail_addr(pc)
                    532:        move.l  a1,-(sp)
                    533:        move.l  a0,-(sp)
                    534:        bsr     result
                    535:        lea.l   12(sp),sp
                    536: @@:
                    537:        fmove.l fpcr,d0
                    538:        moveq.l #0,d1
                    539:        cmp.l   d1,d0
                    540:        beq     @f
                    541:        pea.l   msg_fail_cr(pc)
                    542:        move.l  d1,-(sp)
                    543:        move.l  d0,-(sp)
                    544:        bsr     result
                    545:        lea.l   12(sp),sp
                    546: @@:
                    547:        fmove.l fpsr,d0
                    548:        moveq.l #0,d1
                    549:        cmp.l   d1,d0
                    550:        beq     @f
                    551:        pea.l   msg_fail_sr(pc)
                    552:        move.l  d1,-(sp)
                    553:        move.l  d0,-(sp)
                    554:        bsr     result
                    555:        lea.l   12(sp),sp
                    556: @@:
                    557:        fmove.l fpiar,a0
                    558:        move.l  #$55555555,a1
                    559:        cmpa.l  a1,a0
                    560:        beq     @f
                    561:        pea.l   msg_fail_ir(pc)
                    562:        move.l  a1,-(sp)
                    563:        move.l  a0,-(sp)
                    564:        bsr     result
                    565:        lea.l   12(sp),sp
                    566: @@:
                    567:        tst.l   d7
                    568:        bne     @f
                    569:        PRINT   msg_ok
                    570: @@:
                    571:        rts
                    572: 
                    573: test_fmovem_anpi_to___I:
                    574:        PRINT   msg_fmovem_anpi_to___I
                    575:        fmove.l #0,fpcr
                    576:        fmove.l #0,fpsr
                    577:        fmove.l #0,fpiar
                    578:        move.l  #$55555555,workarea
                    579:        lea.l   workarea(pc),a0
                    580:        SET_FLINE_TRAP
                    581:        moveq.l #0,d7
                    582:        lea.l   @f,a3
                    583:        fmovem.l (a0)+,fpiar
                    584: @@:
                    585:        RESTORE_FLINE_TRAP
                    586:        tst.l   d7
                    587:        beq     @f
                    588:        PRINT   msg_fail_trap
                    589:        rts
                    590: @@:
                    591:        lea.l workarea+4(pc),a1
                    592:        cmpa.l  a1,a0
                    593:        beq     @f
                    594:        pea.l   msg_fail_addr(pc)
                    595:        move.l  a1,-(sp)
                    596:        move.l  a0,-(sp)
                    597:        bsr     result
                    598:        lea.l   12(sp),sp
                    599: @@:
                    600:        fmove.l fpcr,d0
                    601:        moveq.l #0,d1
                    602:        cmp.l   d1,d0
                    603:        beq     @f
                    604:        pea.l   msg_fail_cr(pc)
                    605:        move.l  d1,-(sp)
                    606:        move.l  d0,-(sp)
                    607:        bsr     result
                    608:        lea.l   12(sp),sp
                    609: @@:
                    610:        fmove.l fpsr,d0
                    611:        moveq.l #0,d1
                    612:        cmp.l   d1,d0
                    613:        beq     @f
                    614:        pea.l   msg_fail_sr(pc)
                    615:        move.l  d1,-(sp)
                    616:        move.l  d0,-(sp)
                    617:        bsr     result
                    618:        lea.l   12(sp),sp
                    619: @@:
                    620:        fmove.l fpiar,a0
                    621:        move.l  #$55555555,a1
                    622:        cmpa.l  a1,a0
                    623:        beq     @f
                    624:        pea.l   msg_fail_ir(pc)
                    625:        move.l  a1,-(sp)
                    626:        move.l  a0,-(sp)
                    627:        bsr     result
                    628:        lea.l   12(sp),sp
                    629: @@:
                    630:        tst.l   d7
                    631:        bne     @f
                    632:        PRINT   msg_ok
                    633: @@:
                    634:        rts
                    635: 
                    636: test_fmovem_anpd_to___I:
                    637:        PRINT   msg_fmovem_anpd_to___I
                    638:        fmove.l #0,fpcr
                    639:        fmove.l #0,fpsr
                    640:        fmove.l #0,fpiar
                    641:        move.l  #$55555555,workarea
                    642:        lea.l   workarea+4(pc),a0
                    643:        SET_FLINE_TRAP
                    644:        moveq.l #0,d7
                    645:        lea.l   @f,a3
                    646:        fmovem.l -(a0),fpiar
                    647: @@:
                    648:        RESTORE_FLINE_TRAP
                    649:        tst.l   d7
                    650:        beq     @f
                    651:        PRINT   msg_fail_trap
                    652:        rts
                    653: @@:
                    654:        lea.l   workarea(pc),a1
                    655:        cmpa.l  a1,a0
                    656:        beq     @f
                    657:        pea.l   msg_fail_addr(pc)
                    658:        move.l  a1,-(sp)
                    659:        move.l  a0,-(sp)
                    660:        bsr     result
                    661:        lea.l   12(sp),sp
                    662: @@:
                    663:        fmove.l fpcr,d0
                    664:        moveq.l #0,d1
                    665:        cmp.l   d1,d0
                    666:        beq     @f
                    667:        pea.l   msg_fail_cr(pc)
                    668:        move.l  d1,-(sp)
                    669:        move.l  d0,-(sp)
                    670:        bsr     result
                    671:        lea.l   12(sp),sp
                    672: @@:
                    673:        fmove.l fpsr,d0
                    674:        moveq.l #0,d1
                    675:        cmp.l   d1,d0
                    676:        beq     @f
                    677:        pea.l   msg_fail_sr(pc)
                    678:        move.l  d1,-(sp)
                    679:        move.l  d0,-(sp)
                    680:        bsr     result
                    681:        lea.l   12(sp),sp
                    682: @@:
                    683:        fmove.l fpiar,a0
                    684:        move.l  #$55555555,a1
                    685:        cmpa.l  a1,a0
                    686:        beq     @f
                    687:        pea.l   msg_fail_ir(pc)
                    688:        move.l  a1,-(sp)
                    689:        move.l  a0,-(sp)
                    690:        bsr     result
                    691:        lea.l   12(sp),sp
                    692: @@:
                    693:        tst.l   d7
                    694:        bne     @f
                    695:        PRINT   msg_ok
                    696: @@:
                    697:        rts
                    698: 
                    699: test_fmovem_imm_to___I:
                    700:        PRINT   msg_fmovem_imm_to___I
                    701:        fmove.l #0,fpcr
                    702:        fmove.l #0,fpsr
                    703:        fmove.l #0,fpiar
                    704:        SET_FLINE_TRAP
                    705:        moveq.l #0,d7
                    706:        lea.l   @f,a3
                    707:        fmovem.l #$55555555,fpiar
                    708: @@:
                    709:        RESTORE_FLINE_TRAP
                    710:        tst.l   d7
                    711:        beq     @f
                    712:        PRINT   msg_fail_trap
                    713:        rts
                    714: @@:
                    715:        fmove.l fpcr,d0
                    716:        moveq.l #0,d1
                    717:        cmp.l   d1,d0
                    718:        beq     @f
                    719:        pea.l   msg_fail_cr(pc)
                    720:        move.l  d1,-(sp)
                    721:        move.l  d0,-(sp)
                    722:        bsr     result
                    723:        lea.l   12(sp),sp
                    724: @@:
                    725:        fmove.l fpsr,d0
                    726:        moveq.l #0,d1
                    727:        cmp.l   d1,d0
                    728:        beq     @f
                    729:        pea.l   msg_fail_sr(pc)
                    730:        move.l  d1,-(sp)
                    731:        move.l  d0,-(sp)
                    732:        bsr     result
                    733:        lea.l   12(sp),sp
                    734: @@:
                    735:        fmove.l fpiar,a0
                    736:        move.l  #$55555555,a1
                    737:        cmpa.l  a1,a0
                    738:        beq     @f
                    739:        pea.l   msg_fail_ir(pc)
                    740:        move.l  a1,-(sp)
                    741:        move.l  a0,-(sp)
                    742:        bsr     result
                    743:        lea.l   12(sp),sp
                    744: @@:
                    745:        tst.l   d7
                    746:        bne     @f
                    747:        PRINT   msg_ok
                    748: @@:
                    749:        rts
                    750: 
                    751: test_fmovem_dn_to__S_:
                    752:        PRINT   msg_fmovem_dn_to__S_
                    753:        fmove.l #0,fpcr
                    754:        fmove.l #0,fpsr
                    755:        fmove.l #0,fpiar
                    756:        move.l  #$55555555,d0
                    757:        SET_FLINE_TRAP
                    758:        moveq.l #0,d7
                    759:        lea.l   @f,a3
                    760:        fmovem.l d0,fpsr
                    761: @@:
                    762:        RESTORE_FLINE_TRAP
                    763:        tst.l   d7
                    764:        beq     @f
                    765:        PRINT   msg_fail_trap
                    766:        rts
                    767: @@:
                    768:        fmove.l fpcr,d0
                    769:        moveq.l #0,d1
                    770:        cmp.l   d1,d0
                    771:        beq     @f
                    772:        pea.l   msg_fail_cr(pc)
                    773:        move.l  d1,-(sp)
                    774:        move.l  d0,-(sp)
                    775:        bsr     result
                    776:        lea.l   12(sp),sp
                    777: @@:
                    778:        fmove.l fpsr,d0
                    779:        move.l  #$05555550,d1
                    780:        cmp.l   d1,d0
                    781:        beq     @f
                    782:        pea.l   msg_fail_sr(pc)
                    783:        move.l  d1,-(sp)
                    784:        move.l  d0,-(sp)
                    785:        bsr     result
                    786:        lea.l   12(sp),sp
                    787: @@:
                    788:        fmove.l fpiar,a0
                    789:        move.l  d7,a1   ; d7=0
                    790:        cmpa.l  a1,a0
                    791:        beq     @f
                    792:        pea.l   msg_fail_ir(pc)
                    793:        move.l  a1,-(sp)
                    794:        move.l  a0,-(sp)
                    795:        bsr     result
                    796:        lea.l   12(sp),sp
                    797: @@:
                    798:        tst.l   d7
                    799:        bne     @f
                    800:        PRINT   msg_ok
                    801: @@:
                    802:        rts
                    803: 
                    804: test_fmovem_an_to__S_:
1.1.1.3 ! root      805:        tst.b   is_hard(pc)
        !           806:        bne             @f
        !           807:        rts
        !           808: @@:
1.1       root      809:        PRINT   msg_fmovem_an_to__S_
                    810:        SET_FLINE_TRAP
                    811:        moveq.l #0,d7
                    812:        lea.l   @f,a3
                    813:        .dc.w   $f208, $8800
                    814: @@:
                    815:        RESTORE_FLINE_TRAP
                    816:        tst.l   d7
                    817:        bne     @f
                    818:        PRINT   msg_fail_notrap
                    819:        rts
                    820: @@:
                    821:        PRINT   msg_oktrap
                    822:        rts
                    823: 
                    824: test_fmovem_anin_to__S_:
                    825:        PRINT   msg_fmovem_anin_to__S_
                    826:        fmove.l #0,fpcr
                    827:        fmove.l #0,fpsr
                    828:        fmove.l #0,fpiar
                    829:        move.l  #$55555555,workarea
                    830:        lea.l   workarea(pc),a0
                    831:        SET_FLINE_TRAP
                    832:        moveq.l #0,d7
                    833:        lea.l   @f,a3
                    834:        fmovem.l (a0),fpsr
                    835: @@:
                    836:        RESTORE_FLINE_TRAP
                    837:        tst.l   d7
                    838:        beq     @f
                    839:        PRINT   msg_fail_trap
                    840:        rts
                    841: @@:
                    842:        lea.l   workarea(pc),a1
                    843:        cmpa.l  a1,a0
                    844:        beq     @f
                    845:        pea.l   msg_fail_addr(pc)
                    846:        move.l  a1,-(sp)
                    847:        move.l  a0,-(sp)
                    848:        bsr     result
                    849:        lea.l   12(sp),sp
                    850: @@:
                    851:        fmove.l fpcr,d0
                    852:        moveq.l #0,d1
                    853:        cmp.l   d1,d0
                    854:        beq     @f
                    855:        pea.l   msg_fail_cr(pc)
                    856:        move.l  d1,-(sp)
                    857:        move.l  d0,-(sp)
                    858:        bsr     result
                    859:        lea.l   12(sp),sp
                    860: @@:
                    861:        fmove.l fpsr,d0
                    862:        move.l  #$05555550,d1
                    863:        cmp.l   d1,d0
                    864:        beq     @f
                    865:        pea.l   msg_fail_sr(pc)
                    866:        move.l  d1,-(sp)
                    867:        move.l  d0,-(sp)
                    868:        bsr     result
                    869:        lea.l   12(sp),sp
                    870: @@:
                    871:        fmove.l fpiar,a0
                    872:        move.l  d7,a1   ; d7=0
                    873:        cmpa.l  a1,a0
                    874:        beq     @f
                    875:        pea.l   msg_fail_ir(pc)
                    876:        move.l  a1,-(sp)
                    877:        move.l  a0,-(sp)
                    878:        bsr     result
                    879:        lea.l   12(sp),sp
                    880: @@:
                    881:        tst.l   d7
                    882:        bne     @f
                    883:        PRINT   msg_ok
                    884: @@:
                    885:        rts
                    886: 
                    887: test_fmovem_anpi_to__S_:
                    888:        PRINT   msg_fmovem_anpi_to__S_
                    889:        fmove.l #0,fpcr
                    890:        fmove.l #0,fpsr
                    891:        fmove.l #0,fpiar
                    892:        move.l  #$55555555,workarea
                    893:        lea.l   workarea(pc),a0
                    894:        SET_FLINE_TRAP
                    895:        moveq.l #0,d7
                    896:        lea.l   @f,a3
                    897:        fmovem.l (a0)+,fpsr
                    898: @@:
                    899:        RESTORE_FLINE_TRAP
                    900:        tst.l   d7
                    901:        beq     @f
                    902:        PRINT   msg_fail_trap
                    903:        rts
                    904: @@:
                    905:        lea.l workarea+4(pc),a1
                    906:        cmpa.l  a1,a0
                    907:        beq     @f
                    908:        pea.l   msg_fail_addr(pc)
                    909:        move.l  a1,-(sp)
                    910:        move.l  a0,-(sp)
                    911:        bsr     result
                    912:        lea.l   12(sp),sp
                    913: @@:
                    914:        fmove.l fpcr,d0
                    915:        moveq.l #0,d1
                    916:        cmp.l   d1,d0
                    917:        beq     @f
                    918:        pea.l   msg_fail_cr(pc)
                    919:        move.l  d1,-(sp)
                    920:        move.l  d0,-(sp)
                    921:        bsr     result
                    922:        lea.l   12(sp),sp
                    923: @@:
                    924:        fmove.l fpsr,d0
                    925:        move.l  #$05555550,d1
                    926:        cmp.l   d1,d0
                    927:        beq     @f
                    928:        pea.l   msg_fail_sr(pc)
                    929:        move.l  d1,-(sp)
                    930:        move.l  d0,-(sp)
                    931:        bsr     result
                    932:        lea.l   12(sp),sp
                    933: @@:
                    934:        fmove.l fpiar,a0
                    935:        move.l  d7,a1   ; d7=0
                    936:        cmpa.l  a1,a0
                    937:        beq     @f
                    938:        pea.l   msg_fail_ir(pc)
                    939:        move.l  a1,-(sp)
                    940:        move.l  a0,-(sp)
                    941:        bsr     result
                    942:        lea.l   12(sp),sp
                    943: @@:
                    944:        tst.l   d7
                    945:        bne     @f
                    946:        PRINT   msg_ok
                    947: @@:
                    948:        rts
                    949: 
                    950: test_fmovem_anpd_to__S_:
                    951:        PRINT   msg_fmovem_anpd_to__S_
                    952:        fmove.l #0,fpcr
                    953:        fmove.l #0,fpsr
                    954:        fmove.l #0,fpiar
                    955:        move.l  #$55555555,workarea
                    956:        lea.l   workarea+4(pc),a0
                    957:        SET_FLINE_TRAP
                    958:        moveq.l #0,d7
                    959:        lea.l   @f,a3
                    960:        fmovem.l -(a0),fpsr
                    961: @@:
                    962:        RESTORE_FLINE_TRAP
                    963:        tst.l   d7
                    964:        beq     @f
                    965:        PRINT   msg_fail_trap
                    966:        rts
                    967: @@:
                    968:        lea.l   workarea(pc),a1
                    969:        cmpa.l  a1,a0
                    970:        beq     @f
                    971:        pea.l   msg_fail_addr(pc)
                    972:        move.l  a1,-(sp)
                    973:        move.l  a0,-(sp)
                    974:        bsr     result
                    975:        lea.l   12(sp),sp
                    976: @@:
                    977:        fmove.l fpcr,d0
                    978:        moveq.l #0,d1
                    979:        cmp.l   d1,d0
                    980:        beq     @f
                    981:        pea.l   msg_fail_cr(pc)
                    982:        move.l  d1,-(sp)
                    983:        move.l  d0,-(sp)
                    984:        bsr     result
                    985:        lea.l   12(sp),sp
                    986: @@:
                    987:        fmove.l fpsr,d0
                    988:        move.l  #$05555550,d1
                    989:        cmp.l   d1,d0
                    990:        beq     @f
                    991:        pea.l   msg_fail_sr(pc)
                    992:        move.l  d1,-(sp)
                    993:        move.l  d0,-(sp)
                    994:        bsr     result
                    995:        lea.l   12(sp),sp
                    996: @@:
                    997:        fmove.l fpiar,a0
                    998:        move.l  d7,a1   ; d7=0
                    999:        cmpa.l  a1,a0
                   1000:        beq     @f
                   1001:        pea.l   msg_fail_ir(pc)
                   1002:        move.l  a1,-(sp)
                   1003:        move.l  a0,-(sp)
                   1004:        bsr     result
                   1005:        lea.l   12(sp),sp
                   1006: @@:
                   1007:        tst.l   d7
                   1008:        bne     @f
                   1009:        PRINT   msg_ok
                   1010: @@:
                   1011:        rts
                   1012: 
                   1013: test_fmovem_imm_to__S_:
                   1014:        PRINT   msg_fmovem_imm_to__S_
                   1015:        fmove.l #0,fpcr
                   1016:        fmove.l #0,fpsr
                   1017:        fmove.l #0,fpiar
                   1018:        SET_FLINE_TRAP
                   1019:        moveq.l #0,d7
                   1020:        lea.l   @f,a3
                   1021:        fmovem.l #$55555555,fpsr
                   1022: @@:
                   1023:        RESTORE_FLINE_TRAP
                   1024:        tst.l   d7
                   1025:        beq     @f
                   1026:        PRINT   msg_fail_trap
                   1027:        rts
                   1028: @@:
                   1029:        fmove.l fpcr,d0
                   1030:        moveq.l #0,d1
                   1031:        cmp.l   d1,d0
                   1032:        beq     @f
                   1033:        pea.l   msg_fail_cr(pc)
                   1034:        move.l  d1,-(sp)
                   1035:        move.l  d0,-(sp)
                   1036:        bsr     result
                   1037:        lea.l   12(sp),sp
                   1038: @@:
                   1039:        fmove.l fpsr,d0
                   1040:        move.l  #$05555550,d1
                   1041:        cmp.l   d1,d0
                   1042:        beq     @f
                   1043:        pea.l   msg_fail_sr(pc)
                   1044:        move.l  d1,-(sp)
                   1045:        move.l  d0,-(sp)
                   1046:        bsr     result
                   1047:        lea.l   12(sp),sp
                   1048: @@:
                   1049:        fmove.l fpiar,a0
                   1050:        move.l  d7,a1   ; d7=0
                   1051:        cmpa.l  a1,a0
                   1052:        beq     @f
                   1053:        pea.l   msg_fail_ir(pc)
                   1054:        move.l  a1,-(sp)
                   1055:        move.l  a0,-(sp)
                   1056:        bsr     result
                   1057:        lea.l   12(sp),sp
                   1058: @@:
                   1059:        tst.l   d7
                   1060:        bne     @f
                   1061:        PRINT   msg_ok
                   1062: @@:
                   1063:        rts
                   1064: 
                   1065: test_fmovem_dn_to__SI:
1.1.1.3 ! root     1066:        tst.b   is_hard(pc)
        !          1067:        bne             @f
        !          1068:        rts
        !          1069: @@:
1.1       root     1070:        PRINT   msg_fmovem_dn_to__SI
                   1071:        SET_FLINE_TRAP
                   1072:        moveq.l #0,d7
                   1073:        lea.l   @f,a3
                   1074:        .dc.w   $f200, $8c00
                   1075: @@:
                   1076:        RESTORE_FLINE_TRAP
                   1077:        tst.l   d7
                   1078:        bne     @f
                   1079:        PRINT   msg_fail_notrap
                   1080:        rts
                   1081: @@:
                   1082:        PRINT   msg_oktrap
                   1083:        rts
                   1084: 
                   1085: test_fmovem_an_to__SI:
1.1.1.3 ! root     1086:        tst.b   is_hard(pc)
        !          1087:        bne             @f
        !          1088:        rts
        !          1089: @@:
1.1       root     1090:        PRINT   msg_fmovem_an_to__SI
                   1091:        SET_FLINE_TRAP
                   1092:        moveq.l #0,d7
                   1093:        lea.l   @f,a3
                   1094:        .dc.w   $f208, $8c00
                   1095: @@:
                   1096:        RESTORE_FLINE_TRAP
                   1097:        tst.l   d7
                   1098:        bne     @f
                   1099:        PRINT   msg_fail_notrap
                   1100:        rts
                   1101: @@:
                   1102:        PRINT   msg_oktrap
                   1103:        rts
                   1104: 
                   1105: test_fmovem_anin_to__SI:
                   1106:        PRINT   msg_fmovem_anin_to__SI
                   1107:        fmove.l #0,fpcr
                   1108:        fmove.l #0,fpsr
                   1109:        fmove.l #0,fpiar
                   1110:        move.l  #$55555555,workarea
                   1111:        move.l  #$aaaaaaaa,workarea+4
                   1112:        lea.l   workarea(pc),a0
                   1113:        SET_FLINE_TRAP
                   1114:        moveq.l #0,d7
                   1115:        lea.l   @f,a3
                   1116:        fmovem.l (a0),fpsr/fpiar
                   1117: @@:
                   1118:        RESTORE_FLINE_TRAP
                   1119:        tst.l   d7
                   1120:        beq     @f
                   1121:        PRINT   msg_fail_trap
                   1122:        rts
                   1123: @@:
                   1124:        lea.l   workarea(pc),a1
                   1125:        cmpa.l  a1,a0
                   1126:        beq     @f
                   1127:        pea.l   msg_fail_addr(pc)
                   1128:        move.l  a1,-(sp)
                   1129:        move.l  a0,-(sp)
                   1130:        bsr     result
                   1131:        lea.l   12(sp),sp
                   1132: @@:
                   1133:        fmove.l fpcr,d0
                   1134:        moveq.l #0,d1
                   1135:        cmp.l   d1,d0
                   1136:        beq     @f
                   1137:        pea.l   msg_fail_cr(pc)
                   1138:        move.l  d1,-(sp)
                   1139:        move.l  d0,-(sp)
                   1140:        bsr     result
                   1141:        lea.l   12(sp),sp
                   1142: @@:
                   1143:        fmove.l fpsr,d0
                   1144:        move.l  #$05555550,d1
                   1145:        cmp.l   d1,d0
                   1146:        beq     @f
                   1147:        pea.l   msg_fail_sr(pc)
                   1148:        move.l  d1,-(sp)
                   1149:        move.l  d0,-(sp)
                   1150:        bsr     result
                   1151:        lea.l   12(sp),sp
                   1152: @@:
                   1153:        fmove.l fpiar,a0
                   1154:        move.l  #$aaaaaaaa,a1
                   1155:        cmpa.l  a1,a0
                   1156:        beq     @f
                   1157:        pea.l   msg_fail_ir(pc)
                   1158:        move.l  a1,-(sp)
                   1159:        move.l  a0,-(sp)
                   1160:        bsr     result
                   1161:        lea.l   12(sp),sp
                   1162: @@:
                   1163:        tst.l   d7
                   1164:        bne     @f
                   1165:        PRINT   msg_ok
                   1166: @@:
                   1167:        rts
                   1168: 
                   1169: test_fmovem_anpi_to__SI:
                   1170:        PRINT   msg_fmovem_anpi_to__SI
                   1171:        fmove.l #0,fpcr
                   1172:        fmove.l #0,fpsr
                   1173:        fmove.l #0,fpiar
                   1174:        move.l  #$55555555,workarea
                   1175:        move.l  #$aaaaaaaa,workarea+4
                   1176:        lea.l   workarea(pc),a0
                   1177:        SET_FLINE_TRAP
                   1178:        moveq.l #0,d7
                   1179:        lea.l   @f,a3
                   1180:        fmovem.l (a0)+,fpsr/fpiar
                   1181: @@:
                   1182:        RESTORE_FLINE_TRAP
                   1183:        tst.l   d7
                   1184:        beq     @f
                   1185:        PRINT   msg_fail_trap
                   1186:        rts
                   1187: @@:
                   1188:        lea.l workarea+8(pc),a1
                   1189:        cmpa.l  a1,a0
                   1190:        beq     @f
                   1191:        pea.l   msg_fail_addr(pc)
                   1192:        move.l  a1,-(sp)
                   1193:        move.l  a0,-(sp)
                   1194:        bsr     result
                   1195:        lea.l   12(sp),sp
                   1196: @@:
                   1197:        fmove.l fpcr,d0
                   1198:        moveq.l #0,d1
                   1199:        cmp.l   d1,d0
                   1200:        beq     @f
                   1201:        pea.l   msg_fail_cr(pc)
                   1202:        move.l  d1,-(sp)
                   1203:        move.l  d0,-(sp)
                   1204:        bsr     result
                   1205:        lea.l   12(sp),sp
                   1206: @@:
                   1207:        fmove.l fpsr,d0
                   1208:        move.l  #$05555550,d1
                   1209:        cmp.l   d1,d0
                   1210:        beq     @f
                   1211:        pea.l   msg_fail_sr(pc)
                   1212:        move.l  d1,-(sp)
                   1213:        move.l  d0,-(sp)
                   1214:        bsr     result
                   1215:        lea.l   12(sp),sp
                   1216: @@:
                   1217:        fmove.l fpiar,a0
                   1218:        move.l  #$aaaaaaaa,a1
                   1219:        cmpa.l  a1,a0
                   1220:        beq     @f
                   1221:        pea.l   msg_fail_ir(pc)
                   1222:        move.l  a1,-(sp)
                   1223:        move.l  a0,-(sp)
                   1224:        bsr     result
                   1225:        lea.l   12(sp),sp
                   1226: @@:
                   1227:        tst.l   d7
                   1228:        bne     @f
                   1229:        PRINT   msg_ok
                   1230: @@:
                   1231:        rts
                   1232: 
                   1233: test_fmovem_anpd_to__SI:
                   1234:        PRINT   msg_fmovem_anpd_to__SI
                   1235:        fmove.l #0,fpcr
                   1236:        fmove.l #0,fpsr
                   1237:        fmove.l #0,fpiar
                   1238:        move.l  #$55555555,workarea
                   1239:        move.l  #$aaaaaaaa,workarea+4
                   1240:        lea.l   workarea+8(pc),a0
                   1241:        SET_FLINE_TRAP
                   1242:        moveq.l #0,d7
                   1243:        lea.l   @f,a3
                   1244:        fmovem.l -(a0),fpsr/fpiar
                   1245: @@:
                   1246:        RESTORE_FLINE_TRAP
                   1247:        tst.l   d7
                   1248:        beq     @f
                   1249:        PRINT   msg_fail_trap
                   1250:        rts
                   1251: @@:
                   1252:        lea.l   workarea(pc),a1
                   1253:        cmpa.l  a1,a0
                   1254:        beq     @f
                   1255:        pea.l   msg_fail_addr(pc)
                   1256:        move.l  a1,-(sp)
                   1257:        move.l  a0,-(sp)
                   1258:        bsr     result
                   1259:        lea.l   12(sp),sp
                   1260: @@:
                   1261:        fmove.l fpcr,d0
                   1262:        moveq.l #0,d1
                   1263:        cmp.l   d1,d0
                   1264:        beq     @f
                   1265:        pea.l   msg_fail_cr(pc)
                   1266:        move.l  d1,-(sp)
                   1267:        move.l  d0,-(sp)
                   1268:        bsr     result
                   1269:        lea.l   12(sp),sp
                   1270: @@:
                   1271:        fmove.l fpsr,d0
                   1272:        move.l  #$05555550,d1
                   1273:        cmp.l   d1,d0
                   1274:        beq     @f
                   1275:        pea.l   msg_fail_sr(pc)
                   1276:        move.l  d1,-(sp)
                   1277:        move.l  d0,-(sp)
                   1278:        bsr     result
                   1279:        lea.l   12(sp),sp
                   1280: @@:
                   1281:        fmove.l fpiar,a0
                   1282:        move.l  #$aaaaaaaa,a1
                   1283:        cmpa.l  a1,a0
                   1284:        beq     @f
                   1285:        pea.l   msg_fail_ir(pc)
                   1286:        move.l  a1,-(sp)
                   1287:        move.l  a0,-(sp)
                   1288:        bsr     result
                   1289:        lea.l   12(sp),sp
                   1290: @@:
                   1291:        tst.l   d7
                   1292:        bne     @f
                   1293:        PRINT   msg_ok
                   1294: @@:
                   1295:        rts
                   1296: 
                   1297: test_fmovem_imm_to__SI:
                   1298:        PRINT   msg_fmovem_imm_to__SI
                   1299:        fmove.l #0,fpcr
                   1300:        fmove.l #0,fpsr
                   1301:        fmove.l #0,fpiar
                   1302:        SET_FLINE_TRAP
                   1303:        moveq.l #0,d7
                   1304:        lea.l   @f,a3
                   1305:        fmovem.l #$55555555,#$aaaaaaaa,fpsr/fpiar
                   1306: @@:
                   1307:        RESTORE_FLINE_TRAP
                   1308:        tst.l   d7
                   1309:        beq     @f
                   1310:        PRINT   msg_fail_trap
                   1311:        rts
                   1312: @@:
                   1313:        fmove.l fpcr,d0
                   1314:        moveq.l #0,d1
                   1315:        cmp.l   d1,d0
                   1316:        beq     @f
                   1317:        pea.l   msg_fail_cr(pc)
                   1318:        move.l  d1,-(sp)
                   1319:        move.l  d0,-(sp)
                   1320:        bsr     result
                   1321:        lea.l   12(sp),sp
                   1322: @@:
                   1323:        fmove.l fpsr,d0
                   1324:        move.l  #$05555550,d1
                   1325:        cmp.l   d1,d0
                   1326:        beq     @f
                   1327:        pea.l   msg_fail_sr(pc)
                   1328:        move.l  d1,-(sp)
                   1329:        move.l  d0,-(sp)
                   1330:        bsr     result
                   1331:        lea.l   12(sp),sp
                   1332: @@:
                   1333:        fmove.l fpiar,a0
                   1334:        move.l  #$aaaaaaaa,a1
                   1335:        cmpa.l  a1,a0
                   1336:        beq     @f
                   1337:        pea.l   msg_fail_ir(pc)
                   1338:        move.l  a1,-(sp)
                   1339:        move.l  a0,-(sp)
                   1340:        bsr     result
                   1341:        lea.l   12(sp),sp
                   1342: @@:
                   1343:        tst.l   d7
                   1344:        bne     @f
                   1345:        PRINT   msg_ok
                   1346: @@:
                   1347:        rts
                   1348: 
                   1349: test_fmovem_dn_to_C__:
                   1350:        PRINT   msg_fmovem_dn_to_C__
                   1351:        fmove.l #0,fpcr
                   1352:        fmove.l #0,fpsr
                   1353:        fmove.l #0,fpiar
                   1354:        move.l  #$55555555,d0
                   1355:        SET_FLINE_TRAP
                   1356:        moveq.l #0,d7
                   1357:        lea.l   @f,a3
                   1358:        fmovem.l d0,fpcr
                   1359: @@:
                   1360:        RESTORE_FLINE_TRAP
                   1361:        tst.l   d7
                   1362:        beq     @f
                   1363:        PRINT   msg_fail_trap
                   1364:        rts
                   1365: @@:
                   1366:        fmove.l fpcr,d0
                   1367:        move.l  #$00005550,d1
                   1368:        cmp.l   d1,d0
                   1369:        beq     @f
                   1370:        pea.l   msg_fail_cr(pc)
                   1371:        move.l  d1,-(sp)
                   1372:        move.l  d0,-(sp)
                   1373:        bsr     result
                   1374:        lea.l   12(sp),sp
                   1375: @@:
                   1376:        fmove.l fpsr,d0
                   1377:        moveq.l #0,d1
                   1378:        cmp.l   d1,d0
                   1379:        beq     @f
                   1380:        pea.l   msg_fail_sr(pc)
                   1381:        move.l  d1,-(sp)
                   1382:        move.l  d0,-(sp)
                   1383:        bsr     result
                   1384:        lea.l   12(sp),sp
                   1385: @@:
                   1386:        fmove.l fpiar,a0
                   1387:        move.l  d7,a1   ; d7=0
                   1388:        cmpa.l  a1,a0
                   1389:        beq     @f
                   1390:        pea.l   msg_fail_ir(pc)
                   1391:        move.l  a1,-(sp)
                   1392:        move.l  a0,-(sp)
                   1393:        bsr     result
                   1394:        lea.l   12(sp),sp
                   1395: @@:
                   1396:        tst.l   d7
                   1397:        bne     @f
                   1398:        PRINT   msg_ok
                   1399: @@:
                   1400:        rts
                   1401: 
                   1402: test_fmovem_an_to_C__:
1.1.1.3 ! root     1403:        tst.b   is_hard(pc)
        !          1404:        bne             @f
        !          1405:        rts
        !          1406: @@:
1.1       root     1407:        PRINT   msg_fmovem_an_to_C__
                   1408:        SET_FLINE_TRAP
                   1409:        moveq.l #0,d7
                   1410:        lea.l   @f,a3
                   1411:        .dc.w   $f208, $9000
                   1412: @@:
                   1413:        RESTORE_FLINE_TRAP
                   1414:        tst.l   d7
                   1415:        bne     @f
                   1416:        PRINT   msg_fail_notrap
                   1417:        rts
                   1418: @@:
                   1419:        PRINT   msg_oktrap
                   1420:        rts
                   1421: 
                   1422: test_fmovem_anin_to_C__:
                   1423:        PRINT   msg_fmovem_anin_to_C__
                   1424:        fmove.l #0,fpcr
                   1425:        fmove.l #0,fpsr
                   1426:        fmove.l #0,fpiar
                   1427:        move.l  #$55555555,workarea
                   1428:        lea.l   workarea(pc),a0
                   1429:        SET_FLINE_TRAP
                   1430:        moveq.l #0,d7
                   1431:        lea.l   @f,a3
                   1432:        fmovem.l (a0),fpcr
                   1433: @@:
                   1434:        RESTORE_FLINE_TRAP
                   1435:        tst.l   d7
                   1436:        beq     @f
                   1437:        PRINT   msg_fail_trap
                   1438:        rts
                   1439: @@:
                   1440:        lea.l   workarea(pc),a1
                   1441:        cmpa.l  a1,a0
                   1442:        beq     @f
                   1443:        pea.l   msg_fail_addr(pc)
                   1444:        move.l  a1,-(sp)
                   1445:        move.l  a0,-(sp)
                   1446:        bsr     result
                   1447:        lea.l   12(sp),sp
                   1448: @@:
                   1449:        fmove.l fpcr,d0
                   1450:        move.l  #$00005550,d1
                   1451:        cmp.l   d1,d0
                   1452:        beq     @f
                   1453:        pea.l   msg_fail_cr(pc)
                   1454:        move.l  d1,-(sp)
                   1455:        move.l  d0,-(sp)
                   1456:        bsr     result
                   1457:        lea.l   12(sp),sp
                   1458: @@:
                   1459:        fmove.l fpsr,d0
                   1460:        moveq.l #0,d1
                   1461:        cmp.l   d1,d0
                   1462:        beq     @f
                   1463:        pea.l   msg_fail_sr(pc)
                   1464:        move.l  d1,-(sp)
                   1465:        move.l  d0,-(sp)
                   1466:        bsr     result
                   1467:        lea.l   12(sp),sp
                   1468: @@:
                   1469:        fmove.l fpiar,a0
                   1470:        move.l  d7,a1   ; d7=0
                   1471:        cmpa.l  a1,a0
                   1472:        beq     @f
                   1473:        pea.l   msg_fail_ir(pc)
                   1474:        move.l  a1,-(sp)
                   1475:        move.l  a0,-(sp)
                   1476:        bsr     result
                   1477:        lea.l   12(sp),sp
                   1478: @@:
                   1479:        tst.l   d7
                   1480:        bne     @f
                   1481:        PRINT   msg_ok
                   1482: @@:
                   1483:        rts
                   1484: 
                   1485: test_fmovem_anpi_to_C__:
                   1486:        PRINT   msg_fmovem_anpi_to_C__
                   1487:        fmove.l #0,fpcr
                   1488:        fmove.l #0,fpsr
                   1489:        fmove.l #0,fpiar
                   1490:        move.l  #$55555555,workarea
                   1491:        lea.l   workarea(pc),a0
                   1492:        SET_FLINE_TRAP
                   1493:        moveq.l #0,d7
                   1494:        lea.l   @f,a3
                   1495:        fmovem.l (a0)+,fpcr
                   1496: @@:
                   1497:        RESTORE_FLINE_TRAP
                   1498:        tst.l   d7
                   1499:        beq     @f
                   1500:        PRINT   msg_fail_trap
                   1501:        rts
                   1502: @@:
                   1503:        lea.l workarea+4(pc),a1
                   1504:        cmpa.l  a1,a0
                   1505:        beq     @f
                   1506:        pea.l   msg_fail_addr(pc)
                   1507:        move.l  a1,-(sp)
                   1508:        move.l  a0,-(sp)
                   1509:        bsr     result
                   1510:        lea.l   12(sp),sp
                   1511: @@:
                   1512:        fmove.l fpcr,d0
                   1513:        move.l  #$00005550,d1
                   1514:        cmp.l   d1,d0
                   1515:        beq     @f
                   1516:        pea.l   msg_fail_cr(pc)
                   1517:        move.l  d1,-(sp)
                   1518:        move.l  d0,-(sp)
                   1519:        bsr     result
                   1520:        lea.l   12(sp),sp
                   1521: @@:
                   1522:        fmove.l fpsr,d0
                   1523:        moveq.l #0,d1
                   1524:        cmp.l   d1,d0
                   1525:        beq     @f
                   1526:        pea.l   msg_fail_sr(pc)
                   1527:        move.l  d1,-(sp)
                   1528:        move.l  d0,-(sp)
                   1529:        bsr     result
                   1530:        lea.l   12(sp),sp
                   1531: @@:
                   1532:        fmove.l fpiar,a0
                   1533:        move.l  d7,a1   ; d7=0
                   1534:        cmpa.l  a1,a0
                   1535:        beq     @f
                   1536:        pea.l   msg_fail_ir(pc)
                   1537:        move.l  a1,-(sp)
                   1538:        move.l  a0,-(sp)
                   1539:        bsr     result
                   1540:        lea.l   12(sp),sp
                   1541: @@:
                   1542:        tst.l   d7
                   1543:        bne     @f
                   1544:        PRINT   msg_ok
                   1545: @@:
                   1546:        rts
                   1547: 
                   1548: test_fmovem_anpd_to_C__:
                   1549:        PRINT   msg_fmovem_anpd_to_C__
                   1550:        fmove.l #0,fpcr
                   1551:        fmove.l #0,fpsr
                   1552:        fmove.l #0,fpiar
                   1553:        move.l  #$55555555,workarea
                   1554:        lea.l   workarea+4(pc),a0
                   1555:        SET_FLINE_TRAP
                   1556:        moveq.l #0,d7
                   1557:        lea.l   @f,a3
                   1558:        fmovem.l -(a0),fpcr
                   1559: @@:
                   1560:        RESTORE_FLINE_TRAP
                   1561:        tst.l   d7
                   1562:        beq     @f
                   1563:        PRINT   msg_fail_trap
                   1564:        rts
                   1565: @@:
                   1566:        lea.l   workarea(pc),a1
                   1567:        cmpa.l  a1,a0
                   1568:        beq     @f
                   1569:        pea.l   msg_fail_addr(pc)
                   1570:        move.l  a1,-(sp)
                   1571:        move.l  a0,-(sp)
                   1572:        bsr     result
                   1573:        lea.l   12(sp),sp
                   1574: @@:
                   1575:        fmove.l fpcr,d0
                   1576:        move.l  #$00005550,d1
                   1577:        cmp.l   d1,d0
                   1578:        beq     @f
                   1579:        pea.l   msg_fail_cr(pc)
                   1580:        move.l  d1,-(sp)
                   1581:        move.l  d0,-(sp)
                   1582:        bsr     result
                   1583:        lea.l   12(sp),sp
                   1584: @@:
                   1585:        fmove.l fpsr,d0
                   1586:        moveq.l #0,d1
                   1587:        cmp.l   d1,d0
                   1588:        beq     @f
                   1589:        pea.l   msg_fail_sr(pc)
                   1590:        move.l  d1,-(sp)
                   1591:        move.l  d0,-(sp)
                   1592:        bsr     result
                   1593:        lea.l   12(sp),sp
                   1594: @@:
                   1595:        fmove.l fpiar,a0
                   1596:        move.l  d7,a1   ; d7=0
                   1597:        cmpa.l  a1,a0
                   1598:        beq     @f
                   1599:        pea.l   msg_fail_ir(pc)
                   1600:        move.l  a1,-(sp)
                   1601:        move.l  a0,-(sp)
                   1602:        bsr     result
                   1603:        lea.l   12(sp),sp
                   1604: @@:
                   1605:        tst.l   d7
                   1606:        bne     @f
                   1607:        PRINT   msg_ok
                   1608: @@:
                   1609:        rts
                   1610: 
                   1611: test_fmovem_imm_to_C__:
                   1612:        PRINT   msg_fmovem_imm_to_C__
                   1613:        fmove.l #0,fpcr
                   1614:        fmove.l #0,fpsr
                   1615:        fmove.l #0,fpiar
                   1616:        SET_FLINE_TRAP
                   1617:        moveq.l #0,d7
                   1618:        lea.l   @f,a3
                   1619:        fmovem.l #$55555555,fpcr
                   1620: @@:
                   1621:        RESTORE_FLINE_TRAP
                   1622:        tst.l   d7
                   1623:        beq     @f
                   1624:        PRINT   msg_fail_trap
                   1625:        rts
                   1626: @@:
                   1627:        fmove.l fpcr,d0
                   1628:        move.l  #$00005550,d1
                   1629:        cmp.l   d1,d0
                   1630:        beq     @f
                   1631:        pea.l   msg_fail_cr(pc)
                   1632:        move.l  d1,-(sp)
                   1633:        move.l  d0,-(sp)
                   1634:        bsr     result
                   1635:        lea.l   12(sp),sp
                   1636: @@:
                   1637:        fmove.l fpsr,d0
                   1638:        moveq.l #0,d1
                   1639:        cmp.l   d1,d0
                   1640:        beq     @f
                   1641:        pea.l   msg_fail_sr(pc)
                   1642:        move.l  d1,-(sp)
                   1643:        move.l  d0,-(sp)
                   1644:        bsr     result
                   1645:        lea.l   12(sp),sp
                   1646: @@:
                   1647:        fmove.l fpiar,a0
                   1648:        move.l  d7,a1   ; d7=0
                   1649:        cmpa.l  a1,a0
                   1650:        beq     @f
                   1651:        pea.l   msg_fail_ir(pc)
                   1652:        move.l  a1,-(sp)
                   1653:        move.l  a0,-(sp)
                   1654:        bsr     result
                   1655:        lea.l   12(sp),sp
                   1656: @@:
                   1657:        tst.l   d7
                   1658:        bne     @f
                   1659:        PRINT   msg_ok
                   1660: @@:
                   1661:        rts
                   1662: 
                   1663: test_fmovem_dn_to_C_I:
1.1.1.3 ! root     1664:        tst.b   is_hard(pc)
        !          1665:        bne             @f
        !          1666:        rts
        !          1667: @@:
1.1       root     1668:        PRINT   msg_fmovem_dn_to_C_I
                   1669:        SET_FLINE_TRAP
                   1670:        moveq.l #0,d7
                   1671:        lea.l   @f,a3
                   1672:        .dc.w   $f200, $9400
                   1673: @@:
                   1674:        RESTORE_FLINE_TRAP
                   1675:        tst.l   d7
                   1676:        bne     @f
                   1677:        PRINT   msg_fail_notrap
                   1678:        rts
                   1679: @@:
                   1680:        PRINT   msg_oktrap
                   1681:        rts
                   1682: 
                   1683: test_fmovem_an_to_C_I:
1.1.1.3 ! root     1684:        tst.b   is_hard(pc)
        !          1685:        bne             @f
        !          1686:        rts
        !          1687: @@:
1.1       root     1688:        PRINT   msg_fmovem_an_to_C_I
                   1689:        SET_FLINE_TRAP
                   1690:        moveq.l #0,d7
                   1691:        lea.l   @f,a3
                   1692:        .dc.w   $f208, $9400
                   1693: @@:
                   1694:        RESTORE_FLINE_TRAP
                   1695:        tst.l   d7
                   1696:        bne     @f
                   1697:        PRINT   msg_fail_notrap
                   1698:        rts
                   1699: @@:
                   1700:        PRINT   msg_oktrap
                   1701:        rts
                   1702: 
                   1703: test_fmovem_anin_to_C_I:
                   1704:        PRINT   msg_fmovem_anin_to_C_I
                   1705:        fmove.l #0,fpcr
                   1706:        fmove.l #0,fpsr
                   1707:        fmove.l #0,fpiar
                   1708:        move.l  #$55555555,workarea
                   1709:        move.l  #$aaaaaaaa,workarea+4
                   1710:        lea.l   workarea(pc),a0
                   1711:        SET_FLINE_TRAP
                   1712:        moveq.l #0,d7
                   1713:        lea.l   @f,a3
                   1714:        fmovem.l (a0),fpcr/fpiar
                   1715: @@:
                   1716:        RESTORE_FLINE_TRAP
                   1717:        tst.l   d7
                   1718:        beq     @f
                   1719:        PRINT   msg_fail_trap
                   1720:        rts
                   1721: @@:
                   1722:        lea.l   workarea(pc),a1
                   1723:        cmpa.l  a1,a0
                   1724:        beq     @f
                   1725:        pea.l   msg_fail_addr(pc)
                   1726:        move.l  a1,-(sp)
                   1727:        move.l  a0,-(sp)
                   1728:        bsr     result
                   1729:        lea.l   12(sp),sp
                   1730: @@:
                   1731:        fmove.l fpcr,d0
                   1732:        move.l  #$00005550,d1
                   1733:        cmp.l   d1,d0
                   1734:        beq     @f
                   1735:        pea.l   msg_fail_cr(pc)
                   1736:        move.l  d1,-(sp)
                   1737:        move.l  d0,-(sp)
                   1738:        bsr     result
                   1739:        lea.l   12(sp),sp
                   1740: @@:
                   1741:        fmove.l fpsr,d0
                   1742:        moveq.l #0,d1
                   1743:        cmp.l   d1,d0
                   1744:        beq     @f
                   1745:        pea.l   msg_fail_sr(pc)
                   1746:        move.l  d1,-(sp)
                   1747:        move.l  d0,-(sp)
                   1748:        bsr     result
                   1749:        lea.l   12(sp),sp
                   1750: @@:
                   1751:        fmove.l fpiar,a0
                   1752:        move.l  #$aaaaaaaa,a1
                   1753:        cmpa.l  a1,a0
                   1754:        beq     @f
                   1755:        pea.l   msg_fail_ir(pc)
                   1756:        move.l  a1,-(sp)
                   1757:        move.l  a0,-(sp)
                   1758:        bsr     result
                   1759:        lea.l   12(sp),sp
                   1760: @@:
                   1761:        tst.l   d7
                   1762:        bne     @f
                   1763:        PRINT   msg_ok
                   1764: @@:
                   1765:        rts
                   1766: 
                   1767: test_fmovem_anpi_to_C_I:
                   1768:        PRINT   msg_fmovem_anpi_to_C_I
                   1769:        fmove.l #0,fpcr
                   1770:        fmove.l #0,fpsr
                   1771:        fmove.l #0,fpiar
                   1772:        move.l  #$55555555,workarea
                   1773:        move.l  #$aaaaaaaa,workarea+4
                   1774:        lea.l   workarea(pc),a0
                   1775:        SET_FLINE_TRAP
                   1776:        moveq.l #0,d7
                   1777:        lea.l   @f,a3
                   1778:        fmovem.l (a0)+,fpcr/fpiar
                   1779: @@:
                   1780:        RESTORE_FLINE_TRAP
                   1781:        tst.l   d7
                   1782:        beq     @f
                   1783:        PRINT   msg_fail_trap
                   1784:        rts
                   1785: @@:
                   1786:        lea.l workarea+8(pc),a1
                   1787:        cmpa.l  a1,a0
                   1788:        beq     @f
                   1789:        pea.l   msg_fail_addr(pc)
                   1790:        move.l  a1,-(sp)
                   1791:        move.l  a0,-(sp)
                   1792:        bsr     result
                   1793:        lea.l   12(sp),sp
                   1794: @@:
                   1795:        fmove.l fpcr,d0
                   1796:        move.l  #$00005550,d1
                   1797:        cmp.l   d1,d0
                   1798:        beq     @f
                   1799:        pea.l   msg_fail_cr(pc)
                   1800:        move.l  d1,-(sp)
                   1801:        move.l  d0,-(sp)
                   1802:        bsr     result
                   1803:        lea.l   12(sp),sp
                   1804: @@:
                   1805:        fmove.l fpsr,d0
                   1806:        moveq.l #0,d1
                   1807:        cmp.l   d1,d0
                   1808:        beq     @f
                   1809:        pea.l   msg_fail_sr(pc)
                   1810:        move.l  d1,-(sp)
                   1811:        move.l  d0,-(sp)
                   1812:        bsr     result
                   1813:        lea.l   12(sp),sp
                   1814: @@:
                   1815:        fmove.l fpiar,a0
                   1816:        move.l  #$aaaaaaaa,a1
                   1817:        cmpa.l  a1,a0
                   1818:        beq     @f
                   1819:        pea.l   msg_fail_ir(pc)
                   1820:        move.l  a1,-(sp)
                   1821:        move.l  a0,-(sp)
                   1822:        bsr     result
                   1823:        lea.l   12(sp),sp
                   1824: @@:
                   1825:        tst.l   d7
                   1826:        bne     @f
                   1827:        PRINT   msg_ok
                   1828: @@:
                   1829:        rts
                   1830: 
                   1831: test_fmovem_anpd_to_C_I:
                   1832:        PRINT   msg_fmovem_anpd_to_C_I
                   1833:        fmove.l #0,fpcr
                   1834:        fmove.l #0,fpsr
                   1835:        fmove.l #0,fpiar
                   1836:        move.l  #$55555555,workarea
                   1837:        move.l  #$aaaaaaaa,workarea+4
                   1838:        lea.l   workarea+8(pc),a0
                   1839:        SET_FLINE_TRAP
                   1840:        moveq.l #0,d7
                   1841:        lea.l   @f,a3
                   1842:        fmovem.l -(a0),fpcr/fpiar
                   1843: @@:
                   1844:        RESTORE_FLINE_TRAP
                   1845:        tst.l   d7
                   1846:        beq     @f
                   1847:        PRINT   msg_fail_trap
                   1848:        rts
                   1849: @@:
                   1850:        lea.l   workarea(pc),a1
                   1851:        cmpa.l  a1,a0
                   1852:        beq     @f
                   1853:        pea.l   msg_fail_addr(pc)
                   1854:        move.l  a1,-(sp)
                   1855:        move.l  a0,-(sp)
                   1856:        bsr     result
                   1857:        lea.l   12(sp),sp
                   1858: @@:
                   1859:        fmove.l fpcr,d0
                   1860:        move.l  #$00005550,d1
                   1861:        cmp.l   d1,d0
                   1862:        beq     @f
                   1863:        pea.l   msg_fail_cr(pc)
                   1864:        move.l  d1,-(sp)
                   1865:        move.l  d0,-(sp)
                   1866:        bsr     result
                   1867:        lea.l   12(sp),sp
                   1868: @@:
                   1869:        fmove.l fpsr,d0
                   1870:        moveq.l #0,d1
                   1871:        cmp.l   d1,d0
                   1872:        beq     @f
                   1873:        pea.l   msg_fail_sr(pc)
                   1874:        move.l  d1,-(sp)
                   1875:        move.l  d0,-(sp)
                   1876:        bsr     result
                   1877:        lea.l   12(sp),sp
                   1878: @@:
                   1879:        fmove.l fpiar,a0
                   1880:        move.l  #$aaaaaaaa,a1
                   1881:        cmpa.l  a1,a0
                   1882:        beq     @f
                   1883:        pea.l   msg_fail_ir(pc)
                   1884:        move.l  a1,-(sp)
                   1885:        move.l  a0,-(sp)
                   1886:        bsr     result
                   1887:        lea.l   12(sp),sp
                   1888: @@:
                   1889:        tst.l   d7
                   1890:        bne     @f
                   1891:        PRINT   msg_ok
                   1892: @@:
                   1893:        rts
                   1894: 
                   1895: test_fmovem_imm_to_C_I:
                   1896:        PRINT   msg_fmovem_imm_to_C_I
                   1897:        fmove.l #0,fpcr
                   1898:        fmove.l #0,fpsr
                   1899:        fmove.l #0,fpiar
                   1900:        SET_FLINE_TRAP
                   1901:        moveq.l #0,d7
                   1902:        lea.l   @f,a3
                   1903:        fmovem.l #$55555555,#$aaaaaaaa,fpcr/fpiar
                   1904: @@:
                   1905:        RESTORE_FLINE_TRAP
                   1906:        tst.l   d7
                   1907:        beq     @f
                   1908:        PRINT   msg_fail_trap
                   1909:        rts
                   1910: @@:
                   1911:        fmove.l fpcr,d0
                   1912:        move.l  #$00005550,d1
                   1913:        cmp.l   d1,d0
                   1914:        beq     @f
                   1915:        pea.l   msg_fail_cr(pc)
                   1916:        move.l  d1,-(sp)
                   1917:        move.l  d0,-(sp)
                   1918:        bsr     result
                   1919:        lea.l   12(sp),sp
                   1920: @@:
                   1921:        fmove.l fpsr,d0
                   1922:        moveq.l #0,d1
                   1923:        cmp.l   d1,d0
                   1924:        beq     @f
                   1925:        pea.l   msg_fail_sr(pc)
                   1926:        move.l  d1,-(sp)
                   1927:        move.l  d0,-(sp)
                   1928:        bsr     result
                   1929:        lea.l   12(sp),sp
                   1930: @@:
                   1931:        fmove.l fpiar,a0
                   1932:        move.l  #$aaaaaaaa,a1
                   1933:        cmpa.l  a1,a0
                   1934:        beq     @f
                   1935:        pea.l   msg_fail_ir(pc)
                   1936:        move.l  a1,-(sp)
                   1937:        move.l  a0,-(sp)
                   1938:        bsr     result
                   1939:        lea.l   12(sp),sp
                   1940: @@:
                   1941:        tst.l   d7
                   1942:        bne     @f
                   1943:        PRINT   msg_ok
                   1944: @@:
                   1945:        rts
                   1946: 
                   1947: test_fmovem_dn_to_CS_:
1.1.1.3 ! root     1948:        tst.b   is_hard(pc)
        !          1949:        bne             @f
        !          1950:        rts
        !          1951: @@:
1.1       root     1952:        PRINT   msg_fmovem_dn_to_CS_
                   1953:        SET_FLINE_TRAP
                   1954:        moveq.l #0,d7
                   1955:        lea.l   @f,a3
                   1956:        .dc.w   $f200, $9800
                   1957: @@:
                   1958:        RESTORE_FLINE_TRAP
                   1959:        tst.l   d7
                   1960:        bne     @f
                   1961:        PRINT   msg_fail_notrap
                   1962:        rts
                   1963: @@:
                   1964:        PRINT   msg_oktrap
                   1965:        rts
                   1966: 
                   1967: test_fmovem_an_to_CS_:
1.1.1.3 ! root     1968:        tst.b   is_hard(pc)
        !          1969:        bne             @f
        !          1970:        rts
        !          1971: @@:
1.1       root     1972:        PRINT   msg_fmovem_an_to_CS_
                   1973:        SET_FLINE_TRAP
                   1974:        moveq.l #0,d7
                   1975:        lea.l   @f,a3
                   1976:        .dc.w   $f208, $9800
                   1977: @@:
                   1978:        RESTORE_FLINE_TRAP
                   1979:        tst.l   d7
                   1980:        bne     @f
                   1981:        PRINT   msg_fail_notrap
                   1982:        rts
                   1983: @@:
                   1984:        PRINT   msg_oktrap
                   1985:        rts
                   1986: 
                   1987: test_fmovem_anin_to_CS_:
                   1988:        PRINT   msg_fmovem_anin_to_CS_
                   1989:        fmove.l #0,fpcr
                   1990:        fmove.l #0,fpsr
                   1991:        fmove.l #0,fpiar
                   1992:        move.l  #$55555555,workarea
                   1993:        move.l  #$aaaaaaaa,workarea+4
                   1994:        lea.l   workarea(pc),a0
                   1995:        SET_FLINE_TRAP
                   1996:        moveq.l #0,d7
                   1997:        lea.l   @f,a3
                   1998:        fmovem.l (a0),fpcr/fpsr
                   1999: @@:
                   2000:        RESTORE_FLINE_TRAP
                   2001:        tst.l   d7
                   2002:        beq     @f
                   2003:        PRINT   msg_fail_trap
                   2004:        rts
                   2005: @@:
                   2006:        lea.l   workarea(pc),a1
                   2007:        cmpa.l  a1,a0
                   2008:        beq     @f
                   2009:        pea.l   msg_fail_addr(pc)
                   2010:        move.l  a1,-(sp)
                   2011:        move.l  a0,-(sp)
                   2012:        bsr     result
                   2013:        lea.l   12(sp),sp
                   2014: @@:
                   2015:        fmove.l fpcr,d0
                   2016:        move.l  #$00005550,d1
                   2017:        cmp.l   d1,d0
                   2018:        beq     @f
                   2019:        pea.l   msg_fail_cr(pc)
                   2020:        move.l  d1,-(sp)
                   2021:        move.l  d0,-(sp)
                   2022:        bsr     result
                   2023:        lea.l   12(sp),sp
                   2024: @@:
                   2025:        fmove.l fpsr,d0
                   2026:        move.l  #$0aaaaaa8,d1
                   2027:        cmp.l   d1,d0
                   2028:        beq     @f
                   2029:        pea.l   msg_fail_sr(pc)
                   2030:        move.l  d1,-(sp)
                   2031:        move.l  d0,-(sp)
                   2032:        bsr     result
                   2033:        lea.l   12(sp),sp
                   2034: @@:
                   2035:        fmove.l fpiar,a0
                   2036:        move.l  d7,a1   ; d7=0
                   2037:        cmpa.l  a1,a0
                   2038:        beq     @f
                   2039:        pea.l   msg_fail_ir(pc)
                   2040:        move.l  a1,-(sp)
                   2041:        move.l  a0,-(sp)
                   2042:        bsr     result
                   2043:        lea.l   12(sp),sp
                   2044: @@:
                   2045:        tst.l   d7
                   2046:        bne     @f
                   2047:        PRINT   msg_ok
                   2048: @@:
                   2049:        rts
                   2050: 
                   2051: test_fmovem_anpi_to_CS_:
                   2052:        PRINT   msg_fmovem_anpi_to_CS_
                   2053:        fmove.l #0,fpcr
                   2054:        fmove.l #0,fpsr
                   2055:        fmove.l #0,fpiar
                   2056:        move.l  #$55555555,workarea
                   2057:        move.l  #$aaaaaaaa,workarea+4
                   2058:        lea.l   workarea(pc),a0
                   2059:        SET_FLINE_TRAP
                   2060:        moveq.l #0,d7
                   2061:        lea.l   @f,a3
                   2062:        fmovem.l (a0)+,fpcr/fpsr
                   2063: @@:
                   2064:        RESTORE_FLINE_TRAP
                   2065:        tst.l   d7
                   2066:        beq     @f
                   2067:        PRINT   msg_fail_trap
                   2068:        rts
                   2069: @@:
                   2070:        lea.l workarea+8(pc),a1
                   2071:        cmpa.l  a1,a0
                   2072:        beq     @f
                   2073:        pea.l   msg_fail_addr(pc)
                   2074:        move.l  a1,-(sp)
                   2075:        move.l  a0,-(sp)
                   2076:        bsr     result
                   2077:        lea.l   12(sp),sp
                   2078: @@:
                   2079:        fmove.l fpcr,d0
                   2080:        move.l  #$00005550,d1
                   2081:        cmp.l   d1,d0
                   2082:        beq     @f
                   2083:        pea.l   msg_fail_cr(pc)
                   2084:        move.l  d1,-(sp)
                   2085:        move.l  d0,-(sp)
                   2086:        bsr     result
                   2087:        lea.l   12(sp),sp
                   2088: @@:
                   2089:        fmove.l fpsr,d0
                   2090:        move.l  #$0aaaaaa8,d1
                   2091:        cmp.l   d1,d0
                   2092:        beq     @f
                   2093:        pea.l   msg_fail_sr(pc)
                   2094:        move.l  d1,-(sp)
                   2095:        move.l  d0,-(sp)
                   2096:        bsr     result
                   2097:        lea.l   12(sp),sp
                   2098: @@:
                   2099:        fmove.l fpiar,a0
                   2100:        move.l  d7,a1   ; d7=0
                   2101:        cmpa.l  a1,a0
                   2102:        beq     @f
                   2103:        pea.l   msg_fail_ir(pc)
                   2104:        move.l  a1,-(sp)
                   2105:        move.l  a0,-(sp)
                   2106:        bsr     result
                   2107:        lea.l   12(sp),sp
                   2108: @@:
                   2109:        tst.l   d7
                   2110:        bne     @f
                   2111:        PRINT   msg_ok
                   2112: @@:
                   2113:        rts
                   2114: 
                   2115: test_fmovem_anpd_to_CS_:
                   2116:        PRINT   msg_fmovem_anpd_to_CS_
                   2117:        fmove.l #0,fpcr
                   2118:        fmove.l #0,fpsr
                   2119:        fmove.l #0,fpiar
                   2120:        move.l  #$55555555,workarea
                   2121:        move.l  #$aaaaaaaa,workarea+4
                   2122:        lea.l   workarea+8(pc),a0
                   2123:        SET_FLINE_TRAP
                   2124:        moveq.l #0,d7
                   2125:        lea.l   @f,a3
                   2126:        fmovem.l -(a0),fpcr/fpsr
                   2127: @@:
                   2128:        RESTORE_FLINE_TRAP
                   2129:        tst.l   d7
                   2130:        beq     @f
                   2131:        PRINT   msg_fail_trap
                   2132:        rts
                   2133: @@:
                   2134:        lea.l   workarea(pc),a1
                   2135:        cmpa.l  a1,a0
                   2136:        beq     @f
                   2137:        pea.l   msg_fail_addr(pc)
                   2138:        move.l  a1,-(sp)
                   2139:        move.l  a0,-(sp)
                   2140:        bsr     result
                   2141:        lea.l   12(sp),sp
                   2142: @@:
                   2143:        fmove.l fpcr,d0
                   2144:        move.l  #$00005550,d1
                   2145:        cmp.l   d1,d0
                   2146:        beq     @f
                   2147:        pea.l   msg_fail_cr(pc)
                   2148:        move.l  d1,-(sp)
                   2149:        move.l  d0,-(sp)
                   2150:        bsr     result
                   2151:        lea.l   12(sp),sp
                   2152: @@:
                   2153:        fmove.l fpsr,d0
                   2154:        move.l  #$0aaaaaa8,d1
                   2155:        cmp.l   d1,d0
                   2156:        beq     @f
                   2157:        pea.l   msg_fail_sr(pc)
                   2158:        move.l  d1,-(sp)
                   2159:        move.l  d0,-(sp)
                   2160:        bsr     result
                   2161:        lea.l   12(sp),sp
                   2162: @@:
                   2163:        fmove.l fpiar,a0
                   2164:        move.l  d7,a1   ; d7=0
                   2165:        cmpa.l  a1,a0
                   2166:        beq     @f
                   2167:        pea.l   msg_fail_ir(pc)
                   2168:        move.l  a1,-(sp)
                   2169:        move.l  a0,-(sp)
                   2170:        bsr     result
                   2171:        lea.l   12(sp),sp
                   2172: @@:
                   2173:        tst.l   d7
                   2174:        bne     @f
                   2175:        PRINT   msg_ok
                   2176: @@:
                   2177:        rts
                   2178: 
                   2179: test_fmovem_imm_to_CS_:
                   2180:        PRINT   msg_fmovem_imm_to_CS_
                   2181:        fmove.l #0,fpcr
                   2182:        fmove.l #0,fpsr
                   2183:        fmove.l #0,fpiar
                   2184:        SET_FLINE_TRAP
                   2185:        moveq.l #0,d7
                   2186:        lea.l   @f,a3
                   2187:        fmovem.l #$55555555,#$aaaaaaaa,fpcr/fpsr
                   2188: @@:
                   2189:        RESTORE_FLINE_TRAP
                   2190:        tst.l   d7
                   2191:        beq     @f
                   2192:        PRINT   msg_fail_trap
                   2193:        rts
                   2194: @@:
                   2195:        fmove.l fpcr,d0
                   2196:        move.l  #$00005550,d1
                   2197:        cmp.l   d1,d0
                   2198:        beq     @f
                   2199:        pea.l   msg_fail_cr(pc)
                   2200:        move.l  d1,-(sp)
                   2201:        move.l  d0,-(sp)
                   2202:        bsr     result
                   2203:        lea.l   12(sp),sp
                   2204: @@:
                   2205:        fmove.l fpsr,d0
                   2206:        move.l  #$0aaaaaa8,d1
                   2207:        cmp.l   d1,d0
                   2208:        beq     @f
                   2209:        pea.l   msg_fail_sr(pc)
                   2210:        move.l  d1,-(sp)
                   2211:        move.l  d0,-(sp)
                   2212:        bsr     result
                   2213:        lea.l   12(sp),sp
                   2214: @@:
                   2215:        fmove.l fpiar,a0
                   2216:        move.l  d7,a1   ; d7=0
                   2217:        cmpa.l  a1,a0
                   2218:        beq     @f
                   2219:        pea.l   msg_fail_ir(pc)
                   2220:        move.l  a1,-(sp)
                   2221:        move.l  a0,-(sp)
                   2222:        bsr     result
                   2223:        lea.l   12(sp),sp
                   2224: @@:
                   2225:        tst.l   d7
                   2226:        bne     @f
                   2227:        PRINT   msg_ok
                   2228: @@:
                   2229:        rts
                   2230: 
                   2231: test_fmovem_dn_to_CSI:
1.1.1.3 ! root     2232:        tst.b   is_hard(pc)
        !          2233:        bne             @f
        !          2234:        rts
        !          2235: @@:
1.1       root     2236:        PRINT   msg_fmovem_dn_to_CSI
                   2237:        SET_FLINE_TRAP
                   2238:        moveq.l #0,d7
                   2239:        lea.l   @f,a3
                   2240:        .dc.w   $f200, $9c00
                   2241: @@:
                   2242:        RESTORE_FLINE_TRAP
                   2243:        tst.l   d7
                   2244:        bne     @f
                   2245:        PRINT   msg_fail_notrap
                   2246:        rts
                   2247: @@:
                   2248:        PRINT   msg_oktrap
                   2249:        rts
                   2250: 
                   2251: test_fmovem_an_to_CSI:
1.1.1.3 ! root     2252:        tst.b   is_hard(pc)
        !          2253:        bne             @f
        !          2254:        rts
        !          2255: @@:
1.1       root     2256:        PRINT   msg_fmovem_an_to_CSI
                   2257:        SET_FLINE_TRAP
                   2258:        moveq.l #0,d7
                   2259:        lea.l   @f,a3
                   2260:        .dc.w   $f208, $9c00
                   2261: @@:
                   2262:        RESTORE_FLINE_TRAP
                   2263:        tst.l   d7
                   2264:        bne     @f
                   2265:        PRINT   msg_fail_notrap
                   2266:        rts
                   2267: @@:
                   2268:        PRINT   msg_oktrap
                   2269:        rts
                   2270: 
                   2271: test_fmovem_anin_to_CSI:
                   2272:        PRINT   msg_fmovem_anin_to_CSI
                   2273:        fmove.l #0,fpcr
                   2274:        fmove.l #0,fpsr
                   2275:        fmove.l #0,fpiar
                   2276:        move.l  #$55555555,workarea
                   2277:        move.l  #$aaaaaaaa,workarea+4
                   2278:        move.l  #$33333333,workarea+8
                   2279:        lea.l   workarea(pc),a0
                   2280:        SET_FLINE_TRAP
                   2281:        moveq.l #0,d7
                   2282:        lea.l   @f,a3
                   2283:        fmovem.l (a0),fpcr/fpsr/fpiar
                   2284: @@:
                   2285:        RESTORE_FLINE_TRAP
                   2286:        tst.l   d7
                   2287:        beq     @f
                   2288:        PRINT   msg_fail_trap
                   2289:        rts
                   2290: @@:
                   2291:        lea.l   workarea(pc),a1
                   2292:        cmpa.l  a1,a0
                   2293:        beq     @f
                   2294:        pea.l   msg_fail_addr(pc)
                   2295:        move.l  a1,-(sp)
                   2296:        move.l  a0,-(sp)
                   2297:        bsr     result
                   2298:        lea.l   12(sp),sp
                   2299: @@:
                   2300:        fmove.l fpcr,d0
                   2301:        move.l  #$00005550,d1
                   2302:        cmp.l   d1,d0
                   2303:        beq     @f
                   2304:        pea.l   msg_fail_cr(pc)
                   2305:        move.l  d1,-(sp)
                   2306:        move.l  d0,-(sp)
                   2307:        bsr     result
                   2308:        lea.l   12(sp),sp
                   2309: @@:
                   2310:        fmove.l fpsr,d0
                   2311:        move.l  #$0aaaaaa8,d1
                   2312:        cmp.l   d1,d0
                   2313:        beq     @f
                   2314:        pea.l   msg_fail_sr(pc)
                   2315:        move.l  d1,-(sp)
                   2316:        move.l  d0,-(sp)
                   2317:        bsr     result
                   2318:        lea.l   12(sp),sp
                   2319: @@:
                   2320:        fmove.l fpiar,a0
                   2321:        move.l  #$33333333,a1
                   2322:        cmpa.l  a1,a0
                   2323:        beq     @f
                   2324:        pea.l   msg_fail_ir(pc)
                   2325:        move.l  a1,-(sp)
                   2326:        move.l  a0,-(sp)
                   2327:        bsr     result
                   2328:        lea.l   12(sp),sp
                   2329: @@:
                   2330:        tst.l   d7
                   2331:        bne     @f
                   2332:        PRINT   msg_ok
                   2333: @@:
                   2334:        rts
                   2335: 
                   2336: test_fmovem_anpi_to_CSI:
                   2337:        PRINT   msg_fmovem_anpi_to_CSI
                   2338:        fmove.l #0,fpcr
                   2339:        fmove.l #0,fpsr
                   2340:        fmove.l #0,fpiar
                   2341:        move.l  #$55555555,workarea
                   2342:        move.l  #$aaaaaaaa,workarea+4
                   2343:        move.l  #$33333333,workarea+8
                   2344:        lea.l   workarea(pc),a0
                   2345:        SET_FLINE_TRAP
                   2346:        moveq.l #0,d7
                   2347:        lea.l   @f,a3
                   2348:        fmovem.l (a0)+,fpcr/fpsr/fpiar
                   2349: @@:
                   2350:        RESTORE_FLINE_TRAP
                   2351:        tst.l   d7
                   2352:        beq     @f
                   2353:        PRINT   msg_fail_trap
                   2354:        rts
                   2355: @@:
                   2356:        lea.l workarea+12(pc),a1
                   2357:        cmpa.l  a1,a0
                   2358:        beq     @f
                   2359:        pea.l   msg_fail_addr(pc)
                   2360:        move.l  a1,-(sp)
                   2361:        move.l  a0,-(sp)
                   2362:        bsr     result
                   2363:        lea.l   12(sp),sp
                   2364: @@:
                   2365:        fmove.l fpcr,d0
                   2366:        move.l  #$00005550,d1
                   2367:        cmp.l   d1,d0
                   2368:        beq     @f
                   2369:        pea.l   msg_fail_cr(pc)
                   2370:        move.l  d1,-(sp)
                   2371:        move.l  d0,-(sp)
                   2372:        bsr     result
                   2373:        lea.l   12(sp),sp
                   2374: @@:
                   2375:        fmove.l fpsr,d0
                   2376:        move.l  #$0aaaaaa8,d1
                   2377:        cmp.l   d1,d0
                   2378:        beq     @f
                   2379:        pea.l   msg_fail_sr(pc)
                   2380:        move.l  d1,-(sp)
                   2381:        move.l  d0,-(sp)
                   2382:        bsr     result
                   2383:        lea.l   12(sp),sp
                   2384: @@:
                   2385:        fmove.l fpiar,a0
                   2386:        move.l  #$33333333,a1
                   2387:        cmpa.l  a1,a0
                   2388:        beq     @f
                   2389:        pea.l   msg_fail_ir(pc)
                   2390:        move.l  a1,-(sp)
                   2391:        move.l  a0,-(sp)
                   2392:        bsr     result
                   2393:        lea.l   12(sp),sp
                   2394: @@:
                   2395:        tst.l   d7
                   2396:        bne     @f
                   2397:        PRINT   msg_ok
                   2398: @@:
                   2399:        rts
                   2400: 
                   2401: test_fmovem_anpd_to_CSI:
                   2402:        PRINT   msg_fmovem_anpd_to_CSI
                   2403:        fmove.l #0,fpcr
                   2404:        fmove.l #0,fpsr
                   2405:        fmove.l #0,fpiar
                   2406:        move.l  #$55555555,workarea
                   2407:        move.l  #$aaaaaaaa,workarea+4
                   2408:        move.l  #$33333333,workarea+8
                   2409:        lea.l   workarea+12(pc),a0
                   2410:        SET_FLINE_TRAP
                   2411:        moveq.l #0,d7
                   2412:        lea.l   @f,a3
                   2413:        fmovem.l -(a0),fpcr/fpsr/fpiar
                   2414: @@:
                   2415:        RESTORE_FLINE_TRAP
                   2416:        tst.l   d7
                   2417:        beq     @f
                   2418:        PRINT   msg_fail_trap
                   2419:        rts
                   2420: @@:
                   2421:        lea.l   workarea(pc),a1
                   2422:        cmpa.l  a1,a0
                   2423:        beq     @f
                   2424:        pea.l   msg_fail_addr(pc)
                   2425:        move.l  a1,-(sp)
                   2426:        move.l  a0,-(sp)
                   2427:        bsr     result
                   2428:        lea.l   12(sp),sp
                   2429: @@:
                   2430:        fmove.l fpcr,d0
                   2431:        move.l  #$00005550,d1
                   2432:        cmp.l   d1,d0
                   2433:        beq     @f
                   2434:        pea.l   msg_fail_cr(pc)
                   2435:        move.l  d1,-(sp)
                   2436:        move.l  d0,-(sp)
                   2437:        bsr     result
                   2438:        lea.l   12(sp),sp
                   2439: @@:
                   2440:        fmove.l fpsr,d0
                   2441:        move.l  #$0aaaaaa8,d1
                   2442:        cmp.l   d1,d0
                   2443:        beq     @f
                   2444:        pea.l   msg_fail_sr(pc)
                   2445:        move.l  d1,-(sp)
                   2446:        move.l  d0,-(sp)
                   2447:        bsr     result
                   2448:        lea.l   12(sp),sp
                   2449: @@:
                   2450:        fmove.l fpiar,a0
                   2451:        move.l  #$33333333,a1
                   2452:        cmpa.l  a1,a0
                   2453:        beq     @f
                   2454:        pea.l   msg_fail_ir(pc)
                   2455:        move.l  a1,-(sp)
                   2456:        move.l  a0,-(sp)
                   2457:        bsr     result
                   2458:        lea.l   12(sp),sp
                   2459: @@:
                   2460:        tst.l   d7
                   2461:        bne     @f
                   2462:        PRINT   msg_ok
                   2463: @@:
                   2464:        rts
                   2465: 
                   2466: test_fmovem_imm_to_CSI:
                   2467:        PRINT   msg_fmovem_imm_to_CSI
                   2468:        fmove.l #0,fpcr
                   2469:        fmove.l #0,fpsr
                   2470:        fmove.l #0,fpiar
                   2471:        SET_FLINE_TRAP
                   2472:        moveq.l #0,d7
                   2473:        lea.l   @f,a3
                   2474:        fmovem.l #$55555555,#$aaaaaaaa,#$33333333,fpcr/fpsr/fpiar
                   2475: @@:
                   2476:        RESTORE_FLINE_TRAP
                   2477:        tst.l   d7
                   2478:        beq     @f
                   2479:        PRINT   msg_fail_trap
                   2480:        rts
                   2481: @@:
                   2482:        fmove.l fpcr,d0
                   2483:        move.l  #$00005550,d1
                   2484:        cmp.l   d1,d0
                   2485:        beq     @f
                   2486:        pea.l   msg_fail_cr(pc)
                   2487:        move.l  d1,-(sp)
                   2488:        move.l  d0,-(sp)
                   2489:        bsr     result
                   2490:        lea.l   12(sp),sp
                   2491: @@:
                   2492:        fmove.l fpsr,d0
                   2493:        move.l  #$0aaaaaa8,d1
                   2494:        cmp.l   d1,d0
                   2495:        beq     @f
                   2496:        pea.l   msg_fail_sr(pc)
                   2497:        move.l  d1,-(sp)
                   2498:        move.l  d0,-(sp)
                   2499:        bsr     result
                   2500:        lea.l   12(sp),sp
                   2501: @@:
                   2502:        fmove.l fpiar,a0
                   2503:        move.l  #$33333333,a1
                   2504:        cmpa.l  a1,a0
                   2505:        beq     @f
                   2506:        pea.l   msg_fail_ir(pc)
                   2507:        move.l  a1,-(sp)
                   2508:        move.l  a0,-(sp)
                   2509:        bsr     result
                   2510:        lea.l   12(sp),sp
                   2511: @@:
                   2512:        tst.l   d7
                   2513:        bne     @f
                   2514:        PRINT   msg_ok
                   2515: @@:
                   2516:        rts
                   2517: 
                   2518: test_fmovem_____to_dn:
                   2519:        PRINT   msg_fmovem_____to_dn
                   2520:        fmove.l #$00000000,fpcr
                   2521:        fmove.l #$00000000,fpsr
                   2522:        fmove.l #$55555555,fpiar
                   2523:        SET_FLINE_TRAP
                   2524:        moveq.l #0,d7
                   2525:        lea.l   @f,a3
                   2526:        .dc.w   $f200, $a000
                   2527: @@:
                   2528:        RESTORE_FLINE_TRAP
                   2529:        tst.l   d7
                   2530:        beq     @f
                   2531:        PRINT   msg_fail_trap
                   2532:        rts
                   2533: @@:
                   2534:        move.l  #$55555555,d1
                   2535:        cmp.l   d1,d0
                   2536:        beq     @f
                   2537:        pea.l   msg_fail(pc)
                   2538:        move.l  d1,-(sp)
                   2539:        move.l  d0,-(sp)
                   2540:        bsr     result
                   2541:        lea.l   12(sp),sp
                   2542: @@:
                   2543:        tst.l   d7
                   2544:        bne     @f
                   2545:        PRINT   msg_ok
                   2546: @@:
                   2547:        rts
                   2548: 
                   2549: test_fmovem_____to_an:
                   2550:        PRINT   msg_fmovem_____to_an
                   2551:        fmove.l #$00000000,fpcr
                   2552:        fmove.l #$00000000,fpsr
                   2553:        fmove.l #$55555555,fpiar
                   2554:        SET_FLINE_TRAP
                   2555:        moveq.l #0,d7
                   2556:        lea.l   @f,a3
                   2557:        .dc.w   $f208, $a000
                   2558: @@:
                   2559:        RESTORE_FLINE_TRAP
                   2560:        tst.l   d7
                   2561:        beq     @f
                   2562:        PRINT   msg_fail_trap
                   2563:        rts
                   2564: @@:
                   2565:        movea.l #$55555555,a1
                   2566:        cmp.l   a1,a0
                   2567:        beq     @f
                   2568:        pea.l   msg_fail(pc)
                   2569:        move.l  a1,-(sp)
                   2570:        move.l  a0,-(sp)
                   2571:        bsr     result
                   2572:        lea.l   12(sp),sp
                   2573: @@:
                   2574:        tst.l   d7
                   2575:        bne     @f
                   2576:        PRINT   msg_ok
                   2577: @@:
                   2578:        rts
                   2579: 
                   2580: test_fmovem_____to_anin:
                   2581:        PRINT   msg_fmovem_____to_anin
                   2582:        fmove.l #$00000000,fpcr
                   2583:        fmove.l #$00000000,fpsr
                   2584:        fmove.l #$55555555,fpiar
                   2585:        lea.l   workarea(pc),a0
                   2586:        SET_FLINE_TRAP
                   2587:        moveq.l #0,d7
                   2588:        lea.l   @f,a3
                   2589:        .dc.w   $f210, $a000
                   2590: @@:
                   2591:        RESTORE_FLINE_TRAP
                   2592:        tst.l   d7
                   2593:        beq     @f
                   2594:        PRINT   msg_fail_trap
                   2595:        rts
                   2596: @@:
                   2597:        lea.l   workarea(pc),a1
                   2598:        cmpa.l  a1,a0
                   2599:        beq     @f
                   2600:        pea.l   msg_fail_addr(pc)
                   2601:        move.l  a1,-(sp)
                   2602:        move.l  a0,-(sp)
                   2603:        bsr     result
                   2604:        lea.l   12(sp),sp
                   2605: @@:
                   2606:        move.l  #$55555555,d1
                   2607:        cmp.l   workarea+0,d1
                   2608:        beq     @f
                   2609:        pea.l   msg_fail(pc)
                   2610:        move.l  d1,-(sp)
                   2611:        move.l  workarea+4,-(sp)
                   2612:        bsr     result
                   2613:        lea.l   12(sp),sp
                   2614: @@:
                   2615:        tst.l   d7
                   2616:        bne     @f
                   2617:        PRINT   msg_ok
                   2618: @@:
                   2619:        rts
                   2620: 
                   2621: test_fmovem_____to_anpi:
                   2622:        PRINT   msg_fmovem_____to_anpi
                   2623:        fmove.l #$00000000,fpcr
                   2624:        fmove.l #$00000000,fpsr
                   2625:        fmove.l #$55555555,fpiar
                   2626:        lea.l   workarea(pc),a0
                   2627:        SET_FLINE_TRAP
                   2628:        moveq.l #0,d7
                   2629:        lea.l   @f,a3
                   2630:        .dc.w   $f218, $a000
                   2631: @@:
                   2632:        RESTORE_FLINE_TRAP
                   2633:        tst.l   d7
                   2634:        beq     @f
                   2635:        PRINT   msg_fail_trap
                   2636:        rts
                   2637: @@:
                   2638:        lea.l workarea+4(pc),a1
                   2639:        cmpa.l  a1,a0
                   2640:        beq     @f
                   2641:        pea.l   msg_fail_addr(pc)
                   2642:        move.l  a1,-(sp)
                   2643:        move.l  a0,-(sp)
                   2644:        bsr     result
                   2645:        lea.l   12(sp),sp
                   2646: @@:
                   2647:        move.l  #$55555555,d1
                   2648:        cmp.l   workarea+0,d1
                   2649:        beq     @f
                   2650:        pea.l   msg_fail(pc)
                   2651:        move.l  d1,-(sp)
                   2652:        move.l  workarea+4,-(sp)
                   2653:        bsr     result
                   2654:        lea.l   12(sp),sp
                   2655: @@:
                   2656:        tst.l   d7
                   2657:        bne     @f
                   2658:        PRINT   msg_ok
                   2659: @@:
                   2660:        rts
                   2661: 
                   2662: test_fmovem_____to_anpd:
                   2663:        PRINT   msg_fmovem_____to_anpd
                   2664:        fmove.l #$00000000,fpcr
                   2665:        fmove.l #$00000000,fpsr
                   2666:        fmove.l #$55555555,fpiar
                   2667:        lea.l   workarea+4(pc),a0
                   2668:        SET_FLINE_TRAP
                   2669:        moveq.l #0,d7
                   2670:        lea.l   @f,a3
                   2671:        .dc.w   $f220, $a000
                   2672: @@:
                   2673:        RESTORE_FLINE_TRAP
                   2674:        tst.l   d7
                   2675:        beq     @f
                   2676:        PRINT   msg_fail_trap
                   2677:        rts
                   2678: @@:
                   2679:        lea.l   workarea(pc),a1
                   2680:        cmpa.l  a1,a0
                   2681:        beq     @f
                   2682:        pea.l   msg_fail_addr(pc)
                   2683:        move.l  a1,-(sp)
                   2684:        move.l  a0,-(sp)
                   2685:        bsr     result
                   2686:        lea.l   12(sp),sp
                   2687: @@:
                   2688:        move.l  #$55555555,d1
                   2689:        cmp.l   workarea+0,d1
                   2690:        beq     @f
                   2691:        pea.l   msg_fail(pc)
                   2692:        move.l  d1,-(sp)
                   2693:        move.l  workarea+4,-(sp)
                   2694:        bsr     result
                   2695:        lea.l   12(sp),sp
                   2696: @@:
                   2697:        tst.l   d7
                   2698:        bne     @f
                   2699:        PRINT   msg_ok
                   2700: @@:
                   2701:        rts
                   2702: 
                   2703: test_fmovem_____to_imm:
1.1.1.3 ! root     2704:        tst.b   is_hard(pc)
        !          2705:        bne             @f
        !          2706:        rts
        !          2707: @@:
1.1       root     2708:        PRINT   msg_fmovem_____to_imm
                   2709:        SET_FLINE_TRAP
                   2710:        moveq.l #0,d7
                   2711:        lea.l   @f,a3
                   2712:        .dc.w   $f23c, $a000
                   2713: @@:
                   2714:        RESTORE_FLINE_TRAP
                   2715:        tst.l   d7
                   2716:        bne     @f
                   2717:        PRINT   msg_fail_notrap
                   2718:        rts
                   2719: @@:
                   2720:        PRINT   msg_oktrap
                   2721:        rts
                   2722: 
                   2723: test_fmovem___I_to_dn:
                   2724:        PRINT   msg_fmovem___I_to_dn
                   2725:        fmove.l #$00000000,fpcr
                   2726:        fmove.l #$00000000,fpsr
                   2727:        fmove.l #$55555555,fpiar
                   2728:        SET_FLINE_TRAP
                   2729:        moveq.l #0,d7
                   2730:        lea.l   @f,a3
                   2731:        fmovem.l fpiar,d0
                   2732: @@:
                   2733:        RESTORE_FLINE_TRAP
                   2734:        tst.l   d7
                   2735:        beq     @f
                   2736:        PRINT   msg_fail_trap
                   2737:        rts
                   2738: @@:
                   2739:        move.l  #$55555555,d1
                   2740:        cmp.l   d1,d0
                   2741:        beq     @f
                   2742:        pea.l   msg_fail(pc)
                   2743:        move.l  d1,-(sp)
                   2744:        move.l  d0,-(sp)
                   2745:        bsr     result
                   2746:        lea.l   12(sp),sp
                   2747: @@:
                   2748:        tst.l   d7
                   2749:        bne     @f
                   2750:        PRINT   msg_ok
                   2751: @@:
                   2752:        rts
                   2753: 
                   2754: test_fmovem___I_to_an:
                   2755:        PRINT   msg_fmovem___I_to_an
                   2756:        fmove.l #$00000000,fpcr
                   2757:        fmove.l #$00000000,fpsr
                   2758:        fmove.l #$55555555,fpiar
                   2759:        SET_FLINE_TRAP
                   2760:        moveq.l #0,d7
                   2761:        lea.l   @f,a3
                   2762:        fmovem.l fpiar,a0
                   2763: @@:
                   2764:        RESTORE_FLINE_TRAP
                   2765:        tst.l   d7
                   2766:        beq     @f
                   2767:        PRINT   msg_fail_trap
                   2768:        rts
                   2769: @@:
                   2770:        movea.l #$55555555,a1
                   2771:        cmp.l   a1,a0
                   2772:        beq     @f
                   2773:        pea.l   msg_fail(pc)
                   2774:        move.l  a1,-(sp)
                   2775:        move.l  a0,-(sp)
                   2776:        bsr     result
                   2777:        lea.l   12(sp),sp
                   2778: @@:
                   2779:        tst.l   d7
                   2780:        bne     @f
                   2781:        PRINT   msg_ok
                   2782: @@:
                   2783:        rts
                   2784: 
                   2785: test_fmovem___I_to_anin:
                   2786:        PRINT   msg_fmovem___I_to_anin
                   2787:        fmove.l #$00000000,fpcr
                   2788:        fmove.l #$00000000,fpsr
                   2789:        fmove.l #$55555555,fpiar
                   2790:        lea.l   workarea(pc),a0
                   2791:        SET_FLINE_TRAP
                   2792:        moveq.l #0,d7
                   2793:        lea.l   @f,a3
                   2794:        fmovem.l fpiar,(a0)
                   2795: @@:
                   2796:        RESTORE_FLINE_TRAP
                   2797:        tst.l   d7
                   2798:        beq     @f
                   2799:        PRINT   msg_fail_trap
                   2800:        rts
                   2801: @@:
                   2802:        lea.l   workarea(pc),a1
                   2803:        cmpa.l  a1,a0
                   2804:        beq     @f
                   2805:        pea.l   msg_fail_addr(pc)
                   2806:        move.l  a1,-(sp)
                   2807:        move.l  a0,-(sp)
                   2808:        bsr     result
                   2809:        lea.l   12(sp),sp
                   2810: @@:
                   2811:        move.l  #$55555555,d1
                   2812:        cmp.l   workarea+0,d1
                   2813:        beq     @f
                   2814:        pea.l   msg_fail(pc)
                   2815:        move.l  d1,-(sp)
                   2816:        move.l  workarea+4,-(sp)
                   2817:        bsr     result
                   2818:        lea.l   12(sp),sp
                   2819: @@:
                   2820:        tst.l   d7
                   2821:        bne     @f
                   2822:        PRINT   msg_ok
                   2823: @@:
                   2824:        rts
                   2825: 
                   2826: test_fmovem___I_to_anpi:
                   2827:        PRINT   msg_fmovem___I_to_anpi
                   2828:        fmove.l #$00000000,fpcr
                   2829:        fmove.l #$00000000,fpsr
                   2830:        fmove.l #$55555555,fpiar
                   2831:        lea.l   workarea(pc),a0
                   2832:        SET_FLINE_TRAP
                   2833:        moveq.l #0,d7
                   2834:        lea.l   @f,a3
                   2835:        fmovem.l fpiar,(a0)+
                   2836: @@:
                   2837:        RESTORE_FLINE_TRAP
                   2838:        tst.l   d7
                   2839:        beq     @f
                   2840:        PRINT   msg_fail_trap
                   2841:        rts
                   2842: @@:
                   2843:        lea.l workarea+4(pc),a1
                   2844:        cmpa.l  a1,a0
                   2845:        beq     @f
                   2846:        pea.l   msg_fail_addr(pc)
                   2847:        move.l  a1,-(sp)
                   2848:        move.l  a0,-(sp)
                   2849:        bsr     result
                   2850:        lea.l   12(sp),sp
                   2851: @@:
                   2852:        move.l  #$55555555,d1
                   2853:        cmp.l   workarea+0,d1
                   2854:        beq     @f
                   2855:        pea.l   msg_fail(pc)
                   2856:        move.l  d1,-(sp)
                   2857:        move.l  workarea+4,-(sp)
                   2858:        bsr     result
                   2859:        lea.l   12(sp),sp
                   2860: @@:
                   2861:        tst.l   d7
                   2862:        bne     @f
                   2863:        PRINT   msg_ok
                   2864: @@:
                   2865:        rts
                   2866: 
                   2867: test_fmovem___I_to_anpd:
                   2868:        PRINT   msg_fmovem___I_to_anpd
                   2869:        fmove.l #$00000000,fpcr
                   2870:        fmove.l #$00000000,fpsr
                   2871:        fmove.l #$55555555,fpiar
                   2872:        lea.l   workarea+4(pc),a0
                   2873:        SET_FLINE_TRAP
                   2874:        moveq.l #0,d7
                   2875:        lea.l   @f,a3
                   2876:        fmovem.l fpiar,-(a0)
                   2877: @@:
                   2878:        RESTORE_FLINE_TRAP
                   2879:        tst.l   d7
                   2880:        beq     @f
                   2881:        PRINT   msg_fail_trap
                   2882:        rts
                   2883: @@:
                   2884:        lea.l   workarea(pc),a1
                   2885:        cmpa.l  a1,a0
                   2886:        beq     @f
                   2887:        pea.l   msg_fail_addr(pc)
                   2888:        move.l  a1,-(sp)
                   2889:        move.l  a0,-(sp)
                   2890:        bsr     result
                   2891:        lea.l   12(sp),sp
                   2892: @@:
                   2893:        move.l  #$55555555,d1
                   2894:        cmp.l   workarea+0,d1
                   2895:        beq     @f
                   2896:        pea.l   msg_fail(pc)
                   2897:        move.l  d1,-(sp)
                   2898:        move.l  workarea+4,-(sp)
                   2899:        bsr     result
                   2900:        lea.l   12(sp),sp
                   2901: @@:
                   2902:        tst.l   d7
                   2903:        bne     @f
                   2904:        PRINT   msg_ok
                   2905: @@:
                   2906:        rts
                   2907: 
                   2908: test_fmovem___I_to_imm:
1.1.1.3 ! root     2909:        tst.b   is_hard(pc)
        !          2910:        bne             @f
        !          2911:        rts
        !          2912: @@:
1.1       root     2913:        PRINT   msg_fmovem___I_to_imm
                   2914:        SET_FLINE_TRAP
                   2915:        moveq.l #0,d7
                   2916:        lea.l   @f,a3
                   2917:        .dc.w   $f23c, $a400
                   2918: @@:
                   2919:        RESTORE_FLINE_TRAP
                   2920:        tst.l   d7
                   2921:        bne     @f
                   2922:        PRINT   msg_fail_notrap
                   2923:        rts
                   2924: @@:
                   2925:        PRINT   msg_oktrap
                   2926:        rts
                   2927: 
                   2928: test_fmovem__S__to_dn:
                   2929:        PRINT   msg_fmovem__S__to_dn
                   2930:        fmove.l #$00000000,fpcr
                   2931:        fmove.l #$55555555,fpsr
                   2932:        fmove.l #$00000000,fpiar
                   2933:        SET_FLINE_TRAP
                   2934:        moveq.l #0,d7
                   2935:        lea.l   @f,a3
                   2936:        fmovem.l fpsr,d0
                   2937: @@:
                   2938:        RESTORE_FLINE_TRAP
                   2939:        tst.l   d7
                   2940:        beq     @f
                   2941:        PRINT   msg_fail_trap
                   2942:        rts
                   2943: @@:
                   2944:        move.l  #$05555550,d1
                   2945:        cmp.l   d1,d0
                   2946:        beq     @f
                   2947:        pea.l   msg_fail(pc)
                   2948:        move.l  d1,-(sp)
                   2949:        move.l  d0,-(sp)
                   2950:        bsr     result
                   2951:        lea.l   12(sp),sp
                   2952: @@:
                   2953:        tst.l   d7
                   2954:        bne     @f
                   2955:        PRINT   msg_ok
                   2956: @@:
                   2957:        rts
                   2958: 
                   2959: test_fmovem__S__to_an:
1.1.1.3 ! root     2960:        tst.b   is_hard(pc)
        !          2961:        bne             @f
        !          2962:        rts
        !          2963: @@:
1.1       root     2964:        PRINT   msg_fmovem__S__to_an
                   2965:        SET_FLINE_TRAP
                   2966:        moveq.l #0,d7
                   2967:        lea.l   @f,a3
                   2968:        .dc.w   $f208, $a800
                   2969: @@:
                   2970:        RESTORE_FLINE_TRAP
                   2971:        tst.l   d7
                   2972:        bne     @f
                   2973:        PRINT   msg_fail_notrap
                   2974:        rts
                   2975: @@:
                   2976:        PRINT   msg_oktrap
                   2977:        rts
                   2978: 
                   2979: test_fmovem__S__to_anin:
                   2980:        PRINT   msg_fmovem__S__to_anin
                   2981:        fmove.l #$00000000,fpcr
                   2982:        fmove.l #$55555555,fpsr
                   2983:        fmove.l #$00000000,fpiar
                   2984:        lea.l   workarea(pc),a0
                   2985:        SET_FLINE_TRAP
                   2986:        moveq.l #0,d7
                   2987:        lea.l   @f,a3
                   2988:        fmovem.l fpsr,(a0)
                   2989: @@:
                   2990:        RESTORE_FLINE_TRAP
                   2991:        tst.l   d7
                   2992:        beq     @f
                   2993:        PRINT   msg_fail_trap
                   2994:        rts
                   2995: @@:
                   2996:        lea.l   workarea(pc),a1
                   2997:        cmpa.l  a1,a0
                   2998:        beq     @f
                   2999:        pea.l   msg_fail_addr(pc)
                   3000:        move.l  a1,-(sp)
                   3001:        move.l  a0,-(sp)
                   3002:        bsr     result
                   3003:        lea.l   12(sp),sp
                   3004: @@:
                   3005:        move.l  #$05555550,d1
                   3006:        cmp.l   workarea+0,d1
                   3007:        beq     @f
                   3008:        pea.l   msg_fail(pc)
                   3009:        move.l  d1,-(sp)
                   3010:        move.l  workarea+4,-(sp)
                   3011:        bsr     result
                   3012:        lea.l   12(sp),sp
                   3013: @@:
                   3014:        tst.l   d7
                   3015:        bne     @f
                   3016:        PRINT   msg_ok
                   3017: @@:
                   3018:        rts
                   3019: 
                   3020: test_fmovem__S__to_anpi:
                   3021:        PRINT   msg_fmovem__S__to_anpi
                   3022:        fmove.l #$00000000,fpcr
                   3023:        fmove.l #$55555555,fpsr
                   3024:        fmove.l #$00000000,fpiar
                   3025:        lea.l   workarea(pc),a0
                   3026:        SET_FLINE_TRAP
                   3027:        moveq.l #0,d7
                   3028:        lea.l   @f,a3
                   3029:        fmovem.l fpsr,(a0)+
                   3030: @@:
                   3031:        RESTORE_FLINE_TRAP
                   3032:        tst.l   d7
                   3033:        beq     @f
                   3034:        PRINT   msg_fail_trap
                   3035:        rts
                   3036: @@:
                   3037:        lea.l workarea+4(pc),a1
                   3038:        cmpa.l  a1,a0
                   3039:        beq     @f
                   3040:        pea.l   msg_fail_addr(pc)
                   3041:        move.l  a1,-(sp)
                   3042:        move.l  a0,-(sp)
                   3043:        bsr     result
                   3044:        lea.l   12(sp),sp
                   3045: @@:
                   3046:        move.l  #$05555550,d1
                   3047:        cmp.l   workarea+0,d1
                   3048:        beq     @f
                   3049:        pea.l   msg_fail(pc)
                   3050:        move.l  d1,-(sp)
                   3051:        move.l  workarea+4,-(sp)
                   3052:        bsr     result
                   3053:        lea.l   12(sp),sp
                   3054: @@:
                   3055:        tst.l   d7
                   3056:        bne     @f
                   3057:        PRINT   msg_ok
                   3058: @@:
                   3059:        rts
                   3060: 
                   3061: test_fmovem__S__to_anpd:
                   3062:        PRINT   msg_fmovem__S__to_anpd
                   3063:        fmove.l #$00000000,fpcr
                   3064:        fmove.l #$55555555,fpsr
                   3065:        fmove.l #$00000000,fpiar
                   3066:        lea.l   workarea+4(pc),a0
                   3067:        SET_FLINE_TRAP
                   3068:        moveq.l #0,d7
                   3069:        lea.l   @f,a3
                   3070:        fmovem.l fpsr,-(a0)
                   3071: @@:
                   3072:        RESTORE_FLINE_TRAP
                   3073:        tst.l   d7
                   3074:        beq     @f
                   3075:        PRINT   msg_fail_trap
                   3076:        rts
                   3077: @@:
                   3078:        lea.l   workarea(pc),a1
                   3079:        cmpa.l  a1,a0
                   3080:        beq     @f
                   3081:        pea.l   msg_fail_addr(pc)
                   3082:        move.l  a1,-(sp)
                   3083:        move.l  a0,-(sp)
                   3084:        bsr     result
                   3085:        lea.l   12(sp),sp
                   3086: @@:
                   3087:        move.l  #$05555550,d1
                   3088:        cmp.l   workarea+0,d1
                   3089:        beq     @f
                   3090:        pea.l   msg_fail(pc)
                   3091:        move.l  d1,-(sp)
                   3092:        move.l  workarea+4,-(sp)
                   3093:        bsr     result
                   3094:        lea.l   12(sp),sp
                   3095: @@:
                   3096:        tst.l   d7
                   3097:        bne     @f
                   3098:        PRINT   msg_ok
                   3099: @@:
                   3100:        rts
                   3101: 
                   3102: test_fmovem__S__to_imm:
1.1.1.3 ! root     3103:        tst.b   is_hard(pc)
        !          3104:        bne             @f
        !          3105:        rts
        !          3106: @@:
1.1       root     3107:        PRINT   msg_fmovem__S__to_imm
                   3108:        SET_FLINE_TRAP
                   3109:        moveq.l #0,d7
                   3110:        lea.l   @f,a3
                   3111:        .dc.w   $f23c, $a800
                   3112: @@:
                   3113:        RESTORE_FLINE_TRAP
                   3114:        tst.l   d7
                   3115:        bne     @f
                   3116:        PRINT   msg_fail_notrap
                   3117:        rts
                   3118: @@:
                   3119:        PRINT   msg_oktrap
                   3120:        rts
                   3121: 
                   3122: test_fmovem__SI_to_dn:
1.1.1.3 ! root     3123:        tst.b   is_hard(pc)
        !          3124:        bne             @f
        !          3125:        rts
        !          3126: @@:
1.1       root     3127:        PRINT   msg_fmovem__SI_to_dn
                   3128:        SET_FLINE_TRAP
                   3129:        moveq.l #0,d7
                   3130:        lea.l   @f,a3
                   3131:        .dc.w   $f200, $ac00
                   3132: @@:
                   3133:        RESTORE_FLINE_TRAP
                   3134:        tst.l   d7
                   3135:        bne     @f
                   3136:        PRINT   msg_fail_notrap
                   3137:        rts
                   3138: @@:
                   3139:        PRINT   msg_oktrap
                   3140:        rts
                   3141: 
                   3142: test_fmovem__SI_to_an:
1.1.1.3 ! root     3143:        tst.b   is_hard(pc)
        !          3144:        bne             @f
        !          3145:        rts
        !          3146: @@:
1.1       root     3147:        PRINT   msg_fmovem__SI_to_an
                   3148:        SET_FLINE_TRAP
                   3149:        moveq.l #0,d7
                   3150:        lea.l   @f,a3
                   3151:        .dc.w   $f208, $ac00
                   3152: @@:
                   3153:        RESTORE_FLINE_TRAP
                   3154:        tst.l   d7
                   3155:        bne     @f
                   3156:        PRINT   msg_fail_notrap
                   3157:        rts
                   3158: @@:
                   3159:        PRINT   msg_oktrap
                   3160:        rts
                   3161: 
                   3162: test_fmovem__SI_to_anin:
                   3163:        PRINT   msg_fmovem__SI_to_anin
                   3164:        fmove.l #$00000000,fpcr
                   3165:        fmove.l #$55555555,fpsr
                   3166:        fmove.l #$aaaaaaaa,fpiar
                   3167:        lea.l   workarea(pc),a0
                   3168:        SET_FLINE_TRAP
                   3169:        moveq.l #0,d7
                   3170:        lea.l   @f,a3
                   3171:        fmovem.l fpsr/fpiar,(a0)
                   3172: @@:
                   3173:        RESTORE_FLINE_TRAP
                   3174:        tst.l   d7
                   3175:        beq     @f
                   3176:        PRINT   msg_fail_trap
                   3177:        rts
                   3178: @@:
                   3179:        lea.l   workarea(pc),a1
                   3180:        cmpa.l  a1,a0
                   3181:        beq     @f
                   3182:        pea.l   msg_fail_addr(pc)
                   3183:        move.l  a1,-(sp)
                   3184:        move.l  a0,-(sp)
                   3185:        bsr     result
                   3186:        lea.l   12(sp),sp
                   3187: @@:
                   3188:        move.l  #$05555550,d1
                   3189:        cmp.l   workarea+0,d1
                   3190:        beq     @f
                   3191:        pea.l   msg_fail(pc)
                   3192:        move.l  d1,-(sp)
                   3193:        move.l  workarea+4,-(sp)
                   3194:        bsr     result
                   3195:        lea.l   12(sp),sp
                   3196: @@:
                   3197:        move.l  #$aaaaaaaa,d1
                   3198:        cmp.l   workarea+4,d1
                   3199:        beq     @f
                   3200:        pea.l   msg_fail(pc)
                   3201:        move.l  d1,-(sp)
                   3202:        move.l  workarea+8,-(sp)
                   3203:        bsr     result
                   3204:        lea.l   12(sp),sp
                   3205: @@:
                   3206:        tst.l   d7
                   3207:        bne     @f
                   3208:        PRINT   msg_ok
                   3209: @@:
                   3210:        rts
                   3211: 
                   3212: test_fmovem__SI_to_anpi:
                   3213:        PRINT   msg_fmovem__SI_to_anpi
                   3214:        fmove.l #$00000000,fpcr
                   3215:        fmove.l #$55555555,fpsr
                   3216:        fmove.l #$aaaaaaaa,fpiar
                   3217:        lea.l   workarea(pc),a0
                   3218:        SET_FLINE_TRAP
                   3219:        moveq.l #0,d7
                   3220:        lea.l   @f,a3
                   3221:        fmovem.l fpsr/fpiar,(a0)+
                   3222: @@:
                   3223:        RESTORE_FLINE_TRAP
                   3224:        tst.l   d7
                   3225:        beq     @f
                   3226:        PRINT   msg_fail_trap
                   3227:        rts
                   3228: @@:
                   3229:        lea.l workarea+8(pc),a1
                   3230:        cmpa.l  a1,a0
                   3231:        beq     @f
                   3232:        pea.l   msg_fail_addr(pc)
                   3233:        move.l  a1,-(sp)
                   3234:        move.l  a0,-(sp)
                   3235:        bsr     result
                   3236:        lea.l   12(sp),sp
                   3237: @@:
                   3238:        move.l  #$05555550,d1
                   3239:        cmp.l   workarea+0,d1
                   3240:        beq     @f
                   3241:        pea.l   msg_fail(pc)
                   3242:        move.l  d1,-(sp)
                   3243:        move.l  workarea+4,-(sp)
                   3244:        bsr     result
                   3245:        lea.l   12(sp),sp
                   3246: @@:
                   3247:        move.l  #$aaaaaaaa,d1
                   3248:        cmp.l   workarea+4,d1
                   3249:        beq     @f
                   3250:        pea.l   msg_fail(pc)
                   3251:        move.l  d1,-(sp)
                   3252:        move.l  workarea+8,-(sp)
                   3253:        bsr     result
                   3254:        lea.l   12(sp),sp
                   3255: @@:
                   3256:        tst.l   d7
                   3257:        bne     @f
                   3258:        PRINT   msg_ok
                   3259: @@:
                   3260:        rts
                   3261: 
                   3262: test_fmovem__SI_to_anpd:
                   3263:        PRINT   msg_fmovem__SI_to_anpd
                   3264:        fmove.l #$00000000,fpcr
                   3265:        fmove.l #$55555555,fpsr
                   3266:        fmove.l #$aaaaaaaa,fpiar
                   3267:        lea.l   workarea+8(pc),a0
                   3268:        SET_FLINE_TRAP
                   3269:        moveq.l #0,d7
                   3270:        lea.l   @f,a3
                   3271:        fmovem.l fpsr/fpiar,-(a0)
                   3272: @@:
                   3273:        RESTORE_FLINE_TRAP
                   3274:        tst.l   d7
                   3275:        beq     @f
                   3276:        PRINT   msg_fail_trap
                   3277:        rts
                   3278: @@:
                   3279:        lea.l   workarea(pc),a1
                   3280:        cmpa.l  a1,a0
                   3281:        beq     @f
                   3282:        pea.l   msg_fail_addr(pc)
                   3283:        move.l  a1,-(sp)
                   3284:        move.l  a0,-(sp)
                   3285:        bsr     result
                   3286:        lea.l   12(sp),sp
                   3287: @@:
                   3288:        move.l  #$05555550,d1
                   3289:        cmp.l   workarea+0,d1
                   3290:        beq     @f
                   3291:        pea.l   msg_fail(pc)
                   3292:        move.l  d1,-(sp)
                   3293:        move.l  workarea+4,-(sp)
                   3294:        bsr     result
                   3295:        lea.l   12(sp),sp
                   3296: @@:
                   3297:        move.l  #$aaaaaaaa,d1
                   3298:        cmp.l   workarea+4,d1
                   3299:        beq     @f
                   3300:        pea.l   msg_fail(pc)
                   3301:        move.l  d1,-(sp)
                   3302:        move.l  workarea+8,-(sp)
                   3303:        bsr     result
                   3304:        lea.l   12(sp),sp
                   3305: @@:
                   3306:        tst.l   d7
                   3307:        bne     @f
                   3308:        PRINT   msg_ok
                   3309: @@:
                   3310:        rts
                   3311: 
                   3312: test_fmovem__SI_to_imm:
1.1.1.3 ! root     3313:        tst.b   is_hard(pc)
        !          3314:        bne             @f
        !          3315:        rts
        !          3316: @@:
1.1       root     3317:        PRINT   msg_fmovem__SI_to_imm
                   3318:        SET_FLINE_TRAP
                   3319:        moveq.l #0,d7
                   3320:        lea.l   @f,a3
                   3321:        .dc.w   $f23c, $ac00
                   3322: @@:
                   3323:        RESTORE_FLINE_TRAP
                   3324:        tst.l   d7
                   3325:        bne     @f
                   3326:        PRINT   msg_fail_notrap
                   3327:        rts
                   3328: @@:
                   3329:        PRINT   msg_oktrap
                   3330:        rts
                   3331: 
                   3332: test_fmovem_C___to_dn:
                   3333:        PRINT   msg_fmovem_C___to_dn
                   3334:        fmove.l #$55555555,fpcr
                   3335:        fmove.l #$00000000,fpsr
                   3336:        fmove.l #$00000000,fpiar
                   3337:        SET_FLINE_TRAP
                   3338:        moveq.l #0,d7
                   3339:        lea.l   @f,a3
                   3340:        fmovem.l fpcr,d0
                   3341: @@:
                   3342:        RESTORE_FLINE_TRAP
                   3343:        tst.l   d7
                   3344:        beq     @f
                   3345:        PRINT   msg_fail_trap
                   3346:        rts
                   3347: @@:
                   3348:        move.l  #$00005550,d1
                   3349:        cmp.l   d1,d0
                   3350:        beq     @f
                   3351:        pea.l   msg_fail(pc)
                   3352:        move.l  d1,-(sp)
                   3353:        move.l  d0,-(sp)
                   3354:        bsr     result
                   3355:        lea.l   12(sp),sp
                   3356: @@:
                   3357:        tst.l   d7
                   3358:        bne     @f
                   3359:        PRINT   msg_ok
                   3360: @@:
                   3361:        rts
                   3362: 
                   3363: test_fmovem_C___to_an:
1.1.1.3 ! root     3364:        tst.b   is_hard(pc)
        !          3365:        bne             @f
        !          3366:        rts
        !          3367: @@:
1.1       root     3368:        PRINT   msg_fmovem_C___to_an
                   3369:        SET_FLINE_TRAP
                   3370:        moveq.l #0,d7
                   3371:        lea.l   @f,a3
                   3372:        .dc.w   $f208, $b000
                   3373: @@:
                   3374:        RESTORE_FLINE_TRAP
                   3375:        tst.l   d7
                   3376:        bne     @f
                   3377:        PRINT   msg_fail_notrap
                   3378:        rts
                   3379: @@:
                   3380:        PRINT   msg_oktrap
                   3381:        rts
                   3382: 
                   3383: test_fmovem_C___to_anin:
                   3384:        PRINT   msg_fmovem_C___to_anin
                   3385:        fmove.l #$55555555,fpcr
                   3386:        fmove.l #$00000000,fpsr
                   3387:        fmove.l #$00000000,fpiar
                   3388:        lea.l   workarea(pc),a0
                   3389:        SET_FLINE_TRAP
                   3390:        moveq.l #0,d7
                   3391:        lea.l   @f,a3
                   3392:        fmovem.l fpcr,(a0)
                   3393: @@:
                   3394:        RESTORE_FLINE_TRAP
                   3395:        tst.l   d7
                   3396:        beq     @f
                   3397:        PRINT   msg_fail_trap
                   3398:        rts
                   3399: @@:
                   3400:        lea.l   workarea(pc),a1
                   3401:        cmpa.l  a1,a0
                   3402:        beq     @f
                   3403:        pea.l   msg_fail_addr(pc)
                   3404:        move.l  a1,-(sp)
                   3405:        move.l  a0,-(sp)
                   3406:        bsr     result
                   3407:        lea.l   12(sp),sp
                   3408: @@:
                   3409:        move.l  #$00005550,d1
                   3410:        cmp.l   workarea+0,d1
                   3411:        beq     @f
                   3412:        pea.l   msg_fail(pc)
                   3413:        move.l  d1,-(sp)
                   3414:        move.l  workarea+4,-(sp)
                   3415:        bsr     result
                   3416:        lea.l   12(sp),sp
                   3417: @@:
                   3418:        tst.l   d7
                   3419:        bne     @f
                   3420:        PRINT   msg_ok
                   3421: @@:
                   3422:        rts
                   3423: 
                   3424: test_fmovem_C___to_anpi:
                   3425:        PRINT   msg_fmovem_C___to_anpi
                   3426:        fmove.l #$55555555,fpcr
                   3427:        fmove.l #$00000000,fpsr
                   3428:        fmove.l #$00000000,fpiar
                   3429:        lea.l   workarea(pc),a0
                   3430:        SET_FLINE_TRAP
                   3431:        moveq.l #0,d7
                   3432:        lea.l   @f,a3
                   3433:        fmovem.l fpcr,(a0)+
                   3434: @@:
                   3435:        RESTORE_FLINE_TRAP
                   3436:        tst.l   d7
                   3437:        beq     @f
                   3438:        PRINT   msg_fail_trap
                   3439:        rts
                   3440: @@:
                   3441:        lea.l workarea+4(pc),a1
                   3442:        cmpa.l  a1,a0
                   3443:        beq     @f
                   3444:        pea.l   msg_fail_addr(pc)
                   3445:        move.l  a1,-(sp)
                   3446:        move.l  a0,-(sp)
                   3447:        bsr     result
                   3448:        lea.l   12(sp),sp
                   3449: @@:
                   3450:        move.l  #$00005550,d1
                   3451:        cmp.l   workarea+0,d1
                   3452:        beq     @f
                   3453:        pea.l   msg_fail(pc)
                   3454:        move.l  d1,-(sp)
                   3455:        move.l  workarea+4,-(sp)
                   3456:        bsr     result
                   3457:        lea.l   12(sp),sp
                   3458: @@:
                   3459:        tst.l   d7
                   3460:        bne     @f
                   3461:        PRINT   msg_ok
                   3462: @@:
                   3463:        rts
                   3464: 
                   3465: test_fmovem_C___to_anpd:
                   3466:        PRINT   msg_fmovem_C___to_anpd
                   3467:        fmove.l #$55555555,fpcr
                   3468:        fmove.l #$00000000,fpsr
                   3469:        fmove.l #$00000000,fpiar
                   3470:        lea.l   workarea+4(pc),a0
                   3471:        SET_FLINE_TRAP
                   3472:        moveq.l #0,d7
                   3473:        lea.l   @f,a3
                   3474:        fmovem.l fpcr,-(a0)
                   3475: @@:
                   3476:        RESTORE_FLINE_TRAP
                   3477:        tst.l   d7
                   3478:        beq     @f
                   3479:        PRINT   msg_fail_trap
                   3480:        rts
                   3481: @@:
                   3482:        lea.l   workarea(pc),a1
                   3483:        cmpa.l  a1,a0
                   3484:        beq     @f
                   3485:        pea.l   msg_fail_addr(pc)
                   3486:        move.l  a1,-(sp)
                   3487:        move.l  a0,-(sp)
                   3488:        bsr     result
                   3489:        lea.l   12(sp),sp
                   3490: @@:
                   3491:        move.l  #$00005550,d1
                   3492:        cmp.l   workarea+0,d1
                   3493:        beq     @f
                   3494:        pea.l   msg_fail(pc)
                   3495:        move.l  d1,-(sp)
                   3496:        move.l  workarea+4,-(sp)
                   3497:        bsr     result
                   3498:        lea.l   12(sp),sp
                   3499: @@:
                   3500:        tst.l   d7
                   3501:        bne     @f
                   3502:        PRINT   msg_ok
                   3503: @@:
                   3504:        rts
                   3505: 
                   3506: test_fmovem_C___to_imm:
1.1.1.3 ! root     3507:        tst.b   is_hard(pc)
        !          3508:        bne             @f
        !          3509:        rts
        !          3510: @@:
1.1       root     3511:        PRINT   msg_fmovem_C___to_imm
                   3512:        SET_FLINE_TRAP
                   3513:        moveq.l #0,d7
                   3514:        lea.l   @f,a3
                   3515:        .dc.w   $f23c, $b000
                   3516: @@:
                   3517:        RESTORE_FLINE_TRAP
                   3518:        tst.l   d7
                   3519:        bne     @f
                   3520:        PRINT   msg_fail_notrap
                   3521:        rts
                   3522: @@:
                   3523:        PRINT   msg_oktrap
                   3524:        rts
                   3525: 
                   3526: test_fmovem_C_I_to_dn:
1.1.1.3 ! root     3527:        tst.b   is_hard(pc)
        !          3528:        bne             @f
        !          3529:        rts
        !          3530: @@:
1.1       root     3531:        PRINT   msg_fmovem_C_I_to_dn
                   3532:        SET_FLINE_TRAP
                   3533:        moveq.l #0,d7
                   3534:        lea.l   @f,a3
                   3535:        .dc.w   $f200, $b400
                   3536: @@:
                   3537:        RESTORE_FLINE_TRAP
                   3538:        tst.l   d7
                   3539:        bne     @f
                   3540:        PRINT   msg_fail_notrap
                   3541:        rts
                   3542: @@:
                   3543:        PRINT   msg_oktrap
                   3544:        rts
                   3545: 
                   3546: test_fmovem_C_I_to_an:
1.1.1.3 ! root     3547:        tst.b   is_hard(pc)
        !          3548:        bne             @f
        !          3549:        rts
        !          3550: @@:
1.1       root     3551:        PRINT   msg_fmovem_C_I_to_an
                   3552:        SET_FLINE_TRAP
                   3553:        moveq.l #0,d7
                   3554:        lea.l   @f,a3
                   3555:        .dc.w   $f208, $b400
                   3556: @@:
                   3557:        RESTORE_FLINE_TRAP
                   3558:        tst.l   d7
                   3559:        bne     @f
                   3560:        PRINT   msg_fail_notrap
                   3561:        rts
                   3562: @@:
                   3563:        PRINT   msg_oktrap
                   3564:        rts
                   3565: 
                   3566: test_fmovem_C_I_to_anin:
                   3567:        PRINT   msg_fmovem_C_I_to_anin
                   3568:        fmove.l #$55555555,fpcr
                   3569:        fmove.l #$00000000,fpsr
                   3570:        fmove.l #$aaaaaaaa,fpiar
                   3571:        lea.l   workarea(pc),a0
                   3572:        SET_FLINE_TRAP
                   3573:        moveq.l #0,d7
                   3574:        lea.l   @f,a3
                   3575:        fmovem.l fpcr/fpiar,(a0)
                   3576: @@:
                   3577:        RESTORE_FLINE_TRAP
                   3578:        tst.l   d7
                   3579:        beq     @f
                   3580:        PRINT   msg_fail_trap
                   3581:        rts
                   3582: @@:
                   3583:        lea.l   workarea(pc),a1
                   3584:        cmpa.l  a1,a0
                   3585:        beq     @f
                   3586:        pea.l   msg_fail_addr(pc)
                   3587:        move.l  a1,-(sp)
                   3588:        move.l  a0,-(sp)
                   3589:        bsr     result
                   3590:        lea.l   12(sp),sp
                   3591: @@:
                   3592:        move.l  #$00005550,d1
                   3593:        cmp.l   workarea+0,d1
                   3594:        beq     @f
                   3595:        pea.l   msg_fail(pc)
                   3596:        move.l  d1,-(sp)
                   3597:        move.l  workarea+4,-(sp)
                   3598:        bsr     result
                   3599:        lea.l   12(sp),sp
                   3600: @@:
                   3601:        move.l  #$aaaaaaaa,d1
                   3602:        cmp.l   workarea+4,d1
                   3603:        beq     @f
                   3604:        pea.l   msg_fail(pc)
                   3605:        move.l  d1,-(sp)
                   3606:        move.l  workarea+8,-(sp)
                   3607:        bsr     result
                   3608:        lea.l   12(sp),sp
                   3609: @@:
                   3610:        tst.l   d7
                   3611:        bne     @f
                   3612:        PRINT   msg_ok
                   3613: @@:
                   3614:        rts
                   3615: 
                   3616: test_fmovem_C_I_to_anpi:
                   3617:        PRINT   msg_fmovem_C_I_to_anpi
                   3618:        fmove.l #$55555555,fpcr
                   3619:        fmove.l #$00000000,fpsr
                   3620:        fmove.l #$aaaaaaaa,fpiar
                   3621:        lea.l   workarea(pc),a0
                   3622:        SET_FLINE_TRAP
                   3623:        moveq.l #0,d7
                   3624:        lea.l   @f,a3
                   3625:        fmovem.l fpcr/fpiar,(a0)+
                   3626: @@:
                   3627:        RESTORE_FLINE_TRAP
                   3628:        tst.l   d7
                   3629:        beq     @f
                   3630:        PRINT   msg_fail_trap
                   3631:        rts
                   3632: @@:
                   3633:        lea.l workarea+8(pc),a1
                   3634:        cmpa.l  a1,a0
                   3635:        beq     @f
                   3636:        pea.l   msg_fail_addr(pc)
                   3637:        move.l  a1,-(sp)
                   3638:        move.l  a0,-(sp)
                   3639:        bsr     result
                   3640:        lea.l   12(sp),sp
                   3641: @@:
                   3642:        move.l  #$00005550,d1
                   3643:        cmp.l   workarea+0,d1
                   3644:        beq     @f
                   3645:        pea.l   msg_fail(pc)
                   3646:        move.l  d1,-(sp)
                   3647:        move.l  workarea+4,-(sp)
                   3648:        bsr     result
                   3649:        lea.l   12(sp),sp
                   3650: @@:
                   3651:        move.l  #$aaaaaaaa,d1
                   3652:        cmp.l   workarea+4,d1
                   3653:        beq     @f
                   3654:        pea.l   msg_fail(pc)
                   3655:        move.l  d1,-(sp)
                   3656:        move.l  workarea+8,-(sp)
                   3657:        bsr     result
                   3658:        lea.l   12(sp),sp
                   3659: @@:
                   3660:        tst.l   d7
                   3661:        bne     @f
                   3662:        PRINT   msg_ok
                   3663: @@:
                   3664:        rts
                   3665: 
                   3666: test_fmovem_C_I_to_anpd:
                   3667:        PRINT   msg_fmovem_C_I_to_anpd
                   3668:        fmove.l #$55555555,fpcr
                   3669:        fmove.l #$00000000,fpsr
                   3670:        fmove.l #$aaaaaaaa,fpiar
                   3671:        lea.l   workarea+8(pc),a0
                   3672:        SET_FLINE_TRAP
                   3673:        moveq.l #0,d7
                   3674:        lea.l   @f,a3
                   3675:        fmovem.l fpcr/fpiar,-(a0)
                   3676: @@:
                   3677:        RESTORE_FLINE_TRAP
                   3678:        tst.l   d7
                   3679:        beq     @f
                   3680:        PRINT   msg_fail_trap
                   3681:        rts
                   3682: @@:
                   3683:        lea.l   workarea(pc),a1
                   3684:        cmpa.l  a1,a0
                   3685:        beq     @f
                   3686:        pea.l   msg_fail_addr(pc)
                   3687:        move.l  a1,-(sp)
                   3688:        move.l  a0,-(sp)
                   3689:        bsr     result
                   3690:        lea.l   12(sp),sp
                   3691: @@:
                   3692:        move.l  #$00005550,d1
                   3693:        cmp.l   workarea+0,d1
                   3694:        beq     @f
                   3695:        pea.l   msg_fail(pc)
                   3696:        move.l  d1,-(sp)
                   3697:        move.l  workarea+4,-(sp)
                   3698:        bsr     result
                   3699:        lea.l   12(sp),sp
                   3700: @@:
                   3701:        move.l  #$aaaaaaaa,d1
                   3702:        cmp.l   workarea+4,d1
                   3703:        beq     @f
                   3704:        pea.l   msg_fail(pc)
                   3705:        move.l  d1,-(sp)
                   3706:        move.l  workarea+8,-(sp)
                   3707:        bsr     result
                   3708:        lea.l   12(sp),sp
                   3709: @@:
                   3710:        tst.l   d7
                   3711:        bne     @f
                   3712:        PRINT   msg_ok
                   3713: @@:
                   3714:        rts
                   3715: 
                   3716: test_fmovem_C_I_to_imm:
1.1.1.3 ! root     3717:        tst.b   is_hard(pc)
        !          3718:        bne             @f
        !          3719:        rts
        !          3720: @@:
1.1       root     3721:        PRINT   msg_fmovem_C_I_to_imm
                   3722:        SET_FLINE_TRAP
                   3723:        moveq.l #0,d7
                   3724:        lea.l   @f,a3
                   3725:        .dc.w   $f23c, $b400
                   3726: @@:
                   3727:        RESTORE_FLINE_TRAP
                   3728:        tst.l   d7
                   3729:        bne     @f
                   3730:        PRINT   msg_fail_notrap
                   3731:        rts
                   3732: @@:
                   3733:        PRINT   msg_oktrap
                   3734:        rts
                   3735: 
                   3736: test_fmovem_CS__to_dn:
1.1.1.3 ! root     3737:        tst.b   is_hard(pc)
        !          3738:        bne             @f
        !          3739:        rts
        !          3740: @@:
1.1       root     3741:        PRINT   msg_fmovem_CS__to_dn
                   3742:        SET_FLINE_TRAP
                   3743:        moveq.l #0,d7
                   3744:        lea.l   @f,a3
                   3745:        .dc.w   $f200, $b800
                   3746: @@:
                   3747:        RESTORE_FLINE_TRAP
                   3748:        tst.l   d7
                   3749:        bne     @f
                   3750:        PRINT   msg_fail_notrap
                   3751:        rts
                   3752: @@:
                   3753:        PRINT   msg_oktrap
                   3754:        rts
                   3755: 
                   3756: test_fmovem_CS__to_an:
1.1.1.3 ! root     3757:        tst.b   is_hard(pc)
        !          3758:        bne             @f
        !          3759:        rts
        !          3760: @@:
1.1       root     3761:        PRINT   msg_fmovem_CS__to_an
                   3762:        SET_FLINE_TRAP
                   3763:        moveq.l #0,d7
                   3764:        lea.l   @f,a3
                   3765:        .dc.w   $f208, $b800
                   3766: @@:
                   3767:        RESTORE_FLINE_TRAP
                   3768:        tst.l   d7
                   3769:        bne     @f
                   3770:        PRINT   msg_fail_notrap
                   3771:        rts
                   3772: @@:
                   3773:        PRINT   msg_oktrap
                   3774:        rts
                   3775: 
                   3776: test_fmovem_CS__to_anin:
                   3777:        PRINT   msg_fmovem_CS__to_anin
                   3778:        fmove.l #$55555555,fpcr
                   3779:        fmove.l #$aaaaaaaa,fpsr
                   3780:        fmove.l #$00000000,fpiar
                   3781:        lea.l   workarea(pc),a0
                   3782:        SET_FLINE_TRAP
                   3783:        moveq.l #0,d7
                   3784:        lea.l   @f,a3
                   3785:        fmovem.l fpcr/fpsr,(a0)
                   3786: @@:
                   3787:        RESTORE_FLINE_TRAP
                   3788:        tst.l   d7
                   3789:        beq     @f
                   3790:        PRINT   msg_fail_trap
                   3791:        rts
                   3792: @@:
                   3793:        lea.l   workarea(pc),a1
                   3794:        cmpa.l  a1,a0
                   3795:        beq     @f
                   3796:        pea.l   msg_fail_addr(pc)
                   3797:        move.l  a1,-(sp)
                   3798:        move.l  a0,-(sp)
                   3799:        bsr     result
                   3800:        lea.l   12(sp),sp
                   3801: @@:
                   3802:        move.l  #$00005550,d1
                   3803:        cmp.l   workarea+0,d1
                   3804:        beq     @f
                   3805:        pea.l   msg_fail(pc)
                   3806:        move.l  d1,-(sp)
                   3807:        move.l  workarea+4,-(sp)
                   3808:        bsr     result
                   3809:        lea.l   12(sp),sp
                   3810: @@:
                   3811:        move.l  #$0aaaaaa8,d1
                   3812:        cmp.l   workarea+4,d1
                   3813:        beq     @f
                   3814:        pea.l   msg_fail(pc)
                   3815:        move.l  d1,-(sp)
                   3816:        move.l  workarea+8,-(sp)
                   3817:        bsr     result
                   3818:        lea.l   12(sp),sp
                   3819: @@:
                   3820:        tst.l   d7
                   3821:        bne     @f
                   3822:        PRINT   msg_ok
                   3823: @@:
                   3824:        rts
                   3825: 
                   3826: test_fmovem_CS__to_anpi:
                   3827:        PRINT   msg_fmovem_CS__to_anpi
                   3828:        fmove.l #$55555555,fpcr
                   3829:        fmove.l #$aaaaaaaa,fpsr
                   3830:        fmove.l #$00000000,fpiar
                   3831:        lea.l   workarea(pc),a0
                   3832:        SET_FLINE_TRAP
                   3833:        moveq.l #0,d7
                   3834:        lea.l   @f,a3
                   3835:        fmovem.l fpcr/fpsr,(a0)+
                   3836: @@:
                   3837:        RESTORE_FLINE_TRAP
                   3838:        tst.l   d7
                   3839:        beq     @f
                   3840:        PRINT   msg_fail_trap
                   3841:        rts
                   3842: @@:
                   3843:        lea.l workarea+8(pc),a1
                   3844:        cmpa.l  a1,a0
                   3845:        beq     @f
                   3846:        pea.l   msg_fail_addr(pc)
                   3847:        move.l  a1,-(sp)
                   3848:        move.l  a0,-(sp)
                   3849:        bsr     result
                   3850:        lea.l   12(sp),sp
                   3851: @@:
                   3852:        move.l  #$00005550,d1
                   3853:        cmp.l   workarea+0,d1
                   3854:        beq     @f
                   3855:        pea.l   msg_fail(pc)
                   3856:        move.l  d1,-(sp)
                   3857:        move.l  workarea+4,-(sp)
                   3858:        bsr     result
                   3859:        lea.l   12(sp),sp
                   3860: @@:
                   3861:        move.l  #$0aaaaaa8,d1
                   3862:        cmp.l   workarea+4,d1
                   3863:        beq     @f
                   3864:        pea.l   msg_fail(pc)
                   3865:        move.l  d1,-(sp)
                   3866:        move.l  workarea+8,-(sp)
                   3867:        bsr     result
                   3868:        lea.l   12(sp),sp
                   3869: @@:
                   3870:        tst.l   d7
                   3871:        bne     @f
                   3872:        PRINT   msg_ok
                   3873: @@:
                   3874:        rts
                   3875: 
                   3876: test_fmovem_CS__to_anpd:
                   3877:        PRINT   msg_fmovem_CS__to_anpd
                   3878:        fmove.l #$55555555,fpcr
                   3879:        fmove.l #$aaaaaaaa,fpsr
                   3880:        fmove.l #$00000000,fpiar
                   3881:        lea.l   workarea+8(pc),a0
                   3882:        SET_FLINE_TRAP
                   3883:        moveq.l #0,d7
                   3884:        lea.l   @f,a3
                   3885:        fmovem.l fpcr/fpsr,-(a0)
                   3886: @@:
                   3887:        RESTORE_FLINE_TRAP
                   3888:        tst.l   d7
                   3889:        beq     @f
                   3890:        PRINT   msg_fail_trap
                   3891:        rts
                   3892: @@:
                   3893:        lea.l   workarea(pc),a1
                   3894:        cmpa.l  a1,a0
                   3895:        beq     @f
                   3896:        pea.l   msg_fail_addr(pc)
                   3897:        move.l  a1,-(sp)
                   3898:        move.l  a0,-(sp)
                   3899:        bsr     result
                   3900:        lea.l   12(sp),sp
                   3901: @@:
                   3902:        move.l  #$00005550,d1
                   3903:        cmp.l   workarea+0,d1
                   3904:        beq     @f
                   3905:        pea.l   msg_fail(pc)
                   3906:        move.l  d1,-(sp)
                   3907:        move.l  workarea+4,-(sp)
                   3908:        bsr     result
                   3909:        lea.l   12(sp),sp
                   3910: @@:
                   3911:        move.l  #$0aaaaaa8,d1
                   3912:        cmp.l   workarea+4,d1
                   3913:        beq     @f
                   3914:        pea.l   msg_fail(pc)
                   3915:        move.l  d1,-(sp)
                   3916:        move.l  workarea+8,-(sp)
                   3917:        bsr     result
                   3918:        lea.l   12(sp),sp
                   3919: @@:
                   3920:        tst.l   d7
                   3921:        bne     @f
                   3922:        PRINT   msg_ok
                   3923: @@:
                   3924:        rts
                   3925: 
                   3926: test_fmovem_CS__to_imm:
1.1.1.3 ! root     3927:        tst.b   is_hard(pc)
        !          3928:        bne             @f
        !          3929:        rts
        !          3930: @@:
1.1       root     3931:        PRINT   msg_fmovem_CS__to_imm
                   3932:        SET_FLINE_TRAP
                   3933:        moveq.l #0,d7
                   3934:        lea.l   @f,a3
                   3935:        .dc.w   $f23c, $b800
                   3936: @@:
                   3937:        RESTORE_FLINE_TRAP
                   3938:        tst.l   d7
                   3939:        bne     @f
                   3940:        PRINT   msg_fail_notrap
                   3941:        rts
                   3942: @@:
                   3943:        PRINT   msg_oktrap
                   3944:        rts
                   3945: 
                   3946: test_fmovem_CSI_to_dn:
1.1.1.3 ! root     3947:        tst.b   is_hard(pc)
        !          3948:        bne             @f
        !          3949:        rts
        !          3950: @@:
1.1       root     3951:        PRINT   msg_fmovem_CSI_to_dn
                   3952:        SET_FLINE_TRAP
                   3953:        moveq.l #0,d7
                   3954:        lea.l   @f,a3
                   3955:        .dc.w   $f200, $bc00
                   3956: @@:
                   3957:        RESTORE_FLINE_TRAP
                   3958:        tst.l   d7
                   3959:        bne     @f
                   3960:        PRINT   msg_fail_notrap
                   3961:        rts
                   3962: @@:
                   3963:        PRINT   msg_oktrap
                   3964:        rts
                   3965: 
                   3966: test_fmovem_CSI_to_an:
1.1.1.3 ! root     3967:        tst.b   is_hard(pc)
        !          3968:        bne             @f
        !          3969:        rts
        !          3970: @@:
1.1       root     3971:        PRINT   msg_fmovem_CSI_to_an
                   3972:        SET_FLINE_TRAP
                   3973:        moveq.l #0,d7
                   3974:        lea.l   @f,a3
                   3975:        .dc.w   $f208, $bc00
                   3976: @@:
                   3977:        RESTORE_FLINE_TRAP
                   3978:        tst.l   d7
                   3979:        bne     @f
                   3980:        PRINT   msg_fail_notrap
                   3981:        rts
                   3982: @@:
                   3983:        PRINT   msg_oktrap
                   3984:        rts
                   3985: 
                   3986: test_fmovem_CSI_to_anin:
                   3987:        PRINT   msg_fmovem_CSI_to_anin
                   3988:        fmove.l #$55555555,fpcr
                   3989:        fmove.l #$aaaaaaaa,fpsr
                   3990:        fmove.l #$33333333,fpiar
                   3991:        lea.l   workarea(pc),a0
                   3992:        SET_FLINE_TRAP
                   3993:        moveq.l #0,d7
                   3994:        lea.l   @f,a3
                   3995:        fmovem.l fpcr/fpsr/fpiar,(a0)
                   3996: @@:
                   3997:        RESTORE_FLINE_TRAP
                   3998:        tst.l   d7
                   3999:        beq     @f
                   4000:        PRINT   msg_fail_trap
                   4001:        rts
                   4002: @@:
                   4003:        lea.l   workarea(pc),a1
                   4004:        cmpa.l  a1,a0
                   4005:        beq     @f
                   4006:        pea.l   msg_fail_addr(pc)
                   4007:        move.l  a1,-(sp)
                   4008:        move.l  a0,-(sp)
                   4009:        bsr     result
                   4010:        lea.l   12(sp),sp
                   4011: @@:
                   4012:        move.l  #$00005550,d1
                   4013:        cmp.l   workarea+0,d1
                   4014:        beq     @f
                   4015:        pea.l   msg_fail(pc)
                   4016:        move.l  d1,-(sp)
                   4017:        move.l  workarea+4,-(sp)
                   4018:        bsr     result
                   4019:        lea.l   12(sp),sp
                   4020: @@:
                   4021:        move.l  #$0aaaaaa8,d1
                   4022:        cmp.l   workarea+4,d1
                   4023:        beq     @f
                   4024:        pea.l   msg_fail(pc)
                   4025:        move.l  d1,-(sp)
                   4026:        move.l  workarea+8,-(sp)
                   4027:        bsr     result
                   4028:        lea.l   12(sp),sp
                   4029: @@:
                   4030:        move.l  #$33333333,d1
                   4031:        cmp.l   workarea+8,d1
                   4032:        beq     @f
                   4033:        pea.l   msg_fail(pc)
                   4034:        move.l  d1,-(sp)
                   4035:        move.l  workarea+12,-(sp)
                   4036:        bsr     result
                   4037:        lea.l   12(sp),sp
                   4038: @@:
                   4039:        tst.l   d7
                   4040:        bne     @f
                   4041:        PRINT   msg_ok
                   4042: @@:
                   4043:        rts
                   4044: 
                   4045: test_fmovem_CSI_to_anpi:
                   4046:        PRINT   msg_fmovem_CSI_to_anpi
                   4047:        fmove.l #$55555555,fpcr
                   4048:        fmove.l #$aaaaaaaa,fpsr
                   4049:        fmove.l #$33333333,fpiar
                   4050:        lea.l   workarea(pc),a0
                   4051:        SET_FLINE_TRAP
                   4052:        moveq.l #0,d7
                   4053:        lea.l   @f,a3
                   4054:        fmovem.l fpcr/fpsr/fpiar,(a0)+
                   4055: @@:
                   4056:        RESTORE_FLINE_TRAP
                   4057:        tst.l   d7
                   4058:        beq     @f
                   4059:        PRINT   msg_fail_trap
                   4060:        rts
                   4061: @@:
                   4062:        lea.l workarea+12(pc),a1
                   4063:        cmpa.l  a1,a0
                   4064:        beq     @f
                   4065:        pea.l   msg_fail_addr(pc)
                   4066:        move.l  a1,-(sp)
                   4067:        move.l  a0,-(sp)
                   4068:        bsr     result
                   4069:        lea.l   12(sp),sp
                   4070: @@:
                   4071:        move.l  #$00005550,d1
                   4072:        cmp.l   workarea+0,d1
                   4073:        beq     @f
                   4074:        pea.l   msg_fail(pc)
                   4075:        move.l  d1,-(sp)
                   4076:        move.l  workarea+4,-(sp)
                   4077:        bsr     result
                   4078:        lea.l   12(sp),sp
                   4079: @@:
                   4080:        move.l  #$0aaaaaa8,d1
                   4081:        cmp.l   workarea+4,d1
                   4082:        beq     @f
                   4083:        pea.l   msg_fail(pc)
                   4084:        move.l  d1,-(sp)
                   4085:        move.l  workarea+8,-(sp)
                   4086:        bsr     result
                   4087:        lea.l   12(sp),sp
                   4088: @@:
                   4089:        move.l  #$33333333,d1
                   4090:        cmp.l   workarea+8,d1
                   4091:        beq     @f
                   4092:        pea.l   msg_fail(pc)
                   4093:        move.l  d1,-(sp)
                   4094:        move.l  workarea+12,-(sp)
                   4095:        bsr     result
                   4096:        lea.l   12(sp),sp
                   4097: @@:
                   4098:        tst.l   d7
                   4099:        bne     @f
                   4100:        PRINT   msg_ok
                   4101: @@:
                   4102:        rts
                   4103: 
                   4104: test_fmovem_CSI_to_anpd:
                   4105:        PRINT   msg_fmovem_CSI_to_anpd
                   4106:        fmove.l #$55555555,fpcr
                   4107:        fmove.l #$aaaaaaaa,fpsr
                   4108:        fmove.l #$33333333,fpiar
                   4109:        lea.l   workarea+12(pc),a0
                   4110:        SET_FLINE_TRAP
                   4111:        moveq.l #0,d7
                   4112:        lea.l   @f,a3
                   4113:        fmovem.l fpcr/fpsr/fpiar,-(a0)
                   4114: @@:
                   4115:        RESTORE_FLINE_TRAP
                   4116:        tst.l   d7
                   4117:        beq     @f
                   4118:        PRINT   msg_fail_trap
                   4119:        rts
                   4120: @@:
                   4121:        lea.l   workarea(pc),a1
                   4122:        cmpa.l  a1,a0
                   4123:        beq     @f
                   4124:        pea.l   msg_fail_addr(pc)
                   4125:        move.l  a1,-(sp)
                   4126:        move.l  a0,-(sp)
                   4127:        bsr     result
                   4128:        lea.l   12(sp),sp
                   4129: @@:
                   4130:        move.l  #$00005550,d1
                   4131:        cmp.l   workarea+0,d1
                   4132:        beq     @f
                   4133:        pea.l   msg_fail(pc)
                   4134:        move.l  d1,-(sp)
                   4135:        move.l  workarea+4,-(sp)
                   4136:        bsr     result
                   4137:        lea.l   12(sp),sp
                   4138: @@:
                   4139:        move.l  #$0aaaaaa8,d1
                   4140:        cmp.l   workarea+4,d1
                   4141:        beq     @f
                   4142:        pea.l   msg_fail(pc)
                   4143:        move.l  d1,-(sp)
                   4144:        move.l  workarea+8,-(sp)
                   4145:        bsr     result
                   4146:        lea.l   12(sp),sp
                   4147: @@:
                   4148:        move.l  #$33333333,d1
                   4149:        cmp.l   workarea+8,d1
                   4150:        beq     @f
                   4151:        pea.l   msg_fail(pc)
                   4152:        move.l  d1,-(sp)
                   4153:        move.l  workarea+12,-(sp)
                   4154:        bsr     result
                   4155:        lea.l   12(sp),sp
                   4156: @@:
                   4157:        tst.l   d7
                   4158:        bne     @f
                   4159:        PRINT   msg_ok
                   4160: @@:
                   4161:        rts
                   4162: 
                   4163: test_fmovem_CSI_to_imm:
1.1.1.3 ! root     4164:        tst.b   is_hard(pc)
        !          4165:        bne             @f
        !          4166:        rts
        !          4167: @@:
1.1       root     4168:        PRINT   msg_fmovem_CSI_to_imm
                   4169:        SET_FLINE_TRAP
                   4170:        moveq.l #0,d7
                   4171:        lea.l   @f,a3
                   4172:        .dc.w   $f23c, $bc00
                   4173: @@:
                   4174:        RESTORE_FLINE_TRAP
                   4175:        tst.l   d7
                   4176:        bne     @f
                   4177:        PRINT   msg_fail_notrap
                   4178:        rts
                   4179: @@:
                   4180:        PRINT   msg_oktrap
                   4181:        rts
                   4182: 
1.1.1.3 ! root     4183: start2:
1.1       root     4184:        clr.l   -(sp)
                   4185:        DOS     _SUPER
                   4186:        movem.l d7/a3-a5,-(sp)
1.1.1.3 ! root     4187:        ; rough argument check
        !          4188:        cmpi.b  #4,(a2)+        ; strlen(arg)>=4 ?
        !          4189:        bcs     @f
        !          4190:        cmpi.l  #$68617264,(a2) ; "hard"
        !          4191:        seq.b   is_hard
        !          4192: @@:
        !          4193:        tst.b   is_hard(pc)
        !          4194:        beq             disp_easy
        !          4195: disp_hard:
        !          4196:        PRINT   msg_hard
        !          4197:        bra             @f
        !          4198: disp_easy:
        !          4199:        PRINT   msg_easy
        !          4200: @@:
        !          4201: 
1.1       root     4202:        moveq.l #$2c,d0         ; alternate of "lea.l $2c,a5"
                   4203:        move.l  d0,a5           ;
1.1.1.3 ! root     4204:        tst.b   is_hard(pc)
        !          4205:        beq             @f
1.1       root     4206:        bsr     test_fmovem_dn_to____
1.1.1.3 ! root     4207: @@:
        !          4208:        tst.b   is_hard(pc)
        !          4209:        beq             @f
1.1       root     4210:        bsr     test_fmovem_an_to____
1.1.1.3 ! root     4211: @@:
        !          4212:        tst.b   is_hard(pc)
        !          4213:        beq             @f
1.1       root     4214:        bsr     test_fmovem_anin_to____
1.1.1.3 ! root     4215: @@:
        !          4216:        tst.b   is_hard(pc)
        !          4217:        beq             @f
1.1       root     4218:        bsr     test_fmovem_anpi_to____
1.1.1.3 ! root     4219: @@:
        !          4220:        tst.b   is_hard(pc)
        !          4221:        beq             @f
1.1       root     4222:        bsr     test_fmovem_anpd_to____
1.1.1.3 ! root     4223: @@:
        !          4224:        tst.b   is_hard(pc)
        !          4225:        beq             @f
1.1       root     4226:        bsr     test_fmovem_imm_to____
1.1.1.3 ! root     4227: @@:
1.1       root     4228:        bsr     test_fmovem_dn_to___I
                   4229:        bsr     test_fmovem_an_to___I
                   4230:        bsr     test_fmovem_anin_to___I
                   4231:        bsr     test_fmovem_anpi_to___I
                   4232:        bsr     test_fmovem_anpd_to___I
                   4233:        bsr     test_fmovem_imm_to___I
                   4234:        bsr     test_fmovem_dn_to__S_
                   4235:        bsr     test_fmovem_an_to__S_
                   4236:        bsr     test_fmovem_anin_to__S_
                   4237:        bsr     test_fmovem_anpi_to__S_
                   4238:        bsr     test_fmovem_anpd_to__S_
                   4239:        bsr     test_fmovem_imm_to__S_
                   4240:        bsr     test_fmovem_dn_to__SI
                   4241:        bsr     test_fmovem_an_to__SI
                   4242:        bsr     test_fmovem_anin_to__SI
                   4243:        bsr     test_fmovem_anpi_to__SI
                   4244:        bsr     test_fmovem_anpd_to__SI
                   4245:        bsr     test_fmovem_imm_to__SI
                   4246:        bsr     test_fmovem_dn_to_C__
                   4247:        bsr     test_fmovem_an_to_C__
                   4248:        bsr     test_fmovem_anin_to_C__
                   4249:        bsr     test_fmovem_anpi_to_C__
                   4250:        bsr     test_fmovem_anpd_to_C__
                   4251:        bsr     test_fmovem_imm_to_C__
                   4252:        bsr     test_fmovem_dn_to_C_I
                   4253:        bsr     test_fmovem_an_to_C_I
                   4254:        bsr     test_fmovem_anin_to_C_I
                   4255:        bsr     test_fmovem_anpi_to_C_I
                   4256:        bsr     test_fmovem_anpd_to_C_I
                   4257:        bsr     test_fmovem_imm_to_C_I
                   4258:        bsr     test_fmovem_dn_to_CS_
                   4259:        bsr     test_fmovem_an_to_CS_
                   4260:        bsr     test_fmovem_anin_to_CS_
                   4261:        bsr     test_fmovem_anpi_to_CS_
                   4262:        bsr     test_fmovem_anpd_to_CS_
                   4263:        bsr     test_fmovem_imm_to_CS_
                   4264:        bsr     test_fmovem_dn_to_CSI
                   4265:        bsr     test_fmovem_an_to_CSI
                   4266:        bsr     test_fmovem_anin_to_CSI
                   4267:        bsr     test_fmovem_anpi_to_CSI
                   4268:        bsr     test_fmovem_anpd_to_CSI
                   4269:        bsr     test_fmovem_imm_to_CSI
1.1.1.3 ! root     4270:        tst.b   is_hard(pc)
        !          4271:        beq             @f
1.1       root     4272:        bsr     test_fmovem_____to_dn
1.1.1.3 ! root     4273: @@:
        !          4274:        tst.b   is_hard(pc)
        !          4275:        beq             @f
1.1       root     4276:        bsr     test_fmovem_____to_an
1.1.1.3 ! root     4277: @@:
        !          4278:        tst.b   is_hard(pc)
        !          4279:        beq             @f
1.1       root     4280:        bsr     test_fmovem_____to_anin
1.1.1.3 ! root     4281: @@:
        !          4282:        tst.b   is_hard(pc)
        !          4283:        beq             @f
1.1       root     4284:        bsr     test_fmovem_____to_anpi
1.1.1.3 ! root     4285: @@:
        !          4286:        tst.b   is_hard(pc)
        !          4287:        beq             @f
1.1       root     4288:        bsr     test_fmovem_____to_anpd
1.1.1.3 ! root     4289: @@:
        !          4290:        tst.b   is_hard(pc)
        !          4291:        beq             @f
1.1       root     4292:        bsr     test_fmovem_____to_imm
1.1.1.3 ! root     4293: @@:
1.1       root     4294:        bsr     test_fmovem___I_to_dn
                   4295:        bsr     test_fmovem___I_to_an
                   4296:        bsr     test_fmovem___I_to_anin
                   4297:        bsr     test_fmovem___I_to_anpi
                   4298:        bsr     test_fmovem___I_to_anpd
                   4299:        bsr     test_fmovem___I_to_imm
                   4300:        bsr     test_fmovem__S__to_dn
                   4301:        bsr     test_fmovem__S__to_an
                   4302:        bsr     test_fmovem__S__to_anin
                   4303:        bsr     test_fmovem__S__to_anpi
                   4304:        bsr     test_fmovem__S__to_anpd
                   4305:        bsr     test_fmovem__S__to_imm
                   4306:        bsr     test_fmovem__SI_to_dn
                   4307:        bsr     test_fmovem__SI_to_an
                   4308:        bsr     test_fmovem__SI_to_anin
                   4309:        bsr     test_fmovem__SI_to_anpi
                   4310:        bsr     test_fmovem__SI_to_anpd
                   4311:        bsr     test_fmovem__SI_to_imm
                   4312:        bsr     test_fmovem_C___to_dn
                   4313:        bsr     test_fmovem_C___to_an
                   4314:        bsr     test_fmovem_C___to_anin
                   4315:        bsr     test_fmovem_C___to_anpi
                   4316:        bsr     test_fmovem_C___to_anpd
                   4317:        bsr     test_fmovem_C___to_imm
                   4318:        bsr     test_fmovem_C_I_to_dn
                   4319:        bsr     test_fmovem_C_I_to_an
                   4320:        bsr     test_fmovem_C_I_to_anin
                   4321:        bsr     test_fmovem_C_I_to_anpi
                   4322:        bsr     test_fmovem_C_I_to_anpd
                   4323:        bsr     test_fmovem_C_I_to_imm
                   4324:        bsr     test_fmovem_CS__to_dn
                   4325:        bsr     test_fmovem_CS__to_an
                   4326:        bsr     test_fmovem_CS__to_anin
                   4327:        bsr     test_fmovem_CS__to_anpi
                   4328:        bsr     test_fmovem_CS__to_anpd
                   4329:        bsr     test_fmovem_CS__to_imm
                   4330:        bsr     test_fmovem_CSI_to_dn
                   4331:        bsr     test_fmovem_CSI_to_an
                   4332:        bsr     test_fmovem_CSI_to_anin
                   4333:        bsr     test_fmovem_CSI_to_anpi
                   4334:        bsr     test_fmovem_CSI_to_anpd
                   4335:        bsr     test_fmovem_CSI_to_imm
                   4336:        movem.l (sp)+,d7/a3-a5
                   4337:        DOS     _EXIT
                   4338: 
                   4339: ; 結果表示
                   4340: ; スタックには、メッセージ、期待値、実際の値の順で積む。
                   4341: result:
                   4342:        link    a6,#0
                   4343:        movem.l d0/a0,-(sp)
                   4344: 
                   4345:        move.l  8+8(a6),-(sp)
                   4346:        DOS     _PRINT
                   4347:        addq.l  #4,sp
                   4348: 
                   4349:        move.l  8+4(a6),d0
                   4350:        lea.l   buf(pc),a0
                   4351:        bsr     hexstr_long
                   4352:        PRINT   buf
                   4353:        PRINT   msg_but
                   4354: 
1.1.1.3 ! root     4355:        move.l  8+0(a6),d0
1.1       root     4356:        lea.l   buf(pc),a0
                   4357:        bsr     hexstr_long
                   4358:        PRINT   buf
                   4359:        PRINT   msg_crlf
                   4360: 
                   4361:        addq.l  #1,d7   ; errcnt
                   4362:        movem.l (sp)+,d0/a0
                   4363:        unlk    a6
                   4364:        rts
                   4365: 
                   4366: ; Fライン例外ハンドラ
                   4367: ; a3 に戻りアドレスをセットしてあること
                   4368: ; d7 を 1 にして帰る
                   4369: fline_handler:
                   4370:        moveq.l #1,d7
                   4371:        move.l  a3,2(sp)
                   4372:        rte
                   4373: 
1.1.1.3 ! root     4374: msg_hard:      .dc.b   "hard mode",$d,$a,0
        !          4375: msg_easy:      .dc.b   "easy mode",$d,$a,0
1.1       root     4376: msg_oktrap:    .dc.b   $9,"ok(trap)",$d,$a,0, 0,0
                   4377: msg_fail_notrap:       .dc.b   $9,"FAIL: trap expected but not occured",$d,$a,0
                   4378: msg_fail_trap: .dc.b   $9,"FAIL: unexpected trap occured",$d,$a,0
                   4379: 
                   4380: msg_ok:                .dc.b   $9,"ok",$d,$a,0
                   4381: msg_fail:      .dc.b   $9,"fail",$d,$a,0
                   4382: msg_fail_cr:   .dc.b   $9,"FAIL: fpcr expects ",0
                   4383: msg_fail_sr:   .dc.b   $9,"FAIL: fpsr expects ",0
                   4384: msg_fail_ir:   .dc.b   $9,"FAIL: fpiar expects ",0
                   4385: msg_fail_addr: .dc.b   $9,"FAIL: an expects ",0
                   4386: msg_but:       .dc.b   " but ",0
                   4387: msg_crlf:      .dc.b   $d,$a,0
                   4388: 
                   4389: 
1.1.1.3 ! root     4390: msg_fmovem_dn_to____:  .dc.b   "fmovem.l d0,nofpc",0
        !          4391: msg_fmovem_an_to____:  .dc.b   "fmovem.l a0,nofpc",0
        !          4392: msg_fmovem_anin_to____:        .dc.b   "fmovem.l (a0),nofpc",0
        !          4393: msg_fmovem_anpi_to____:        .dc.b   "fmovem.l (a0)+,nofpc",0
        !          4394: msg_fmovem_anpd_to____:        .dc.b   "fmovem.l -(a0),nofpc",0
        !          4395: msg_fmovem_imm_to____: .dc.b   "fmovem.l #imm,nofpc",0
        !          4396: msg_fmovem_dn_to___I:  .dc.b   "fmovem.l d0,fpiar",0
        !          4397: msg_fmovem_an_to___I:  .dc.b   "fmovem.l a0,fpiar",0
        !          4398: msg_fmovem_anin_to___I:        .dc.b   "fmovem.l (a0),fpiar",0
        !          4399: msg_fmovem_anpi_to___I:        .dc.b   "fmovem.l (a0)+,fpiar",0
        !          4400: msg_fmovem_anpd_to___I:        .dc.b   "fmovem.l -(a0),fpiar",0
        !          4401: msg_fmovem_imm_to___I: .dc.b   "fmovem.l #imm,fpiar",0
        !          4402: msg_fmovem_dn_to__S_:  .dc.b   "fmovem.l d0,fpsr",0
        !          4403: msg_fmovem_an_to__S_:  .dc.b   "fmovem.l a0,fpsr",0
        !          4404: msg_fmovem_anin_to__S_:        .dc.b   "fmovem.l (a0),fpsr",0
        !          4405: msg_fmovem_anpi_to__S_:        .dc.b   "fmovem.l (a0)+,fpsr",0
        !          4406: msg_fmovem_anpd_to__S_:        .dc.b   "fmovem.l -(a0),fpsr",0
        !          4407: msg_fmovem_imm_to__S_: .dc.b   "fmovem.l #imm,fpsr",0
        !          4408: msg_fmovem_dn_to__SI:  .dc.b   "fmovem.l d0,fpsr/fpiar",0
        !          4409: msg_fmovem_an_to__SI:  .dc.b   "fmovem.l a0,fpsr/fpiar",0
        !          4410: msg_fmovem_anin_to__SI:        .dc.b   "fmovem.l (a0),fpsr/fpiar",0
        !          4411: msg_fmovem_anpi_to__SI:        .dc.b   "fmovem.l (a0)+,fpsr/fpiar",0
        !          4412: msg_fmovem_anpd_to__SI:        .dc.b   "fmovem.l -(a0),fpsr/fpiar",0
        !          4413: msg_fmovem_imm_to__SI: .dc.b   "fmovem.l #imm/#imm,fpsr/fpiar",0
        !          4414: msg_fmovem_dn_to_C__:  .dc.b   "fmovem.l d0,fpcr",0
        !          4415: msg_fmovem_an_to_C__:  .dc.b   "fmovem.l a0,fpcr",0
        !          4416: msg_fmovem_anin_to_C__:        .dc.b   "fmovem.l (a0),fpcr",0
        !          4417: msg_fmovem_anpi_to_C__:        .dc.b   "fmovem.l (a0)+,fpcr",0
        !          4418: msg_fmovem_anpd_to_C__:        .dc.b   "fmovem.l -(a0),fpcr",0
        !          4419: msg_fmovem_imm_to_C__: .dc.b   "fmovem.l #imm,fpcr",0
        !          4420: msg_fmovem_dn_to_C_I:  .dc.b   "fmovem.l d0,fpcr/fpiar",0
        !          4421: msg_fmovem_an_to_C_I:  .dc.b   "fmovem.l a0,fpcr/fpiar",0
        !          4422: msg_fmovem_anin_to_C_I:        .dc.b   "fmovem.l (a0),fpcr/fpiar",0
        !          4423: msg_fmovem_anpi_to_C_I:        .dc.b   "fmovem.l (a0)+,fpcr/fpiar",0
        !          4424: msg_fmovem_anpd_to_C_I:        .dc.b   "fmovem.l -(a0),fpcr/fpiar",0
        !          4425: msg_fmovem_imm_to_C_I: .dc.b   "fmovem.l #imm/#imm,fpcr/fpiar",0
        !          4426: msg_fmovem_dn_to_CS_:  .dc.b   "fmovem.l d0,fpcr/fpsr",0
        !          4427: msg_fmovem_an_to_CS_:  .dc.b   "fmovem.l a0,fpcr/fpsr",0
        !          4428: msg_fmovem_anin_to_CS_:        .dc.b   "fmovem.l (a0),fpcr/fpsr",0
        !          4429: msg_fmovem_anpi_to_CS_:        .dc.b   "fmovem.l (a0)+,fpcr/fpsr",0
        !          4430: msg_fmovem_anpd_to_CS_:        .dc.b   "fmovem.l -(a0),fpcr/fpsr",0
        !          4431: msg_fmovem_imm_to_CS_: .dc.b   "fmovem.l #imm/#imm,fpcr/fpsr",0
        !          4432: msg_fmovem_dn_to_CSI:  .dc.b   "fmovem.l d0,fpcr/fpsr/fpiar",0
        !          4433: msg_fmovem_an_to_CSI:  .dc.b   "fmovem.l a0,fpcr/fpsr/fpiar",0
        !          4434: msg_fmovem_anin_to_CSI:        .dc.b   "fmovem.l (a0),fpcr/fpsr/fpiar",0
        !          4435: msg_fmovem_anpi_to_CSI:        .dc.b   "fmovem.l (a0)+,fpcr/fpsr/fpiar",0
        !          4436: msg_fmovem_anpd_to_CSI:        .dc.b   "fmovem.l -(a0),fpcr/fpsr/fpiar",0
        !          4437: msg_fmovem_imm_to_CSI: .dc.b   "fmovem.l #imm/#imm/#imm,fpcr/fpsr/fpiar",0
        !          4438: msg_fmovem_____to_dn:  .dc.b   "fmovem.l nofpc,d0",0
        !          4439: msg_fmovem_____to_an:  .dc.b   "fmovem.l nofpc,a0",0
        !          4440: msg_fmovem_____to_anin:        .dc.b   "fmovem.l nofpc,(a0)",0
        !          4441: msg_fmovem_____to_anpi:        .dc.b   "fmovem.l nofpc,(a0)+",0
        !          4442: msg_fmovem_____to_anpd:        .dc.b   "fmovem.l nofpc,-(a0)",0
        !          4443: msg_fmovem_____to_imm: .dc.b   "fmovem.l nofpc,#imm",0
        !          4444: msg_fmovem___I_to_dn:  .dc.b   "fmovem.l fpiar,d0",0
        !          4445: msg_fmovem___I_to_an:  .dc.b   "fmovem.l fpiar,a0",0
        !          4446: msg_fmovem___I_to_anin:        .dc.b   "fmovem.l fpiar,(a0)",0
        !          4447: msg_fmovem___I_to_anpi:        .dc.b   "fmovem.l fpiar,(a0)+",0
        !          4448: msg_fmovem___I_to_anpd:        .dc.b   "fmovem.l fpiar,-(a0)",0
        !          4449: msg_fmovem___I_to_imm: .dc.b   "fmovem.l fpiar,#imm",0
        !          4450: msg_fmovem__S__to_dn:  .dc.b   "fmovem.l fpsr,d0",0
        !          4451: msg_fmovem__S__to_an:  .dc.b   "fmovem.l fpsr,a0",0
        !          4452: msg_fmovem__S__to_anin:        .dc.b   "fmovem.l fpsr,(a0)",0
        !          4453: msg_fmovem__S__to_anpi:        .dc.b   "fmovem.l fpsr,(a0)+",0
        !          4454: msg_fmovem__S__to_anpd:        .dc.b   "fmovem.l fpsr,-(a0)",0
        !          4455: msg_fmovem__S__to_imm: .dc.b   "fmovem.l fpsr,#imm",0
        !          4456: msg_fmovem__SI_to_dn:  .dc.b   "fmovem.l fpsr/fpiar,d0",0
        !          4457: msg_fmovem__SI_to_an:  .dc.b   "fmovem.l fpsr/fpiar,a0",0
        !          4458: msg_fmovem__SI_to_anin:        .dc.b   "fmovem.l fpsr/fpiar,(a0)",0
        !          4459: msg_fmovem__SI_to_anpi:        .dc.b   "fmovem.l fpsr/fpiar,(a0)+",0
        !          4460: msg_fmovem__SI_to_anpd:        .dc.b   "fmovem.l fpsr/fpiar,-(a0)",0
        !          4461: msg_fmovem__SI_to_imm: .dc.b   "fmovem.l fpsr/fpiar,#imm/#imm",0
        !          4462: msg_fmovem_C___to_dn:  .dc.b   "fmovem.l fpcr,d0",0
        !          4463: msg_fmovem_C___to_an:  .dc.b   "fmovem.l fpcr,a0",0
        !          4464: msg_fmovem_C___to_anin:        .dc.b   "fmovem.l fpcr,(a0)",0
        !          4465: msg_fmovem_C___to_anpi:        .dc.b   "fmovem.l fpcr,(a0)+",0
        !          4466: msg_fmovem_C___to_anpd:        .dc.b   "fmovem.l fpcr,-(a0)",0
        !          4467: msg_fmovem_C___to_imm: .dc.b   "fmovem.l fpcr,#imm",0
        !          4468: msg_fmovem_C_I_to_dn:  .dc.b   "fmovem.l fpcr/fpiar,d0",0
        !          4469: msg_fmovem_C_I_to_an:  .dc.b   "fmovem.l fpcr/fpiar,a0",0
        !          4470: msg_fmovem_C_I_to_anin:        .dc.b   "fmovem.l fpcr/fpiar,(a0)",0
        !          4471: msg_fmovem_C_I_to_anpi:        .dc.b   "fmovem.l fpcr/fpiar,(a0)+",0
        !          4472: msg_fmovem_C_I_to_anpd:        .dc.b   "fmovem.l fpcr/fpiar,-(a0)",0
        !          4473: msg_fmovem_C_I_to_imm: .dc.b   "fmovem.l fpcr/fpiar,#imm/#imm",0
        !          4474: msg_fmovem_CS__to_dn:  .dc.b   "fmovem.l fpcr/fpsr,d0",0
        !          4475: msg_fmovem_CS__to_an:  .dc.b   "fmovem.l fpcr/fpsr,a0",0
        !          4476: msg_fmovem_CS__to_anin:        .dc.b   "fmovem.l fpcr/fpsr,(a0)",0
        !          4477: msg_fmovem_CS__to_anpi:        .dc.b   "fmovem.l fpcr/fpsr,(a0)+",0
        !          4478: msg_fmovem_CS__to_anpd:        .dc.b   "fmovem.l fpcr/fpsr,-(a0)",0
        !          4479: msg_fmovem_CS__to_imm: .dc.b   "fmovem.l fpcr/fpsr,#imm/#imm",0
        !          4480: msg_fmovem_CSI_to_dn:  .dc.b   "fmovem.l fpcr/fpsr/fpiar,d0",0
        !          4481: msg_fmovem_CSI_to_an:  .dc.b   "fmovem.l fpcr/fpsr/fpiar,a0",0
        !          4482: msg_fmovem_CSI_to_anin:        .dc.b   "fmovem.l fpcr/fpsr/fpiar,(a0)",0
        !          4483: msg_fmovem_CSI_to_anpi:        .dc.b   "fmovem.l fpcr/fpsr/fpiar,(a0)+",0
        !          4484: msg_fmovem_CSI_to_anpd:        .dc.b   "fmovem.l fpcr/fpsr/fpiar,-(a0)",0
        !          4485: msg_fmovem_CSI_to_imm: .dc.b   "fmovem.l fpcr/fpsr/fpiar,#imm/#imm/#imm",0
1.1       root     4486: 
                   4487:        .data
                   4488:        .even
                   4489: workarea:      .ds.b   24
1.1.1.3 ! root     4490: buf:           .ds.b   20
        !          4491: is_hard:       .ds.b   1
1.1       root     4492: 
                   4493:        .end    start

unix.superglobalmegacorp.com

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