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