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

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

unix.superglobalmegacorp.com

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