|
|
1.1 ! root 1: ; ! 2: ; nono ! 3: ; Copyright (C) 2025 nono project ! 4: ; ! 5: ; Redistribution and use in source and binary forms, with or without ! 6: ; modification, are permitted provided that the following conditions ! 7: ; are met: ! 8: ; 1. Redistributions of source code must retain the above copyright ! 9: ; notice, this list of conditions and the following disclaimer. ! 10: ; 2. Redistributions in binary form must reproduce the above copyright ! 11: ; notice, this list of conditions and the following disclaimer in the ! 12: ; documentation and/or other materials provided with the distribution. ! 13: ; ! 14: ; THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ! 15: ; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ! 16: ; OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ! 17: ; IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ! 18: ; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, ! 19: ; BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ! 20: ; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED ! 21: ; AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ! 22: ; OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ! 23: ; OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ! 24: ; SUCH DAMAGE. ! 25: ! 26: ; FMOVE.? FPn,<ea> で例外の起きる <ea> を確認する。 ! 27: ; あと不当命令のところで命令を処理してしまわないことを確認する。 ! 28: ! 29: ; How to compile ! 30: ; > has fmoveto.has ! 31: ; > hlk fmoveto.o ! 32: ! 33: .include doscall.mac ! 34: .include iocscall.mac ! 35: .list ! 36: .cpu 68030 ! 37: ! 38: PRINT .macro msg ! 39: pea.l msg ! 40: DOS _PRINT ! 41: addq.l #4,sp ! 42: .endm ! 43: ! 44: .text ! 45: .even ! 46: ! 47: ! 48: start: ! 49: bsr parse_arg ! 50: clr.l -(sp) ! 51: DOS _SUPER ! 52: ! 53: fmovem.x fp0-fp7,-(sp) ! 54: fmovem.l fpcr/fpsr/fpiar,-(sp) ! 55: ! 56: moveq.l #0,d0 ! 57: fmove.s d0,fp0 ; FP0 = +0.0 ! 58: fmove.l d0,fpcr ; Init round prec, round mode. ! 59: move.l d0,failed ; Init failed count. ! 60: ! 61: @@: ! 62: tst.b is_fmove(pc) ! 63: beq @f ! 64: PRINT msg_head_fmove(pc) ! 65: PRINT msg_head_guide7(pc) ! 66: bsr test_fmove_d ! 67: bsr test_fmove_a ! 68: bsr test_fmove_m ! 69: bsr test_fmove_mi ! 70: bsr test_fmove_md ! 71: bsr test_fmove_r ! 72: bsr test_fmove_x ! 73: bsr test_fmove_p ! 74: bsr test_fmove_i ! 75: bsr test_fmove_o ! 76: @@: ! 77: tst.b is_fgen(pc) ! 78: beq @f ! 79: PRINT msg_head_fgen(pc) ! 80: PRINT msg_head_guide7(pc) ! 81: bsr test_fgen_d ! 82: bsr test_fgen_a ! 83: bsr test_fgen_m ! 84: bsr test_fgen_mi ! 85: bsr test_fgen_md ! 86: bsr test_fgen_r ! 87: bsr test_fgen_x ! 88: bsr test_fgen_p ! 89: bsr test_fgen_i ! 90: bsr test_fgen_o ! 91: @@: ! 92: tst.b is_fscale(pc) ! 93: beq @f ! 94: PRINT msg_head_fscale(pc) ! 95: PRINT msg_head_guide7(pc) ! 96: bsr test_fscale_d ! 97: bsr test_fscale_a ! 98: bsr test_fscale_m ! 99: bsr test_fscale_mi ! 100: bsr test_fscale_md ! 101: bsr test_fscale_r ! 102: bsr test_fscale_x ! 103: bsr test_fscale_p ! 104: bsr test_fscale_i ! 105: bsr test_fscale_o ! 106: @@: ! 107: tst.b is_fscc(pc) ! 108: beq @f ! 109: PRINT msg_head_fscc(pc) ! 110: bsr test_fscc_d ! 111: bsr test_fscc_m ! 112: bsr test_fscc_mi ! 113: bsr test_fscc_md ! 114: bsr test_fscc_r ! 115: bsr test_fscc_x ! 116: bsr test_fscc_o ! 117: @@: ! 118: tst.b is_fmovem_rm(pc) ! 119: beq @f ! 120: PRINT msg_head_fmovem_rm(pc) ! 121: bsr test_fmovem_rm_d ! 122: bsr test_fmovem_rm_a ! 123: bsr test_fmovem_rm_m ! 124: bsr test_fmovem_rm_mi ! 125: bsr test_fmovem_rm_md ! 126: bsr test_fmovem_rm_r ! 127: bsr test_fmovem_rm_x ! 128: bsr test_fmovem_rm_p ! 129: bsr test_fmovem_rm_i ! 130: bsr test_fmovem_rm_o ! 131: @@: ! 132: tst.b is_fmovem_mr(pc) ! 133: beq @f ! 134: PRINT msg_head_fmovem_mr(pc) ! 135: bsr test_fmovem_mr_d ! 136: bsr test_fmovem_mr_a ! 137: bsr test_fmovem_mr_m ! 138: bsr test_fmovem_mr_mi ! 139: bsr test_fmovem_mr_md ! 140: bsr test_fmovem_mr_r ! 141: bsr test_fmovem_mr_x ! 142: bsr test_fmovem_mr_p ! 143: bsr test_fmovem_mr_i ! 144: bsr test_fmovem_mr_o ! 145: @@: ! 146: tst.b is_fmovem_cm(pc) ! 147: beq @f ! 148: PRINT msg_head_fmovem_cm(pc) ! 149: PRINT msg_head_guide4(pc) ! 150: bsr test_fmovem_cm_d ! 151: bsr test_fmovem_cm_a ! 152: bsr test_fmovem_cm_m ! 153: bsr test_fmovem_cm_mi ! 154: bsr test_fmovem_cm_md ! 155: bsr test_fmovem_cm_r ! 156: bsr test_fmovem_cm_x ! 157: bsr test_fmovem_cm_p ! 158: bsr test_fmovem_cm_i ! 159: bsr test_fmovem_cm_o ! 160: @@: ! 161: tst.b is_fmovem_mc(pc) ! 162: beq @f ! 163: PRINT msg_head_fmovem_mc(pc) ! 164: PRINT msg_head_guide4(pc) ! 165: bsr test_fmovem_mc_d ! 166: bsr test_fmovem_mc_a ! 167: bsr test_fmovem_mc_m ! 168: bsr test_fmovem_mc_mi ! 169: bsr test_fmovem_mc_md ! 170: bsr test_fmovem_mc_r ! 171: bsr test_fmovem_mc_x ! 172: bsr test_fmovem_mc_p ! 173: bsr test_fmovem_mc_i ! 174: bsr test_fmovem_mc_o ! 175: @@: ! 176: tst.l failed(pc) ! 177: beq @f ! 178: PRINT msg_failed(pc) ! 179: @@: ! 180: fmovem.l (sp)+,fpcr/fpsr/fpiar ! 181: fmovem.x (sp)+,fp0-fp7 ! 182: DOS _EXIT ! 183: ! 184: test_fmove_d: ! 185: lea.l result(pc),a2 ! 186: ; FMOVE.B FPn,Dn ! 187: move.b #$0b,(a2)+ ! 188: fmovem.l #$0b000000,fpsr ! 189: bsr set_fline ! 190: moveq.l #0,d7 ! 191: lea.l @f,a3 ! 192: .dc.l $f2067800 ! 193: @@: ! 194: bsr restore_fline ! 195: fmovem.l fpsr,d0 ! 196: rol.l #8,d0 ! 197: or.l d7,d0 ! 198: move.b d0,(a2)+ ! 199: ! 200: ; FMOVE.W FPn,Dn ! 201: move.b #$0b,(a2)+ ! 202: fmovem.l #$0b000000,fpsr ! 203: bsr set_fline ! 204: moveq.l #0,d7 ! 205: lea.l @f,a3 ! 206: .dc.l $f2067000 ! 207: @@: ! 208: bsr restore_fline ! 209: fmovem.l fpsr,d0 ! 210: rol.l #8,d0 ! 211: or.l d7,d0 ! 212: move.b d0,(a2)+ ! 213: ! 214: ; FMOVE.L FPn,Dn ! 215: move.b #$0b,(a2)+ ! 216: fmovem.l #$0b000000,fpsr ! 217: bsr set_fline ! 218: moveq.l #0,d7 ! 219: lea.l @f,a3 ! 220: .dc.l $f2066000 ! 221: @@: ! 222: bsr restore_fline ! 223: fmovem.l fpsr,d0 ! 224: rol.l #8,d0 ! 225: or.l d7,d0 ! 226: move.b d0,(a2)+ ! 227: ! 228: ; FMOVE.S FPn,Dn ! 229: move.b #$0b,(a2)+ ! 230: fmovem.l #$0b000000,fpsr ! 231: bsr set_fline ! 232: moveq.l #0,d7 ! 233: lea.l @f,a3 ! 234: .dc.l $f2066400 ! 235: @@: ! 236: bsr restore_fline ! 237: fmovem.l fpsr,d0 ! 238: rol.l #8,d0 ! 239: or.l d7,d0 ! 240: move.b d0,(a2)+ ! 241: ! 242: ; FMOVE.D FPn,Dn ! 243: move.b #$1b,(a2)+ ! 244: fmovem.l #$0b000000,fpsr ! 245: bsr set_fline ! 246: moveq.l #0,d7 ! 247: lea.l @f,a3 ! 248: .dc.l $f2067400 ! 249: @@: ! 250: bsr restore_fline ! 251: fmovem.l fpsr,d0 ! 252: rol.l #8,d0 ! 253: or.l d7,d0 ! 254: move.b d0,(a2)+ ! 255: ! 256: ; FMOVE.X FPn,Dn ! 257: move.b #$1b,(a2)+ ! 258: fmovem.l #$0b000000,fpsr ! 259: bsr set_fline ! 260: moveq.l #0,d7 ! 261: lea.l @f,a3 ! 262: .dc.l $f2066800 ! 263: @@: ! 264: bsr restore_fline ! 265: fmovem.l fpsr,d0 ! 266: rol.l #8,d0 ! 267: or.l d7,d0 ! 268: move.b d0,(a2)+ ! 269: ! 270: ; FMOVE.P FPn,Dn ! 271: move.b #$1b,(a2)+ ! 272: fmovem.l #$0b000000,fpsr ! 273: bsr set_fline ! 274: moveq.l #0,d7 ! 275: lea.l @f,a3 ! 276: .dc.l $f2066c00 ! 277: @@: ! 278: bsr restore_fline ! 279: fmovem.l fpsr,d0 ! 280: rol.l #8,d0 ! 281: or.l d7,d0 ! 282: move.b d0,(a2)+ ! 283: ! 284: lea.l msg_test_d,a0 ! 285: moveq.l #7-1,d0 ! 286: bsr print_result ! 287: rts ! 288: ! 289: test_fmove_a: ! 290: lea.l result(pc),a2 ! 291: ; FMOVE.B FPn,An ! 292: move.b #$1b,(a2)+ ! 293: fmovem.l #$0b000000,fpsr ! 294: bsr set_fline ! 295: moveq.l #0,d7 ! 296: lea.l @f,a3 ! 297: .dc.l $f2087800 ! 298: @@: ! 299: bsr restore_fline ! 300: fmovem.l fpsr,d0 ! 301: rol.l #8,d0 ! 302: or.l d7,d0 ! 303: move.b d0,(a2)+ ! 304: ! 305: ; FMOVE.W FPn,An ! 306: move.b #$1b,(a2)+ ! 307: fmovem.l #$0b000000,fpsr ! 308: bsr set_fline ! 309: moveq.l #0,d7 ! 310: lea.l @f,a3 ! 311: .dc.l $f2087000 ! 312: @@: ! 313: bsr restore_fline ! 314: fmovem.l fpsr,d0 ! 315: rol.l #8,d0 ! 316: or.l d7,d0 ! 317: move.b d0,(a2)+ ! 318: ! 319: ; FMOVE.L FPn,An ! 320: move.b #$1b,(a2)+ ! 321: fmovem.l #$0b000000,fpsr ! 322: bsr set_fline ! 323: moveq.l #0,d7 ! 324: lea.l @f,a3 ! 325: .dc.l $f2086000 ! 326: @@: ! 327: bsr restore_fline ! 328: fmovem.l fpsr,d0 ! 329: rol.l #8,d0 ! 330: or.l d7,d0 ! 331: move.b d0,(a2)+ ! 332: ! 333: ; FMOVE.S FPn,An ! 334: move.b #$1b,(a2)+ ! 335: fmovem.l #$0b000000,fpsr ! 336: bsr set_fline ! 337: moveq.l #0,d7 ! 338: lea.l @f,a3 ! 339: .dc.l $f2086400 ! 340: @@: ! 341: bsr restore_fline ! 342: fmovem.l fpsr,d0 ! 343: rol.l #8,d0 ! 344: or.l d7,d0 ! 345: move.b d0,(a2)+ ! 346: ! 347: ; FMOVE.D FPn,An ! 348: move.b #$1b,(a2)+ ! 349: fmovem.l #$0b000000,fpsr ! 350: bsr set_fline ! 351: moveq.l #0,d7 ! 352: lea.l @f,a3 ! 353: .dc.l $f2087400 ! 354: @@: ! 355: bsr restore_fline ! 356: fmovem.l fpsr,d0 ! 357: rol.l #8,d0 ! 358: or.l d7,d0 ! 359: move.b d0,(a2)+ ! 360: ! 361: ; FMOVE.X FPn,An ! 362: move.b #$1b,(a2)+ ! 363: fmovem.l #$0b000000,fpsr ! 364: bsr set_fline ! 365: moveq.l #0,d7 ! 366: lea.l @f,a3 ! 367: .dc.l $f2086800 ! 368: @@: ! 369: bsr restore_fline ! 370: fmovem.l fpsr,d0 ! 371: rol.l #8,d0 ! 372: or.l d7,d0 ! 373: move.b d0,(a2)+ ! 374: ! 375: ; FMOVE.P FPn,An ! 376: move.b #$1b,(a2)+ ! 377: fmovem.l #$0b000000,fpsr ! 378: bsr set_fline ! 379: moveq.l #0,d7 ! 380: lea.l @f,a3 ! 381: .dc.l $f2086c00 ! 382: @@: ! 383: bsr restore_fline ! 384: fmovem.l fpsr,d0 ! 385: rol.l #8,d0 ! 386: or.l d7,d0 ! 387: move.b d0,(a2)+ ! 388: ! 389: lea.l msg_test_a,a0 ! 390: moveq.l #7-1,d0 ! 391: bsr print_result ! 392: rts ! 393: ! 394: test_fmove_m: ! 395: lea.l result(pc),a2 ! 396: ; FMOVE.B FPn,(An) ! 397: move.b #$0b,(a2)+ ! 398: fmovem.l #$0b000000,fpsr ! 399: bsr set_fline ! 400: moveq.l #0,d7 ! 401: lea.l workarea(pc),a0 ! 402: lea.l @f,a3 ! 403: .dc.l $f2107800 ! 404: @@: ! 405: bsr restore_fline ! 406: fmovem.l fpsr,d0 ! 407: rol.l #8,d0 ! 408: or.l d7,d0 ! 409: move.b d0,(a2)+ ! 410: ! 411: ; FMOVE.W FPn,(An) ! 412: move.b #$0b,(a2)+ ! 413: fmovem.l #$0b000000,fpsr ! 414: bsr set_fline ! 415: moveq.l #0,d7 ! 416: lea.l workarea(pc),a0 ! 417: lea.l @f,a3 ! 418: .dc.l $f2107000 ! 419: @@: ! 420: bsr restore_fline ! 421: fmovem.l fpsr,d0 ! 422: rol.l #8,d0 ! 423: or.l d7,d0 ! 424: move.b d0,(a2)+ ! 425: ! 426: ; FMOVE.L FPn,(An) ! 427: move.b #$0b,(a2)+ ! 428: fmovem.l #$0b000000,fpsr ! 429: bsr set_fline ! 430: moveq.l #0,d7 ! 431: lea.l workarea(pc),a0 ! 432: lea.l @f,a3 ! 433: .dc.l $f2106000 ! 434: @@: ! 435: bsr restore_fline ! 436: fmovem.l fpsr,d0 ! 437: rol.l #8,d0 ! 438: or.l d7,d0 ! 439: move.b d0,(a2)+ ! 440: ! 441: ; FMOVE.S FPn,(An) ! 442: move.b #$0b,(a2)+ ! 443: fmovem.l #$0b000000,fpsr ! 444: bsr set_fline ! 445: moveq.l #0,d7 ! 446: lea.l workarea(pc),a0 ! 447: lea.l @f,a3 ! 448: .dc.l $f2106400 ! 449: @@: ! 450: bsr restore_fline ! 451: fmovem.l fpsr,d0 ! 452: rol.l #8,d0 ! 453: or.l d7,d0 ! 454: move.b d0,(a2)+ ! 455: ! 456: ; FMOVE.D FPn,(An) ! 457: move.b #$0b,(a2)+ ! 458: fmovem.l #$0b000000,fpsr ! 459: bsr set_fline ! 460: moveq.l #0,d7 ! 461: lea.l workarea(pc),a0 ! 462: lea.l @f,a3 ! 463: .dc.l $f2107400 ! 464: @@: ! 465: bsr restore_fline ! 466: fmovem.l fpsr,d0 ! 467: rol.l #8,d0 ! 468: or.l d7,d0 ! 469: move.b d0,(a2)+ ! 470: ! 471: ; FMOVE.X FPn,(An) ! 472: move.b #$0b,(a2)+ ! 473: fmovem.l #$0b000000,fpsr ! 474: bsr set_fline ! 475: moveq.l #0,d7 ! 476: lea.l workarea(pc),a0 ! 477: lea.l @f,a3 ! 478: .dc.l $f2106800 ! 479: @@: ! 480: bsr restore_fline ! 481: fmovem.l fpsr,d0 ! 482: rol.l #8,d0 ! 483: or.l d7,d0 ! 484: move.b d0,(a2)+ ! 485: ! 486: ; FMOVE.P FPn,(An) ! 487: move.b #$0b,(a2)+ ! 488: fmovem.l #$0b000000,fpsr ! 489: bsr set_fline ! 490: moveq.l #0,d7 ! 491: lea.l workarea(pc),a0 ! 492: lea.l @f,a3 ! 493: .dc.l $f2106c00 ! 494: @@: ! 495: bsr restore_fline ! 496: fmovem.l fpsr,d0 ! 497: rol.l #8,d0 ! 498: or.l d7,d0 ! 499: move.b d0,(a2)+ ! 500: ! 501: lea.l msg_test_m,a0 ! 502: moveq.l #7-1,d0 ! 503: bsr print_result ! 504: rts ! 505: ! 506: test_fmove_mi: ! 507: lea.l result(pc),a2 ! 508: ; FMOVE.B FPn,(An)+ ! 509: move.b #$0b,(a2)+ ! 510: fmovem.l #$0b000000,fpsr ! 511: bsr set_fline ! 512: moveq.l #0,d7 ! 513: lea.l workarea(pc),a0 ! 514: lea.l @f,a3 ! 515: .dc.l $f2187800 ! 516: @@: ! 517: bsr restore_fline ! 518: fmovem.l fpsr,d0 ! 519: rol.l #8,d0 ! 520: or.l d7,d0 ! 521: move.b d0,(a2)+ ! 522: ! 523: ; FMOVE.W FPn,(An)+ ! 524: move.b #$0b,(a2)+ ! 525: fmovem.l #$0b000000,fpsr ! 526: bsr set_fline ! 527: moveq.l #0,d7 ! 528: lea.l workarea(pc),a0 ! 529: lea.l @f,a3 ! 530: .dc.l $f2187000 ! 531: @@: ! 532: bsr restore_fline ! 533: fmovem.l fpsr,d0 ! 534: rol.l #8,d0 ! 535: or.l d7,d0 ! 536: move.b d0,(a2)+ ! 537: ! 538: ; FMOVE.L FPn,(An)+ ! 539: move.b #$0b,(a2)+ ! 540: fmovem.l #$0b000000,fpsr ! 541: bsr set_fline ! 542: moveq.l #0,d7 ! 543: lea.l workarea(pc),a0 ! 544: lea.l @f,a3 ! 545: .dc.l $f2186000 ! 546: @@: ! 547: bsr restore_fline ! 548: fmovem.l fpsr,d0 ! 549: rol.l #8,d0 ! 550: or.l d7,d0 ! 551: move.b d0,(a2)+ ! 552: ! 553: ; FMOVE.S FPn,(An)+ ! 554: move.b #$0b,(a2)+ ! 555: fmovem.l #$0b000000,fpsr ! 556: bsr set_fline ! 557: moveq.l #0,d7 ! 558: lea.l workarea(pc),a0 ! 559: lea.l @f,a3 ! 560: .dc.l $f2186400 ! 561: @@: ! 562: bsr restore_fline ! 563: fmovem.l fpsr,d0 ! 564: rol.l #8,d0 ! 565: or.l d7,d0 ! 566: move.b d0,(a2)+ ! 567: ! 568: ; FMOVE.D FPn,(An)+ ! 569: move.b #$0b,(a2)+ ! 570: fmovem.l #$0b000000,fpsr ! 571: bsr set_fline ! 572: moveq.l #0,d7 ! 573: lea.l workarea(pc),a0 ! 574: lea.l @f,a3 ! 575: .dc.l $f2187400 ! 576: @@: ! 577: bsr restore_fline ! 578: fmovem.l fpsr,d0 ! 579: rol.l #8,d0 ! 580: or.l d7,d0 ! 581: move.b d0,(a2)+ ! 582: ! 583: ; FMOVE.X FPn,(An)+ ! 584: move.b #$0b,(a2)+ ! 585: fmovem.l #$0b000000,fpsr ! 586: bsr set_fline ! 587: moveq.l #0,d7 ! 588: lea.l workarea(pc),a0 ! 589: lea.l @f,a3 ! 590: .dc.l $f2186800 ! 591: @@: ! 592: bsr restore_fline ! 593: fmovem.l fpsr,d0 ! 594: rol.l #8,d0 ! 595: or.l d7,d0 ! 596: move.b d0,(a2)+ ! 597: ! 598: ; FMOVE.P FPn,(An)+ ! 599: move.b #$0b,(a2)+ ! 600: fmovem.l #$0b000000,fpsr ! 601: bsr set_fline ! 602: moveq.l #0,d7 ! 603: lea.l workarea(pc),a0 ! 604: lea.l @f,a3 ! 605: .dc.l $f2186c00 ! 606: @@: ! 607: bsr restore_fline ! 608: fmovem.l fpsr,d0 ! 609: rol.l #8,d0 ! 610: or.l d7,d0 ! 611: move.b d0,(a2)+ ! 612: ! 613: lea.l msg_test_mi,a0 ! 614: moveq.l #7-1,d0 ! 615: bsr print_result ! 616: rts ! 617: ! 618: test_fmove_md: ! 619: lea.l result(pc),a2 ! 620: ; FMOVE.B FPn,-(An) ! 621: move.b #$0b,(a2)+ ! 622: fmovem.l #$0b000000,fpsr ! 623: bsr set_fline ! 624: moveq.l #0,d7 ! 625: lea.l workarea+12(pc),a0 ! 626: lea.l @f,a3 ! 627: .dc.l $f2207800 ! 628: @@: ! 629: bsr restore_fline ! 630: fmovem.l fpsr,d0 ! 631: rol.l #8,d0 ! 632: or.l d7,d0 ! 633: move.b d0,(a2)+ ! 634: ! 635: ; FMOVE.W FPn,-(An) ! 636: move.b #$0b,(a2)+ ! 637: fmovem.l #$0b000000,fpsr ! 638: bsr set_fline ! 639: moveq.l #0,d7 ! 640: lea.l workarea+12(pc),a0 ! 641: lea.l @f,a3 ! 642: .dc.l $f2207000 ! 643: @@: ! 644: bsr restore_fline ! 645: fmovem.l fpsr,d0 ! 646: rol.l #8,d0 ! 647: or.l d7,d0 ! 648: move.b d0,(a2)+ ! 649: ! 650: ; FMOVE.L FPn,-(An) ! 651: move.b #$0b,(a2)+ ! 652: fmovem.l #$0b000000,fpsr ! 653: bsr set_fline ! 654: moveq.l #0,d7 ! 655: lea.l workarea+12(pc),a0 ! 656: lea.l @f,a3 ! 657: .dc.l $f2206000 ! 658: @@: ! 659: bsr restore_fline ! 660: fmovem.l fpsr,d0 ! 661: rol.l #8,d0 ! 662: or.l d7,d0 ! 663: move.b d0,(a2)+ ! 664: ! 665: ; FMOVE.S FPn,-(An) ! 666: move.b #$0b,(a2)+ ! 667: fmovem.l #$0b000000,fpsr ! 668: bsr set_fline ! 669: moveq.l #0,d7 ! 670: lea.l workarea+12(pc),a0 ! 671: lea.l @f,a3 ! 672: .dc.l $f2206400 ! 673: @@: ! 674: bsr restore_fline ! 675: fmovem.l fpsr,d0 ! 676: rol.l #8,d0 ! 677: or.l d7,d0 ! 678: move.b d0,(a2)+ ! 679: ! 680: ; FMOVE.D FPn,-(An) ! 681: move.b #$0b,(a2)+ ! 682: fmovem.l #$0b000000,fpsr ! 683: bsr set_fline ! 684: moveq.l #0,d7 ! 685: lea.l workarea+12(pc),a0 ! 686: lea.l @f,a3 ! 687: .dc.l $f2207400 ! 688: @@: ! 689: bsr restore_fline ! 690: fmovem.l fpsr,d0 ! 691: rol.l #8,d0 ! 692: or.l d7,d0 ! 693: move.b d0,(a2)+ ! 694: ! 695: ; FMOVE.X FPn,-(An) ! 696: move.b #$0b,(a2)+ ! 697: fmovem.l #$0b000000,fpsr ! 698: bsr set_fline ! 699: moveq.l #0,d7 ! 700: lea.l workarea+12(pc),a0 ! 701: lea.l @f,a3 ! 702: .dc.l $f2206800 ! 703: @@: ! 704: bsr restore_fline ! 705: fmovem.l fpsr,d0 ! 706: rol.l #8,d0 ! 707: or.l d7,d0 ! 708: move.b d0,(a2)+ ! 709: ! 710: ; FMOVE.P FPn,-(An) ! 711: move.b #$0b,(a2)+ ! 712: fmovem.l #$0b000000,fpsr ! 713: bsr set_fline ! 714: moveq.l #0,d7 ! 715: lea.l workarea+12(pc),a0 ! 716: lea.l @f,a3 ! 717: .dc.l $f2206c00 ! 718: @@: ! 719: bsr restore_fline ! 720: fmovem.l fpsr,d0 ! 721: rol.l #8,d0 ! 722: or.l d7,d0 ! 723: move.b d0,(a2)+ ! 724: ! 725: lea.l msg_test_md,a0 ! 726: moveq.l #7-1,d0 ! 727: bsr print_result ! 728: rts ! 729: ! 730: test_fmove_r: ! 731: lea.l result(pc),a2 ! 732: ; FMOVE.B FPn,d16(An) ! 733: move.b #$0b,(a2)+ ! 734: fmovem.l #$0b000000,fpsr ! 735: bsr set_fline ! 736: moveq.l #0,d7 ! 737: lea.l workarea(pc),a0 ! 738: lea.l @f,a3 ! 739: .dc.l $f2287800 ! 740: .dc.w $0000 ! 741: @@: ! 742: bsr restore_fline ! 743: fmovem.l fpsr,d0 ! 744: rol.l #8,d0 ! 745: or.l d7,d0 ! 746: move.b d0,(a2)+ ! 747: ! 748: ; FMOVE.W FPn,d16(An) ! 749: move.b #$0b,(a2)+ ! 750: fmovem.l #$0b000000,fpsr ! 751: bsr set_fline ! 752: moveq.l #0,d7 ! 753: lea.l workarea(pc),a0 ! 754: lea.l @f,a3 ! 755: .dc.l $f2287000 ! 756: .dc.w $0000 ! 757: @@: ! 758: bsr restore_fline ! 759: fmovem.l fpsr,d0 ! 760: rol.l #8,d0 ! 761: or.l d7,d0 ! 762: move.b d0,(a2)+ ! 763: ! 764: ; FMOVE.L FPn,d16(An) ! 765: move.b #$0b,(a2)+ ! 766: fmovem.l #$0b000000,fpsr ! 767: bsr set_fline ! 768: moveq.l #0,d7 ! 769: lea.l workarea(pc),a0 ! 770: lea.l @f,a3 ! 771: .dc.l $f2286000 ! 772: .dc.w $0000 ! 773: @@: ! 774: bsr restore_fline ! 775: fmovem.l fpsr,d0 ! 776: rol.l #8,d0 ! 777: or.l d7,d0 ! 778: move.b d0,(a2)+ ! 779: ! 780: ; FMOVE.S FPn,d16(An) ! 781: move.b #$0b,(a2)+ ! 782: fmovem.l #$0b000000,fpsr ! 783: bsr set_fline ! 784: moveq.l #0,d7 ! 785: lea.l workarea(pc),a0 ! 786: lea.l @f,a3 ! 787: .dc.l $f2286400 ! 788: .dc.w $0000 ! 789: @@: ! 790: bsr restore_fline ! 791: fmovem.l fpsr,d0 ! 792: rol.l #8,d0 ! 793: or.l d7,d0 ! 794: move.b d0,(a2)+ ! 795: ! 796: ; FMOVE.D FPn,d16(An) ! 797: move.b #$0b,(a2)+ ! 798: fmovem.l #$0b000000,fpsr ! 799: bsr set_fline ! 800: moveq.l #0,d7 ! 801: lea.l workarea(pc),a0 ! 802: lea.l @f,a3 ! 803: .dc.l $f2287400 ! 804: .dc.w $0000 ! 805: @@: ! 806: bsr restore_fline ! 807: fmovem.l fpsr,d0 ! 808: rol.l #8,d0 ! 809: or.l d7,d0 ! 810: move.b d0,(a2)+ ! 811: ! 812: ; FMOVE.X FPn,d16(An) ! 813: move.b #$0b,(a2)+ ! 814: fmovem.l #$0b000000,fpsr ! 815: bsr set_fline ! 816: moveq.l #0,d7 ! 817: lea.l workarea(pc),a0 ! 818: lea.l @f,a3 ! 819: .dc.l $f2286800 ! 820: .dc.w $0000 ! 821: @@: ! 822: bsr restore_fline ! 823: fmovem.l fpsr,d0 ! 824: rol.l #8,d0 ! 825: or.l d7,d0 ! 826: move.b d0,(a2)+ ! 827: ! 828: ; FMOVE.P FPn,d16(An) ! 829: move.b #$0b,(a2)+ ! 830: fmovem.l #$0b000000,fpsr ! 831: bsr set_fline ! 832: moveq.l #0,d7 ! 833: lea.l workarea(pc),a0 ! 834: lea.l @f,a3 ! 835: .dc.l $f2286c00 ! 836: .dc.w $0000 ! 837: @@: ! 838: bsr restore_fline ! 839: fmovem.l fpsr,d0 ! 840: rol.l #8,d0 ! 841: or.l d7,d0 ! 842: move.b d0,(a2)+ ! 843: ! 844: lea.l msg_test_r,a0 ! 845: moveq.l #7-1,d0 ! 846: bsr print_result ! 847: rts ! 848: ! 849: test_fmove_x: ! 850: lea.l result(pc),a2 ! 851: ; FMOVE.B FPn,d8(An,IX) ! 852: move.b #$0b,(a2)+ ! 853: fmovem.l #$0b000000,fpsr ! 854: bsr set_fline ! 855: moveq.l #0,d7 ! 856: moveq.l #0,d4 ! 857: lea.l workarea(pc),a0 ! 858: lea.l @f,a3 ! 859: .dc.l $f2307800 ! 860: .dc.w $4000 ! 861: @@: ! 862: bsr restore_fline ! 863: fmovem.l fpsr,d0 ! 864: rol.l #8,d0 ! 865: or.l d7,d0 ! 866: move.b d0,(a2)+ ! 867: ! 868: ; FMOVE.W FPn,d8(An,IX) ! 869: move.b #$0b,(a2)+ ! 870: fmovem.l #$0b000000,fpsr ! 871: bsr set_fline ! 872: moveq.l #0,d7 ! 873: moveq.l #0,d4 ! 874: lea.l workarea(pc),a0 ! 875: lea.l @f,a3 ! 876: .dc.l $f2307000 ! 877: .dc.w $4000 ! 878: @@: ! 879: bsr restore_fline ! 880: fmovem.l fpsr,d0 ! 881: rol.l #8,d0 ! 882: or.l d7,d0 ! 883: move.b d0,(a2)+ ! 884: ! 885: ; FMOVE.L FPn,d8(An,IX) ! 886: move.b #$0b,(a2)+ ! 887: fmovem.l #$0b000000,fpsr ! 888: bsr set_fline ! 889: moveq.l #0,d7 ! 890: moveq.l #0,d4 ! 891: lea.l workarea(pc),a0 ! 892: lea.l @f,a3 ! 893: .dc.l $f2306000 ! 894: .dc.w $4000 ! 895: @@: ! 896: bsr restore_fline ! 897: fmovem.l fpsr,d0 ! 898: rol.l #8,d0 ! 899: or.l d7,d0 ! 900: move.b d0,(a2)+ ! 901: ! 902: ; FMOVE.S FPn,d8(An,IX) ! 903: move.b #$0b,(a2)+ ! 904: fmovem.l #$0b000000,fpsr ! 905: bsr set_fline ! 906: moveq.l #0,d7 ! 907: moveq.l #0,d4 ! 908: lea.l workarea(pc),a0 ! 909: lea.l @f,a3 ! 910: .dc.l $f2306400 ! 911: .dc.w $4000 ! 912: @@: ! 913: bsr restore_fline ! 914: fmovem.l fpsr,d0 ! 915: rol.l #8,d0 ! 916: or.l d7,d0 ! 917: move.b d0,(a2)+ ! 918: ! 919: ; FMOVE.D FPn,d8(An,IX) ! 920: move.b #$0b,(a2)+ ! 921: fmovem.l #$0b000000,fpsr ! 922: bsr set_fline ! 923: moveq.l #0,d7 ! 924: moveq.l #0,d4 ! 925: lea.l workarea(pc),a0 ! 926: lea.l @f,a3 ! 927: .dc.l $f2307400 ! 928: .dc.w $4000 ! 929: @@: ! 930: bsr restore_fline ! 931: fmovem.l fpsr,d0 ! 932: rol.l #8,d0 ! 933: or.l d7,d0 ! 934: move.b d0,(a2)+ ! 935: ! 936: ; FMOVE.X FPn,d8(An,IX) ! 937: move.b #$0b,(a2)+ ! 938: fmovem.l #$0b000000,fpsr ! 939: bsr set_fline ! 940: moveq.l #0,d7 ! 941: moveq.l #0,d4 ! 942: lea.l workarea(pc),a0 ! 943: lea.l @f,a3 ! 944: .dc.l $f2306800 ! 945: .dc.w $4000 ! 946: @@: ! 947: bsr restore_fline ! 948: fmovem.l fpsr,d0 ! 949: rol.l #8,d0 ! 950: or.l d7,d0 ! 951: move.b d0,(a2)+ ! 952: ! 953: ; FMOVE.P FPn,d8(An,IX) ! 954: move.b #$0b,(a2)+ ! 955: fmovem.l #$0b000000,fpsr ! 956: bsr set_fline ! 957: moveq.l #0,d7 ! 958: moveq.l #0,d4 ! 959: lea.l workarea(pc),a0 ! 960: lea.l @f,a3 ! 961: .dc.l $f2306c00 ! 962: .dc.w $4000 ! 963: @@: ! 964: bsr restore_fline ! 965: fmovem.l fpsr,d0 ! 966: rol.l #8,d0 ! 967: or.l d7,d0 ! 968: move.b d0,(a2)+ ! 969: ! 970: lea.l msg_test_x,a0 ! 971: moveq.l #7-1,d0 ! 972: bsr print_result ! 973: rts ! 974: ! 975: test_fmove_p: ! 976: lea.l result(pc),a2 ! 977: ; FMOVE.B FPn,(PC) ! 978: move.b #$1b,(a2)+ ! 979: fmovem.l #$0b000000,fpsr ! 980: bsr set_fline ! 981: moveq.l #0,d7 ! 982: lea.l @f,a3 ! 983: .dc.l $f23a7800 ! 984: @@: ! 985: bsr restore_fline ! 986: fmovem.l fpsr,d0 ! 987: rol.l #8,d0 ! 988: or.l d7,d0 ! 989: move.b d0,(a2)+ ! 990: ! 991: ; FMOVE.W FPn,(PC) ! 992: move.b #$1b,(a2)+ ! 993: fmovem.l #$0b000000,fpsr ! 994: bsr set_fline ! 995: moveq.l #0,d7 ! 996: lea.l @f,a3 ! 997: .dc.l $f23a7000 ! 998: @@: ! 999: bsr restore_fline ! 1000: fmovem.l fpsr,d0 ! 1001: rol.l #8,d0 ! 1002: or.l d7,d0 ! 1003: move.b d0,(a2)+ ! 1004: ! 1005: ; FMOVE.L FPn,(PC) ! 1006: move.b #$1b,(a2)+ ! 1007: fmovem.l #$0b000000,fpsr ! 1008: bsr set_fline ! 1009: moveq.l #0,d7 ! 1010: lea.l @f,a3 ! 1011: .dc.l $f23a6000 ! 1012: @@: ! 1013: bsr restore_fline ! 1014: fmovem.l fpsr,d0 ! 1015: rol.l #8,d0 ! 1016: or.l d7,d0 ! 1017: move.b d0,(a2)+ ! 1018: ! 1019: ; FMOVE.S FPn,(PC) ! 1020: move.b #$1b,(a2)+ ! 1021: fmovem.l #$0b000000,fpsr ! 1022: bsr set_fline ! 1023: moveq.l #0,d7 ! 1024: lea.l @f,a3 ! 1025: .dc.l $f23a6400 ! 1026: @@: ! 1027: bsr restore_fline ! 1028: fmovem.l fpsr,d0 ! 1029: rol.l #8,d0 ! 1030: or.l d7,d0 ! 1031: move.b d0,(a2)+ ! 1032: ! 1033: ; FMOVE.D FPn,(PC) ! 1034: move.b #$1b,(a2)+ ! 1035: fmovem.l #$0b000000,fpsr ! 1036: bsr set_fline ! 1037: moveq.l #0,d7 ! 1038: lea.l @f,a3 ! 1039: .dc.l $f23a7400 ! 1040: @@: ! 1041: bsr restore_fline ! 1042: fmovem.l fpsr,d0 ! 1043: rol.l #8,d0 ! 1044: or.l d7,d0 ! 1045: move.b d0,(a2)+ ! 1046: ! 1047: ; FMOVE.X FPn,(PC) ! 1048: move.b #$1b,(a2)+ ! 1049: fmovem.l #$0b000000,fpsr ! 1050: bsr set_fline ! 1051: moveq.l #0,d7 ! 1052: lea.l @f,a3 ! 1053: .dc.l $f23a6800 ! 1054: @@: ! 1055: bsr restore_fline ! 1056: fmovem.l fpsr,d0 ! 1057: rol.l #8,d0 ! 1058: or.l d7,d0 ! 1059: move.b d0,(a2)+ ! 1060: ! 1061: ; FMOVE.P FPn,(PC) ! 1062: move.b #$1b,(a2)+ ! 1063: fmovem.l #$0b000000,fpsr ! 1064: bsr set_fline ! 1065: moveq.l #0,d7 ! 1066: lea.l @f,a3 ! 1067: .dc.l $f23a6c00 ! 1068: @@: ! 1069: bsr restore_fline ! 1070: fmovem.l fpsr,d0 ! 1071: rol.l #8,d0 ! 1072: or.l d7,d0 ! 1073: move.b d0,(a2)+ ! 1074: ! 1075: lea.l msg_test_p,a0 ! 1076: moveq.l #7-1,d0 ! 1077: bsr print_result ! 1078: rts ! 1079: ! 1080: test_fmove_i: ! 1081: lea.l result(pc),a2 ! 1082: ; FMOVE.B FPn,#imm ! 1083: move.b #$1b,(a2)+ ! 1084: fmovem.l #$0b000000,fpsr ! 1085: bsr set_fline ! 1086: moveq.l #0,d7 ! 1087: lea.l @f,a3 ! 1088: .dc.l $f23c7800 ! 1089: @@: ! 1090: bsr restore_fline ! 1091: fmovem.l fpsr,d0 ! 1092: rol.l #8,d0 ! 1093: or.l d7,d0 ! 1094: move.b d0,(a2)+ ! 1095: ! 1096: ; FMOVE.W FPn,#imm ! 1097: move.b #$1b,(a2)+ ! 1098: fmovem.l #$0b000000,fpsr ! 1099: bsr set_fline ! 1100: moveq.l #0,d7 ! 1101: lea.l @f,a3 ! 1102: .dc.l $f23c7000 ! 1103: @@: ! 1104: bsr restore_fline ! 1105: fmovem.l fpsr,d0 ! 1106: rol.l #8,d0 ! 1107: or.l d7,d0 ! 1108: move.b d0,(a2)+ ! 1109: ! 1110: ; FMOVE.L FPn,#imm ! 1111: move.b #$1b,(a2)+ ! 1112: fmovem.l #$0b000000,fpsr ! 1113: bsr set_fline ! 1114: moveq.l #0,d7 ! 1115: lea.l @f,a3 ! 1116: .dc.l $f23c6000 ! 1117: @@: ! 1118: bsr restore_fline ! 1119: fmovem.l fpsr,d0 ! 1120: rol.l #8,d0 ! 1121: or.l d7,d0 ! 1122: move.b d0,(a2)+ ! 1123: ! 1124: ; FMOVE.S FPn,#imm ! 1125: move.b #$1b,(a2)+ ! 1126: fmovem.l #$0b000000,fpsr ! 1127: bsr set_fline ! 1128: moveq.l #0,d7 ! 1129: lea.l @f,a3 ! 1130: .dc.l $f23c6400 ! 1131: @@: ! 1132: bsr restore_fline ! 1133: fmovem.l fpsr,d0 ! 1134: rol.l #8,d0 ! 1135: or.l d7,d0 ! 1136: move.b d0,(a2)+ ! 1137: ! 1138: ; FMOVE.D FPn,#imm ! 1139: move.b #$1b,(a2)+ ! 1140: fmovem.l #$0b000000,fpsr ! 1141: bsr set_fline ! 1142: moveq.l #0,d7 ! 1143: lea.l @f,a3 ! 1144: .dc.l $f23c7400 ! 1145: @@: ! 1146: bsr restore_fline ! 1147: fmovem.l fpsr,d0 ! 1148: rol.l #8,d0 ! 1149: or.l d7,d0 ! 1150: move.b d0,(a2)+ ! 1151: ! 1152: ; FMOVE.X FPn,#imm ! 1153: move.b #$1b,(a2)+ ! 1154: fmovem.l #$0b000000,fpsr ! 1155: bsr set_fline ! 1156: moveq.l #0,d7 ! 1157: lea.l @f,a3 ! 1158: .dc.l $f23c6800 ! 1159: @@: ! 1160: bsr restore_fline ! 1161: fmovem.l fpsr,d0 ! 1162: rol.l #8,d0 ! 1163: or.l d7,d0 ! 1164: move.b d0,(a2)+ ! 1165: ! 1166: ; FMOVE.P FPn,#imm ! 1167: move.b #$1b,(a2)+ ! 1168: fmovem.l #$0b000000,fpsr ! 1169: bsr set_fline ! 1170: moveq.l #0,d7 ! 1171: lea.l @f,a3 ! 1172: .dc.l $f23c6c00 ! 1173: @@: ! 1174: bsr restore_fline ! 1175: fmovem.l fpsr,d0 ! 1176: rol.l #8,d0 ! 1177: or.l d7,d0 ! 1178: move.b d0,(a2)+ ! 1179: ! 1180: lea.l msg_test_i,a0 ! 1181: moveq.l #7-1,d0 ! 1182: bsr print_result ! 1183: rts ! 1184: ! 1185: test_fmove_o: ! 1186: lea.l result(pc),a2 ! 1187: ; FMOVE.B FPn,075 ! 1188: move.b #$1b,(a2)+ ! 1189: fmovem.l #$0b000000,fpsr ! 1190: bsr set_fline ! 1191: moveq.l #0,d7 ! 1192: lea.l @f,a3 ! 1193: .dc.l $f23d7800 ! 1194: @@: ! 1195: bsr restore_fline ! 1196: fmovem.l fpsr,d0 ! 1197: rol.l #8,d0 ! 1198: or.l d7,d0 ! 1199: move.b d0,(a2)+ ! 1200: ! 1201: ; FMOVE.W FPn,075 ! 1202: move.b #$1b,(a2)+ ! 1203: fmovem.l #$0b000000,fpsr ! 1204: bsr set_fline ! 1205: moveq.l #0,d7 ! 1206: lea.l @f,a3 ! 1207: .dc.l $f23d7000 ! 1208: @@: ! 1209: bsr restore_fline ! 1210: fmovem.l fpsr,d0 ! 1211: rol.l #8,d0 ! 1212: or.l d7,d0 ! 1213: move.b d0,(a2)+ ! 1214: ! 1215: ; FMOVE.L FPn,075 ! 1216: move.b #$1b,(a2)+ ! 1217: fmovem.l #$0b000000,fpsr ! 1218: bsr set_fline ! 1219: moveq.l #0,d7 ! 1220: lea.l @f,a3 ! 1221: .dc.l $f23d6000 ! 1222: @@: ! 1223: bsr restore_fline ! 1224: fmovem.l fpsr,d0 ! 1225: rol.l #8,d0 ! 1226: or.l d7,d0 ! 1227: move.b d0,(a2)+ ! 1228: ! 1229: ; FMOVE.S FPn,075 ! 1230: move.b #$1b,(a2)+ ! 1231: fmovem.l #$0b000000,fpsr ! 1232: bsr set_fline ! 1233: moveq.l #0,d7 ! 1234: lea.l @f,a3 ! 1235: .dc.l $f23d6400 ! 1236: @@: ! 1237: bsr restore_fline ! 1238: fmovem.l fpsr,d0 ! 1239: rol.l #8,d0 ! 1240: or.l d7,d0 ! 1241: move.b d0,(a2)+ ! 1242: ! 1243: ; FMOVE.D FPn,075 ! 1244: move.b #$1b,(a2)+ ! 1245: fmovem.l #$0b000000,fpsr ! 1246: bsr set_fline ! 1247: moveq.l #0,d7 ! 1248: lea.l @f,a3 ! 1249: .dc.l $f23d7400 ! 1250: @@: ! 1251: bsr restore_fline ! 1252: fmovem.l fpsr,d0 ! 1253: rol.l #8,d0 ! 1254: or.l d7,d0 ! 1255: move.b d0,(a2)+ ! 1256: ! 1257: ; FMOVE.X FPn,075 ! 1258: move.b #$1b,(a2)+ ! 1259: fmovem.l #$0b000000,fpsr ! 1260: bsr set_fline ! 1261: moveq.l #0,d7 ! 1262: lea.l @f,a3 ! 1263: .dc.l $f23d6800 ! 1264: @@: ! 1265: bsr restore_fline ! 1266: fmovem.l fpsr,d0 ! 1267: rol.l #8,d0 ! 1268: or.l d7,d0 ! 1269: move.b d0,(a2)+ ! 1270: ! 1271: ; FMOVE.P FPn,075 ! 1272: move.b #$1b,(a2)+ ! 1273: fmovem.l #$0b000000,fpsr ! 1274: bsr set_fline ! 1275: moveq.l #0,d7 ! 1276: lea.l @f,a3 ! 1277: .dc.l $f23d6c00 ! 1278: @@: ! 1279: bsr restore_fline ! 1280: fmovem.l fpsr,d0 ! 1281: rol.l #8,d0 ! 1282: or.l d7,d0 ! 1283: move.b d0,(a2)+ ! 1284: ! 1285: lea.l msg_test_o,a0 ! 1286: moveq.l #7-1,d0 ! 1287: bsr print_result ! 1288: rts ! 1289: ! 1290: test_fgen_d: ! 1291: lea.l result(pc),a2 ! 1292: ; Fgen.B Dn,FPn ! 1293: move.b #$04,(a2)+ ! 1294: fmovem.l #$0b000000,fpsr ! 1295: bsr set_fline ! 1296: moveq.l #0,d7 ! 1297: moveq.l #0,d6 ! 1298: lea.l @f,a3 ! 1299: .dc.l $f2065800 ! 1300: @@: ! 1301: bsr restore_fline ! 1302: fmovem.l fpsr,d0 ! 1303: rol.l #8,d0 ! 1304: or.l d7,d0 ! 1305: move.b d0,(a2)+ ! 1306: ! 1307: ; Fgen.W Dn,FPn ! 1308: move.b #$04,(a2)+ ! 1309: fmovem.l #$0b000000,fpsr ! 1310: bsr set_fline ! 1311: moveq.l #0,d7 ! 1312: moveq.l #0,d6 ! 1313: lea.l @f,a3 ! 1314: .dc.l $f2065000 ! 1315: @@: ! 1316: bsr restore_fline ! 1317: fmovem.l fpsr,d0 ! 1318: rol.l #8,d0 ! 1319: or.l d7,d0 ! 1320: move.b d0,(a2)+ ! 1321: ! 1322: ; Fgen.L Dn,FPn ! 1323: move.b #$04,(a2)+ ! 1324: fmovem.l #$0b000000,fpsr ! 1325: bsr set_fline ! 1326: moveq.l #0,d7 ! 1327: moveq.l #0,d6 ! 1328: lea.l @f,a3 ! 1329: .dc.l $f2064000 ! 1330: @@: ! 1331: bsr restore_fline ! 1332: fmovem.l fpsr,d0 ! 1333: rol.l #8,d0 ! 1334: or.l d7,d0 ! 1335: move.b d0,(a2)+ ! 1336: ! 1337: ; Fgen.S Dn,FPn ! 1338: move.b #$04,(a2)+ ! 1339: fmovem.l #$0b000000,fpsr ! 1340: bsr set_fline ! 1341: moveq.l #0,d7 ! 1342: moveq.l #0,d6 ! 1343: lea.l @f,a3 ! 1344: .dc.l $f2064400 ! 1345: @@: ! 1346: bsr restore_fline ! 1347: fmovem.l fpsr,d0 ! 1348: rol.l #8,d0 ! 1349: or.l d7,d0 ! 1350: move.b d0,(a2)+ ! 1351: ! 1352: ; Fgen.D Dn,FPn ! 1353: move.b #$1b,(a2)+ ! 1354: fmovem.l #$0b000000,fpsr ! 1355: bsr set_fline ! 1356: moveq.l #0,d7 ! 1357: moveq.l #0,d6 ! 1358: lea.l @f,a3 ! 1359: .dc.l $f2065400 ! 1360: @@: ! 1361: bsr restore_fline ! 1362: fmovem.l fpsr,d0 ! 1363: rol.l #8,d0 ! 1364: or.l d7,d0 ! 1365: move.b d0,(a2)+ ! 1366: ! 1367: ; Fgen.X Dn,FPn ! 1368: move.b #$1b,(a2)+ ! 1369: fmovem.l #$0b000000,fpsr ! 1370: bsr set_fline ! 1371: moveq.l #0,d7 ! 1372: moveq.l #0,d6 ! 1373: lea.l @f,a3 ! 1374: .dc.l $f2064800 ! 1375: @@: ! 1376: bsr restore_fline ! 1377: fmovem.l fpsr,d0 ! 1378: rol.l #8,d0 ! 1379: or.l d7,d0 ! 1380: move.b d0,(a2)+ ! 1381: ! 1382: ; Fgen.P Dn,FPn ! 1383: move.b #$1b,(a2)+ ! 1384: fmovem.l #$0b000000,fpsr ! 1385: bsr set_fline ! 1386: moveq.l #0,d7 ! 1387: moveq.l #0,d6 ! 1388: lea.l @f,a3 ! 1389: .dc.l $f2064c00 ! 1390: @@: ! 1391: bsr restore_fline ! 1392: fmovem.l fpsr,d0 ! 1393: rol.l #8,d0 ! 1394: or.l d7,d0 ! 1395: move.b d0,(a2)+ ! 1396: ! 1397: lea.l msg_test_d,a0 ! 1398: moveq.l #7-1,d0 ! 1399: bsr print_result ! 1400: rts ! 1401: ! 1402: test_fgen_a: ! 1403: lea.l result(pc),a2 ! 1404: ; Fgen.B An,FPn ! 1405: move.b #$1b,(a2)+ ! 1406: fmovem.l #$0b000000,fpsr ! 1407: bsr set_fline ! 1408: moveq.l #0,d7 ! 1409: lea.l @f,a3 ! 1410: .dc.l $f2085800 ! 1411: @@: ! 1412: bsr restore_fline ! 1413: fmovem.l fpsr,d0 ! 1414: rol.l #8,d0 ! 1415: or.l d7,d0 ! 1416: move.b d0,(a2)+ ! 1417: ! 1418: ; Fgen.W An,FPn ! 1419: move.b #$1b,(a2)+ ! 1420: fmovem.l #$0b000000,fpsr ! 1421: bsr set_fline ! 1422: moveq.l #0,d7 ! 1423: lea.l @f,a3 ! 1424: .dc.l $f2085000 ! 1425: @@: ! 1426: bsr restore_fline ! 1427: fmovem.l fpsr,d0 ! 1428: rol.l #8,d0 ! 1429: or.l d7,d0 ! 1430: move.b d0,(a2)+ ! 1431: ! 1432: ; Fgen.L An,FPn ! 1433: move.b #$1b,(a2)+ ! 1434: fmovem.l #$0b000000,fpsr ! 1435: bsr set_fline ! 1436: moveq.l #0,d7 ! 1437: lea.l @f,a3 ! 1438: .dc.l $f2084000 ! 1439: @@: ! 1440: bsr restore_fline ! 1441: fmovem.l fpsr,d0 ! 1442: rol.l #8,d0 ! 1443: or.l d7,d0 ! 1444: move.b d0,(a2)+ ! 1445: ! 1446: ; Fgen.S An,FPn ! 1447: move.b #$1b,(a2)+ ! 1448: fmovem.l #$0b000000,fpsr ! 1449: bsr set_fline ! 1450: moveq.l #0,d7 ! 1451: lea.l @f,a3 ! 1452: .dc.l $f2084400 ! 1453: @@: ! 1454: bsr restore_fline ! 1455: fmovem.l fpsr,d0 ! 1456: rol.l #8,d0 ! 1457: or.l d7,d0 ! 1458: move.b d0,(a2)+ ! 1459: ! 1460: ; Fgen.D An,FPn ! 1461: move.b #$1b,(a2)+ ! 1462: fmovem.l #$0b000000,fpsr ! 1463: bsr set_fline ! 1464: moveq.l #0,d7 ! 1465: lea.l @f,a3 ! 1466: .dc.l $f2085400 ! 1467: @@: ! 1468: bsr restore_fline ! 1469: fmovem.l fpsr,d0 ! 1470: rol.l #8,d0 ! 1471: or.l d7,d0 ! 1472: move.b d0,(a2)+ ! 1473: ! 1474: ; Fgen.X An,FPn ! 1475: move.b #$1b,(a2)+ ! 1476: fmovem.l #$0b000000,fpsr ! 1477: bsr set_fline ! 1478: moveq.l #0,d7 ! 1479: lea.l @f,a3 ! 1480: .dc.l $f2084800 ! 1481: @@: ! 1482: bsr restore_fline ! 1483: fmovem.l fpsr,d0 ! 1484: rol.l #8,d0 ! 1485: or.l d7,d0 ! 1486: move.b d0,(a2)+ ! 1487: ! 1488: ; Fgen.P An,FPn ! 1489: move.b #$1b,(a2)+ ! 1490: fmovem.l #$0b000000,fpsr ! 1491: bsr set_fline ! 1492: moveq.l #0,d7 ! 1493: lea.l @f,a3 ! 1494: .dc.l $f2084c00 ! 1495: @@: ! 1496: bsr restore_fline ! 1497: fmovem.l fpsr,d0 ! 1498: rol.l #8,d0 ! 1499: or.l d7,d0 ! 1500: move.b d0,(a2)+ ! 1501: ! 1502: lea.l msg_test_a,a0 ! 1503: moveq.l #7-1,d0 ! 1504: bsr print_result ! 1505: rts ! 1506: ! 1507: test_fgen_m: ! 1508: lea.l result(pc),a2 ! 1509: ; Fgen.B (An),FPn ! 1510: move.b #$04,(a2)+ ! 1511: fmovem.l #$0b000000,fpsr ! 1512: bsr set_fline ! 1513: moveq.l #0,d7 ! 1514: lea.l workarea+12(pc),a0 ! 1515: move.l d7,-(a0) ! 1516: move.l d7,-(a0) ! 1517: move.l d7,-(a0) ! 1518: lea.l @f,a3 ! 1519: .dc.l $f2105800 ! 1520: @@: ! 1521: bsr restore_fline ! 1522: fmovem.l fpsr,d0 ! 1523: rol.l #8,d0 ! 1524: or.l d7,d0 ! 1525: move.b d0,(a2)+ ! 1526: ! 1527: ; Fgen.W (An),FPn ! 1528: move.b #$04,(a2)+ ! 1529: fmovem.l #$0b000000,fpsr ! 1530: bsr set_fline ! 1531: moveq.l #0,d7 ! 1532: lea.l workarea+12(pc),a0 ! 1533: move.l d7,-(a0) ! 1534: move.l d7,-(a0) ! 1535: move.l d7,-(a0) ! 1536: lea.l @f,a3 ! 1537: .dc.l $f2105000 ! 1538: @@: ! 1539: bsr restore_fline ! 1540: fmovem.l fpsr,d0 ! 1541: rol.l #8,d0 ! 1542: or.l d7,d0 ! 1543: move.b d0,(a2)+ ! 1544: ! 1545: ; Fgen.L (An),FPn ! 1546: move.b #$04,(a2)+ ! 1547: fmovem.l #$0b000000,fpsr ! 1548: bsr set_fline ! 1549: moveq.l #0,d7 ! 1550: lea.l workarea+12(pc),a0 ! 1551: move.l d7,-(a0) ! 1552: move.l d7,-(a0) ! 1553: move.l d7,-(a0) ! 1554: lea.l @f,a3 ! 1555: .dc.l $f2104000 ! 1556: @@: ! 1557: bsr restore_fline ! 1558: fmovem.l fpsr,d0 ! 1559: rol.l #8,d0 ! 1560: or.l d7,d0 ! 1561: move.b d0,(a2)+ ! 1562: ! 1563: ; Fgen.S (An),FPn ! 1564: move.b #$04,(a2)+ ! 1565: fmovem.l #$0b000000,fpsr ! 1566: bsr set_fline ! 1567: moveq.l #0,d7 ! 1568: lea.l workarea+12(pc),a0 ! 1569: move.l d7,-(a0) ! 1570: move.l d7,-(a0) ! 1571: move.l d7,-(a0) ! 1572: lea.l @f,a3 ! 1573: .dc.l $f2104400 ! 1574: @@: ! 1575: bsr restore_fline ! 1576: fmovem.l fpsr,d0 ! 1577: rol.l #8,d0 ! 1578: or.l d7,d0 ! 1579: move.b d0,(a2)+ ! 1580: ! 1581: ; Fgen.D (An),FPn ! 1582: move.b #$04,(a2)+ ! 1583: fmovem.l #$0b000000,fpsr ! 1584: bsr set_fline ! 1585: moveq.l #0,d7 ! 1586: lea.l workarea+12(pc),a0 ! 1587: move.l d7,-(a0) ! 1588: move.l d7,-(a0) ! 1589: move.l d7,-(a0) ! 1590: lea.l @f,a3 ! 1591: .dc.l $f2105400 ! 1592: @@: ! 1593: bsr restore_fline ! 1594: fmovem.l fpsr,d0 ! 1595: rol.l #8,d0 ! 1596: or.l d7,d0 ! 1597: move.b d0,(a2)+ ! 1598: ! 1599: ; Fgen.X (An),FPn ! 1600: move.b #$04,(a2)+ ! 1601: fmovem.l #$0b000000,fpsr ! 1602: bsr set_fline ! 1603: moveq.l #0,d7 ! 1604: lea.l workarea+12(pc),a0 ! 1605: move.l d7,-(a0) ! 1606: move.l d7,-(a0) ! 1607: move.l d7,-(a0) ! 1608: lea.l @f,a3 ! 1609: .dc.l $f2104800 ! 1610: @@: ! 1611: bsr restore_fline ! 1612: fmovem.l fpsr,d0 ! 1613: rol.l #8,d0 ! 1614: or.l d7,d0 ! 1615: move.b d0,(a2)+ ! 1616: ! 1617: ; Fgen.P (An),FPn ! 1618: move.b #$04,(a2)+ ! 1619: fmovem.l #$0b000000,fpsr ! 1620: bsr set_fline ! 1621: moveq.l #0,d7 ! 1622: lea.l workarea+12(pc),a0 ! 1623: move.l d7,-(a0) ! 1624: move.l d7,-(a0) ! 1625: move.l d7,-(a0) ! 1626: lea.l @f,a3 ! 1627: .dc.l $f2104c00 ! 1628: @@: ! 1629: bsr restore_fline ! 1630: fmovem.l fpsr,d0 ! 1631: rol.l #8,d0 ! 1632: or.l d7,d0 ! 1633: move.b d0,(a2)+ ! 1634: ! 1635: lea.l msg_test_m,a0 ! 1636: moveq.l #7-1,d0 ! 1637: bsr print_result ! 1638: rts ! 1639: ! 1640: test_fgen_mi: ! 1641: lea.l result(pc),a2 ! 1642: ; Fgen.B (An)+,FPn ! 1643: move.b #$04,(a2)+ ! 1644: fmovem.l #$0b000000,fpsr ! 1645: bsr set_fline ! 1646: moveq.l #0,d7 ! 1647: lea.l workarea+12(pc),a0 ! 1648: move.l d7,-(a0) ! 1649: move.l d7,-(a0) ! 1650: move.l d7,-(a0) ! 1651: lea.l @f,a3 ! 1652: .dc.l $f2185800 ! 1653: @@: ! 1654: bsr restore_fline ! 1655: fmovem.l fpsr,d0 ! 1656: rol.l #8,d0 ! 1657: or.l d7,d0 ! 1658: move.b d0,(a2)+ ! 1659: ! 1660: ; Fgen.W (An)+,FPn ! 1661: move.b #$04,(a2)+ ! 1662: fmovem.l #$0b000000,fpsr ! 1663: bsr set_fline ! 1664: moveq.l #0,d7 ! 1665: lea.l workarea+12(pc),a0 ! 1666: move.l d7,-(a0) ! 1667: move.l d7,-(a0) ! 1668: move.l d7,-(a0) ! 1669: lea.l @f,a3 ! 1670: .dc.l $f2185000 ! 1671: @@: ! 1672: bsr restore_fline ! 1673: fmovem.l fpsr,d0 ! 1674: rol.l #8,d0 ! 1675: or.l d7,d0 ! 1676: move.b d0,(a2)+ ! 1677: ! 1678: ; Fgen.L (An)+,FPn ! 1679: move.b #$04,(a2)+ ! 1680: fmovem.l #$0b000000,fpsr ! 1681: bsr set_fline ! 1682: moveq.l #0,d7 ! 1683: lea.l workarea+12(pc),a0 ! 1684: move.l d7,-(a0) ! 1685: move.l d7,-(a0) ! 1686: move.l d7,-(a0) ! 1687: lea.l @f,a3 ! 1688: .dc.l $f2184000 ! 1689: @@: ! 1690: bsr restore_fline ! 1691: fmovem.l fpsr,d0 ! 1692: rol.l #8,d0 ! 1693: or.l d7,d0 ! 1694: move.b d0,(a2)+ ! 1695: ! 1696: ; Fgen.S (An)+,FPn ! 1697: move.b #$04,(a2)+ ! 1698: fmovem.l #$0b000000,fpsr ! 1699: bsr set_fline ! 1700: moveq.l #0,d7 ! 1701: lea.l workarea+12(pc),a0 ! 1702: move.l d7,-(a0) ! 1703: move.l d7,-(a0) ! 1704: move.l d7,-(a0) ! 1705: lea.l @f,a3 ! 1706: .dc.l $f2184400 ! 1707: @@: ! 1708: bsr restore_fline ! 1709: fmovem.l fpsr,d0 ! 1710: rol.l #8,d0 ! 1711: or.l d7,d0 ! 1712: move.b d0,(a2)+ ! 1713: ! 1714: ; Fgen.D (An)+,FPn ! 1715: move.b #$04,(a2)+ ! 1716: fmovem.l #$0b000000,fpsr ! 1717: bsr set_fline ! 1718: moveq.l #0,d7 ! 1719: lea.l workarea+12(pc),a0 ! 1720: move.l d7,-(a0) ! 1721: move.l d7,-(a0) ! 1722: move.l d7,-(a0) ! 1723: lea.l @f,a3 ! 1724: .dc.l $f2185400 ! 1725: @@: ! 1726: bsr restore_fline ! 1727: fmovem.l fpsr,d0 ! 1728: rol.l #8,d0 ! 1729: or.l d7,d0 ! 1730: move.b d0,(a2)+ ! 1731: ! 1732: ; Fgen.X (An)+,FPn ! 1733: move.b #$04,(a2)+ ! 1734: fmovem.l #$0b000000,fpsr ! 1735: bsr set_fline ! 1736: moveq.l #0,d7 ! 1737: lea.l workarea+12(pc),a0 ! 1738: move.l d7,-(a0) ! 1739: move.l d7,-(a0) ! 1740: move.l d7,-(a0) ! 1741: lea.l @f,a3 ! 1742: .dc.l $f2184800 ! 1743: @@: ! 1744: bsr restore_fline ! 1745: fmovem.l fpsr,d0 ! 1746: rol.l #8,d0 ! 1747: or.l d7,d0 ! 1748: move.b d0,(a2)+ ! 1749: ! 1750: ; Fgen.P (An)+,FPn ! 1751: move.b #$04,(a2)+ ! 1752: fmovem.l #$0b000000,fpsr ! 1753: bsr set_fline ! 1754: moveq.l #0,d7 ! 1755: lea.l workarea+12(pc),a0 ! 1756: move.l d7,-(a0) ! 1757: move.l d7,-(a0) ! 1758: move.l d7,-(a0) ! 1759: lea.l @f,a3 ! 1760: .dc.l $f2184c00 ! 1761: @@: ! 1762: bsr restore_fline ! 1763: fmovem.l fpsr,d0 ! 1764: rol.l #8,d0 ! 1765: or.l d7,d0 ! 1766: move.b d0,(a2)+ ! 1767: ! 1768: lea.l msg_test_mi,a0 ! 1769: moveq.l #7-1,d0 ! 1770: bsr print_result ! 1771: rts ! 1772: ! 1773: test_fgen_md: ! 1774: lea.l result(pc),a2 ! 1775: ; Fgen.B -(An),FPn ! 1776: move.b #$04,(a2)+ ! 1777: fmovem.l #$0b000000,fpsr ! 1778: bsr set_fline ! 1779: moveq.l #0,d7 ! 1780: lea.l workarea(pc),a0 ! 1781: move.l d7,(a0)+ ! 1782: move.l d7,(a0)+ ! 1783: move.l d7,(a0)+ ! 1784: lea.l @f,a3 ! 1785: .dc.l $f2205800 ! 1786: @@: ! 1787: bsr restore_fline ! 1788: fmovem.l fpsr,d0 ! 1789: rol.l #8,d0 ! 1790: or.l d7,d0 ! 1791: move.b d0,(a2)+ ! 1792: ! 1793: ; Fgen.W -(An),FPn ! 1794: move.b #$04,(a2)+ ! 1795: fmovem.l #$0b000000,fpsr ! 1796: bsr set_fline ! 1797: moveq.l #0,d7 ! 1798: lea.l workarea(pc),a0 ! 1799: move.l d7,(a0)+ ! 1800: move.l d7,(a0)+ ! 1801: move.l d7,(a0)+ ! 1802: lea.l @f,a3 ! 1803: .dc.l $f2205000 ! 1804: @@: ! 1805: bsr restore_fline ! 1806: fmovem.l fpsr,d0 ! 1807: rol.l #8,d0 ! 1808: or.l d7,d0 ! 1809: move.b d0,(a2)+ ! 1810: ! 1811: ; Fgen.L -(An),FPn ! 1812: move.b #$04,(a2)+ ! 1813: fmovem.l #$0b000000,fpsr ! 1814: bsr set_fline ! 1815: moveq.l #0,d7 ! 1816: lea.l workarea(pc),a0 ! 1817: move.l d7,(a0)+ ! 1818: move.l d7,(a0)+ ! 1819: move.l d7,(a0)+ ! 1820: lea.l @f,a3 ! 1821: .dc.l $f2204000 ! 1822: @@: ! 1823: bsr restore_fline ! 1824: fmovem.l fpsr,d0 ! 1825: rol.l #8,d0 ! 1826: or.l d7,d0 ! 1827: move.b d0,(a2)+ ! 1828: ! 1829: ; Fgen.S -(An),FPn ! 1830: move.b #$04,(a2)+ ! 1831: fmovem.l #$0b000000,fpsr ! 1832: bsr set_fline ! 1833: moveq.l #0,d7 ! 1834: lea.l workarea(pc),a0 ! 1835: move.l d7,(a0)+ ! 1836: move.l d7,(a0)+ ! 1837: move.l d7,(a0)+ ! 1838: lea.l @f,a3 ! 1839: .dc.l $f2204400 ! 1840: @@: ! 1841: bsr restore_fline ! 1842: fmovem.l fpsr,d0 ! 1843: rol.l #8,d0 ! 1844: or.l d7,d0 ! 1845: move.b d0,(a2)+ ! 1846: ! 1847: ; Fgen.D -(An),FPn ! 1848: move.b #$04,(a2)+ ! 1849: fmovem.l #$0b000000,fpsr ! 1850: bsr set_fline ! 1851: moveq.l #0,d7 ! 1852: lea.l workarea(pc),a0 ! 1853: move.l d7,(a0)+ ! 1854: move.l d7,(a0)+ ! 1855: move.l d7,(a0)+ ! 1856: lea.l @f,a3 ! 1857: .dc.l $f2205400 ! 1858: @@: ! 1859: bsr restore_fline ! 1860: fmovem.l fpsr,d0 ! 1861: rol.l #8,d0 ! 1862: or.l d7,d0 ! 1863: move.b d0,(a2)+ ! 1864: ! 1865: ; Fgen.X -(An),FPn ! 1866: move.b #$04,(a2)+ ! 1867: fmovem.l #$0b000000,fpsr ! 1868: bsr set_fline ! 1869: moveq.l #0,d7 ! 1870: lea.l workarea(pc),a0 ! 1871: move.l d7,(a0)+ ! 1872: move.l d7,(a0)+ ! 1873: move.l d7,(a0)+ ! 1874: lea.l @f,a3 ! 1875: .dc.l $f2204800 ! 1876: @@: ! 1877: bsr restore_fline ! 1878: fmovem.l fpsr,d0 ! 1879: rol.l #8,d0 ! 1880: or.l d7,d0 ! 1881: move.b d0,(a2)+ ! 1882: ! 1883: ; Fgen.P -(An),FPn ! 1884: move.b #$04,(a2)+ ! 1885: fmovem.l #$0b000000,fpsr ! 1886: bsr set_fline ! 1887: moveq.l #0,d7 ! 1888: lea.l workarea(pc),a0 ! 1889: move.l d7,(a0)+ ! 1890: move.l d7,(a0)+ ! 1891: move.l d7,(a0)+ ! 1892: lea.l @f,a3 ! 1893: .dc.l $f2204c00 ! 1894: @@: ! 1895: bsr restore_fline ! 1896: fmovem.l fpsr,d0 ! 1897: rol.l #8,d0 ! 1898: or.l d7,d0 ! 1899: move.b d0,(a2)+ ! 1900: ! 1901: lea.l msg_test_md,a0 ! 1902: moveq.l #7-1,d0 ! 1903: bsr print_result ! 1904: rts ! 1905: ! 1906: test_fgen_r: ! 1907: lea.l result(pc),a2 ! 1908: ; Fgen.B d16(An),FPn ! 1909: move.b #$04,(a2)+ ! 1910: fmovem.l #$0b000000,fpsr ! 1911: bsr set_fline ! 1912: moveq.l #0,d7 ! 1913: lea.l workarea+12(pc),a0 ! 1914: move.l d7,-(a0) ! 1915: move.l d7,-(a0) ! 1916: move.l d7,-(a0) ! 1917: lea.l @f,a3 ! 1918: .dc.l $f2285800 ! 1919: .dc.w $0000 ! 1920: @@: ! 1921: bsr restore_fline ! 1922: fmovem.l fpsr,d0 ! 1923: rol.l #8,d0 ! 1924: or.l d7,d0 ! 1925: move.b d0,(a2)+ ! 1926: ! 1927: ; Fgen.W d16(An),FPn ! 1928: move.b #$04,(a2)+ ! 1929: fmovem.l #$0b000000,fpsr ! 1930: bsr set_fline ! 1931: moveq.l #0,d7 ! 1932: lea.l workarea+12(pc),a0 ! 1933: move.l d7,-(a0) ! 1934: move.l d7,-(a0) ! 1935: move.l d7,-(a0) ! 1936: lea.l @f,a3 ! 1937: .dc.l $f2285000 ! 1938: .dc.w $0000 ! 1939: @@: ! 1940: bsr restore_fline ! 1941: fmovem.l fpsr,d0 ! 1942: rol.l #8,d0 ! 1943: or.l d7,d0 ! 1944: move.b d0,(a2)+ ! 1945: ! 1946: ; Fgen.L d16(An),FPn ! 1947: move.b #$04,(a2)+ ! 1948: fmovem.l #$0b000000,fpsr ! 1949: bsr set_fline ! 1950: moveq.l #0,d7 ! 1951: lea.l workarea+12(pc),a0 ! 1952: move.l d7,-(a0) ! 1953: move.l d7,-(a0) ! 1954: move.l d7,-(a0) ! 1955: lea.l @f,a3 ! 1956: .dc.l $f2284000 ! 1957: .dc.w $0000 ! 1958: @@: ! 1959: bsr restore_fline ! 1960: fmovem.l fpsr,d0 ! 1961: rol.l #8,d0 ! 1962: or.l d7,d0 ! 1963: move.b d0,(a2)+ ! 1964: ! 1965: ; Fgen.S d16(An),FPn ! 1966: move.b #$04,(a2)+ ! 1967: fmovem.l #$0b000000,fpsr ! 1968: bsr set_fline ! 1969: moveq.l #0,d7 ! 1970: lea.l workarea+12(pc),a0 ! 1971: move.l d7,-(a0) ! 1972: move.l d7,-(a0) ! 1973: move.l d7,-(a0) ! 1974: lea.l @f,a3 ! 1975: .dc.l $f2284400 ! 1976: .dc.w $0000 ! 1977: @@: ! 1978: bsr restore_fline ! 1979: fmovem.l fpsr,d0 ! 1980: rol.l #8,d0 ! 1981: or.l d7,d0 ! 1982: move.b d0,(a2)+ ! 1983: ! 1984: ; Fgen.D d16(An),FPn ! 1985: move.b #$04,(a2)+ ! 1986: fmovem.l #$0b000000,fpsr ! 1987: bsr set_fline ! 1988: moveq.l #0,d7 ! 1989: lea.l workarea+12(pc),a0 ! 1990: move.l d7,-(a0) ! 1991: move.l d7,-(a0) ! 1992: move.l d7,-(a0) ! 1993: lea.l @f,a3 ! 1994: .dc.l $f2285400 ! 1995: .dc.w $0000 ! 1996: @@: ! 1997: bsr restore_fline ! 1998: fmovem.l fpsr,d0 ! 1999: rol.l #8,d0 ! 2000: or.l d7,d0 ! 2001: move.b d0,(a2)+ ! 2002: ! 2003: ; Fgen.X d16(An),FPn ! 2004: move.b #$04,(a2)+ ! 2005: fmovem.l #$0b000000,fpsr ! 2006: bsr set_fline ! 2007: moveq.l #0,d7 ! 2008: lea.l workarea+12(pc),a0 ! 2009: move.l d7,-(a0) ! 2010: move.l d7,-(a0) ! 2011: move.l d7,-(a0) ! 2012: lea.l @f,a3 ! 2013: .dc.l $f2284800 ! 2014: .dc.w $0000 ! 2015: @@: ! 2016: bsr restore_fline ! 2017: fmovem.l fpsr,d0 ! 2018: rol.l #8,d0 ! 2019: or.l d7,d0 ! 2020: move.b d0,(a2)+ ! 2021: ! 2022: ; Fgen.P d16(An),FPn ! 2023: move.b #$04,(a2)+ ! 2024: fmovem.l #$0b000000,fpsr ! 2025: bsr set_fline ! 2026: moveq.l #0,d7 ! 2027: lea.l workarea+12(pc),a0 ! 2028: move.l d7,-(a0) ! 2029: move.l d7,-(a0) ! 2030: move.l d7,-(a0) ! 2031: lea.l @f,a3 ! 2032: .dc.l $f2284c00 ! 2033: .dc.w $0000 ! 2034: @@: ! 2035: bsr restore_fline ! 2036: fmovem.l fpsr,d0 ! 2037: rol.l #8,d0 ! 2038: or.l d7,d0 ! 2039: move.b d0,(a2)+ ! 2040: ! 2041: lea.l msg_test_r,a0 ! 2042: moveq.l #7-1,d0 ! 2043: bsr print_result ! 2044: rts ! 2045: ! 2046: test_fgen_x: ! 2047: lea.l result(pc),a2 ! 2048: ; Fgen.B d8(An,IX),FPn ! 2049: move.b #$04,(a2)+ ! 2050: fmovem.l #$0b000000,fpsr ! 2051: bsr set_fline ! 2052: moveq.l #0,d7 ! 2053: moveq.l #0,d4 ! 2054: lea.l workarea+12(pc),a0 ! 2055: move.l d7,-(a0) ! 2056: move.l d7,-(a0) ! 2057: move.l d7,-(a0) ! 2058: lea.l @f,a3 ! 2059: .dc.l $f2305800 ! 2060: .dc.w $4000 ! 2061: @@: ! 2062: bsr restore_fline ! 2063: fmovem.l fpsr,d0 ! 2064: rol.l #8,d0 ! 2065: or.l d7,d0 ! 2066: move.b d0,(a2)+ ! 2067: ! 2068: ; Fgen.W d8(An,IX),FPn ! 2069: move.b #$04,(a2)+ ! 2070: fmovem.l #$0b000000,fpsr ! 2071: bsr set_fline ! 2072: moveq.l #0,d7 ! 2073: moveq.l #0,d4 ! 2074: lea.l workarea+12(pc),a0 ! 2075: move.l d7,-(a0) ! 2076: move.l d7,-(a0) ! 2077: move.l d7,-(a0) ! 2078: lea.l @f,a3 ! 2079: .dc.l $f2305000 ! 2080: .dc.w $4000 ! 2081: @@: ! 2082: bsr restore_fline ! 2083: fmovem.l fpsr,d0 ! 2084: rol.l #8,d0 ! 2085: or.l d7,d0 ! 2086: move.b d0,(a2)+ ! 2087: ! 2088: ; Fgen.L d8(An,IX),FPn ! 2089: move.b #$04,(a2)+ ! 2090: fmovem.l #$0b000000,fpsr ! 2091: bsr set_fline ! 2092: moveq.l #0,d7 ! 2093: moveq.l #0,d4 ! 2094: lea.l workarea+12(pc),a0 ! 2095: move.l d7,-(a0) ! 2096: move.l d7,-(a0) ! 2097: move.l d7,-(a0) ! 2098: lea.l @f,a3 ! 2099: .dc.l $f2304000 ! 2100: .dc.w $4000 ! 2101: @@: ! 2102: bsr restore_fline ! 2103: fmovem.l fpsr,d0 ! 2104: rol.l #8,d0 ! 2105: or.l d7,d0 ! 2106: move.b d0,(a2)+ ! 2107: ! 2108: ; Fgen.S d8(An,IX),FPn ! 2109: move.b #$04,(a2)+ ! 2110: fmovem.l #$0b000000,fpsr ! 2111: bsr set_fline ! 2112: moveq.l #0,d7 ! 2113: moveq.l #0,d4 ! 2114: lea.l workarea+12(pc),a0 ! 2115: move.l d7,-(a0) ! 2116: move.l d7,-(a0) ! 2117: move.l d7,-(a0) ! 2118: lea.l @f,a3 ! 2119: .dc.l $f2304400 ! 2120: .dc.w $4000 ! 2121: @@: ! 2122: bsr restore_fline ! 2123: fmovem.l fpsr,d0 ! 2124: rol.l #8,d0 ! 2125: or.l d7,d0 ! 2126: move.b d0,(a2)+ ! 2127: ! 2128: ; Fgen.D d8(An,IX),FPn ! 2129: move.b #$04,(a2)+ ! 2130: fmovem.l #$0b000000,fpsr ! 2131: bsr set_fline ! 2132: moveq.l #0,d7 ! 2133: moveq.l #0,d4 ! 2134: lea.l workarea+12(pc),a0 ! 2135: move.l d7,-(a0) ! 2136: move.l d7,-(a0) ! 2137: move.l d7,-(a0) ! 2138: lea.l @f,a3 ! 2139: .dc.l $f2305400 ! 2140: .dc.w $4000 ! 2141: @@: ! 2142: bsr restore_fline ! 2143: fmovem.l fpsr,d0 ! 2144: rol.l #8,d0 ! 2145: or.l d7,d0 ! 2146: move.b d0,(a2)+ ! 2147: ! 2148: ; Fgen.X d8(An,IX),FPn ! 2149: move.b #$04,(a2)+ ! 2150: fmovem.l #$0b000000,fpsr ! 2151: bsr set_fline ! 2152: moveq.l #0,d7 ! 2153: moveq.l #0,d4 ! 2154: lea.l workarea+12(pc),a0 ! 2155: move.l d7,-(a0) ! 2156: move.l d7,-(a0) ! 2157: move.l d7,-(a0) ! 2158: lea.l @f,a3 ! 2159: .dc.l $f2304800 ! 2160: .dc.w $4000 ! 2161: @@: ! 2162: bsr restore_fline ! 2163: fmovem.l fpsr,d0 ! 2164: rol.l #8,d0 ! 2165: or.l d7,d0 ! 2166: move.b d0,(a2)+ ! 2167: ! 2168: ; Fgen.P d8(An,IX),FPn ! 2169: move.b #$04,(a2)+ ! 2170: fmovem.l #$0b000000,fpsr ! 2171: bsr set_fline ! 2172: moveq.l #0,d7 ! 2173: moveq.l #0,d4 ! 2174: lea.l workarea+12(pc),a0 ! 2175: move.l d7,-(a0) ! 2176: move.l d7,-(a0) ! 2177: move.l d7,-(a0) ! 2178: lea.l @f,a3 ! 2179: .dc.l $f2304c00 ! 2180: .dc.w $4000 ! 2181: @@: ! 2182: bsr restore_fline ! 2183: fmovem.l fpsr,d0 ! 2184: rol.l #8,d0 ! 2185: or.l d7,d0 ! 2186: move.b d0,(a2)+ ! 2187: ! 2188: lea.l msg_test_x,a0 ! 2189: moveq.l #7-1,d0 ! 2190: bsr print_result ! 2191: rts ! 2192: ! 2193: test_fgen_p: ! 2194: lea.l result(pc),a2 ! 2195: ; Fgen.B (PC),FPn ! 2196: move.b #$04,(a2)+ ! 2197: fmovem.l #$0b000000,fpsr ! 2198: bsr set_fline ! 2199: moveq.l #0,d7 ! 2200: bra @f ! 2201: .dc.l 0, 0, 0 ! 2202: @@: ! 2203: lea.l @f,a3 ! 2204: .dc.l $f23a5800 ! 2205: .dc.w -4-6-12 ! 2206: @@: ! 2207: bsr restore_fline ! 2208: fmovem.l fpsr,d0 ! 2209: rol.l #8,d0 ! 2210: or.l d7,d0 ! 2211: move.b d0,(a2)+ ! 2212: ! 2213: ; Fgen.W (PC),FPn ! 2214: move.b #$04,(a2)+ ! 2215: fmovem.l #$0b000000,fpsr ! 2216: bsr set_fline ! 2217: moveq.l #0,d7 ! 2218: bra @f ! 2219: .dc.l 0, 0, 0 ! 2220: @@: ! 2221: lea.l @f,a3 ! 2222: .dc.l $f23a5000 ! 2223: .dc.w -4-6-12 ! 2224: @@: ! 2225: bsr restore_fline ! 2226: fmovem.l fpsr,d0 ! 2227: rol.l #8,d0 ! 2228: or.l d7,d0 ! 2229: move.b d0,(a2)+ ! 2230: ! 2231: ; Fgen.L (PC),FPn ! 2232: move.b #$04,(a2)+ ! 2233: fmovem.l #$0b000000,fpsr ! 2234: bsr set_fline ! 2235: moveq.l #0,d7 ! 2236: bra @f ! 2237: .dc.l 0, 0, 0 ! 2238: @@: ! 2239: lea.l @f,a3 ! 2240: .dc.l $f23a4000 ! 2241: .dc.w -4-6-12 ! 2242: @@: ! 2243: bsr restore_fline ! 2244: fmovem.l fpsr,d0 ! 2245: rol.l #8,d0 ! 2246: or.l d7,d0 ! 2247: move.b d0,(a2)+ ! 2248: ! 2249: ; Fgen.S (PC),FPn ! 2250: move.b #$04,(a2)+ ! 2251: fmovem.l #$0b000000,fpsr ! 2252: bsr set_fline ! 2253: moveq.l #0,d7 ! 2254: bra @f ! 2255: .dc.l 0, 0, 0 ! 2256: @@: ! 2257: lea.l @f,a3 ! 2258: .dc.l $f23a4400 ! 2259: .dc.w -4-6-12 ! 2260: @@: ! 2261: bsr restore_fline ! 2262: fmovem.l fpsr,d0 ! 2263: rol.l #8,d0 ! 2264: or.l d7,d0 ! 2265: move.b d0,(a2)+ ! 2266: ! 2267: ; Fgen.D (PC),FPn ! 2268: move.b #$04,(a2)+ ! 2269: fmovem.l #$0b000000,fpsr ! 2270: bsr set_fline ! 2271: moveq.l #0,d7 ! 2272: bra @f ! 2273: .dc.l 0, 0, 0 ! 2274: @@: ! 2275: lea.l @f,a3 ! 2276: .dc.l $f23a5400 ! 2277: .dc.w -4-6-12 ! 2278: @@: ! 2279: bsr restore_fline ! 2280: fmovem.l fpsr,d0 ! 2281: rol.l #8,d0 ! 2282: or.l d7,d0 ! 2283: move.b d0,(a2)+ ! 2284: ! 2285: ; Fgen.X (PC),FPn ! 2286: move.b #$04,(a2)+ ! 2287: fmovem.l #$0b000000,fpsr ! 2288: bsr set_fline ! 2289: moveq.l #0,d7 ! 2290: bra @f ! 2291: .dc.l 0, 0, 0 ! 2292: @@: ! 2293: lea.l @f,a3 ! 2294: .dc.l $f23a4800 ! 2295: .dc.w -4-6-12 ! 2296: @@: ! 2297: bsr restore_fline ! 2298: fmovem.l fpsr,d0 ! 2299: rol.l #8,d0 ! 2300: or.l d7,d0 ! 2301: move.b d0,(a2)+ ! 2302: ! 2303: ; Fgen.P (PC),FPn ! 2304: move.b #$04,(a2)+ ! 2305: fmovem.l #$0b000000,fpsr ! 2306: bsr set_fline ! 2307: moveq.l #0,d7 ! 2308: bra @f ! 2309: .dc.l 0, 0, 0 ! 2310: @@: ! 2311: lea.l @f,a3 ! 2312: .dc.l $f23a4c00 ! 2313: .dc.w -4-6-12 ! 2314: @@: ! 2315: bsr restore_fline ! 2316: fmovem.l fpsr,d0 ! 2317: rol.l #8,d0 ! 2318: or.l d7,d0 ! 2319: move.b d0,(a2)+ ! 2320: ! 2321: lea.l msg_test_p,a0 ! 2322: moveq.l #7-1,d0 ! 2323: bsr print_result ! 2324: rts ! 2325: ! 2326: test_fgen_i: ! 2327: lea.l result(pc),a2 ! 2328: ; Fgen.B #imm,FPn ! 2329: move.b #$04,(a2)+ ! 2330: fmovem.l #$0b000000,fpsr ! 2331: bsr set_fline ! 2332: moveq.l #0,d7 ! 2333: lea.l @f,a3 ! 2334: .dc.l $f23c5800 ! 2335: .dc.w 0 ! 2336: @@: ! 2337: bsr restore_fline ! 2338: fmovem.l fpsr,d0 ! 2339: rol.l #8,d0 ! 2340: or.l d7,d0 ! 2341: move.b d0,(a2)+ ! 2342: ! 2343: ; Fgen.W #imm,FPn ! 2344: move.b #$04,(a2)+ ! 2345: fmovem.l #$0b000000,fpsr ! 2346: bsr set_fline ! 2347: moveq.l #0,d7 ! 2348: lea.l @f,a3 ! 2349: .dc.l $f23c5000 ! 2350: .dc.w 0 ! 2351: @@: ! 2352: bsr restore_fline ! 2353: fmovem.l fpsr,d0 ! 2354: rol.l #8,d0 ! 2355: or.l d7,d0 ! 2356: move.b d0,(a2)+ ! 2357: ! 2358: ; Fgen.L #imm,FPn ! 2359: move.b #$04,(a2)+ ! 2360: fmovem.l #$0b000000,fpsr ! 2361: bsr set_fline ! 2362: moveq.l #0,d7 ! 2363: lea.l @f,a3 ! 2364: .dc.l $f23c4000 ! 2365: .dc.l 0 ! 2366: @@: ! 2367: bsr restore_fline ! 2368: fmovem.l fpsr,d0 ! 2369: rol.l #8,d0 ! 2370: or.l d7,d0 ! 2371: move.b d0,(a2)+ ! 2372: ! 2373: ; Fgen.S #imm,FPn ! 2374: move.b #$04,(a2)+ ! 2375: fmovem.l #$0b000000,fpsr ! 2376: bsr set_fline ! 2377: moveq.l #0,d7 ! 2378: lea.l @f,a3 ! 2379: .dc.l $f23c4400 ! 2380: .dc.l 0 ! 2381: @@: ! 2382: bsr restore_fline ! 2383: fmovem.l fpsr,d0 ! 2384: rol.l #8,d0 ! 2385: or.l d7,d0 ! 2386: move.b d0,(a2)+ ! 2387: ! 2388: ; Fgen.D #imm,FPn ! 2389: move.b #$04,(a2)+ ! 2390: fmovem.l #$0b000000,fpsr ! 2391: bsr set_fline ! 2392: moveq.l #0,d7 ! 2393: lea.l @f,a3 ! 2394: .dc.l $f23c5400 ! 2395: .dc.l 0, 0 ! 2396: @@: ! 2397: bsr restore_fline ! 2398: fmovem.l fpsr,d0 ! 2399: rol.l #8,d0 ! 2400: or.l d7,d0 ! 2401: move.b d0,(a2)+ ! 2402: ! 2403: ; Fgen.X #imm,FPn ! 2404: move.b #$04,(a2)+ ! 2405: fmovem.l #$0b000000,fpsr ! 2406: bsr set_fline ! 2407: moveq.l #0,d7 ! 2408: lea.l @f,a3 ! 2409: .dc.l $f23c4800 ! 2410: .dc.l 0, 0, 0 ! 2411: @@: ! 2412: bsr restore_fline ! 2413: fmovem.l fpsr,d0 ! 2414: rol.l #8,d0 ! 2415: or.l d7,d0 ! 2416: move.b d0,(a2)+ ! 2417: ! 2418: ; Fgen.P #imm,FPn ! 2419: move.b #$04,(a2)+ ! 2420: fmovem.l #$0b000000,fpsr ! 2421: bsr set_fline ! 2422: moveq.l #0,d7 ! 2423: lea.l @f,a3 ! 2424: .dc.l $f23c4c00 ! 2425: .dc.l 0, 0, 0 ! 2426: @@: ! 2427: bsr restore_fline ! 2428: fmovem.l fpsr,d0 ! 2429: rol.l #8,d0 ! 2430: or.l d7,d0 ! 2431: move.b d0,(a2)+ ! 2432: ! 2433: lea.l msg_test_i,a0 ! 2434: moveq.l #7-1,d0 ! 2435: bsr print_result ! 2436: rts ! 2437: ! 2438: test_fgen_o: ! 2439: lea.l result(pc),a2 ! 2440: ; Fgen.B 075,FPn ! 2441: move.b #$1b,(a2)+ ! 2442: fmovem.l #$0b000000,fpsr ! 2443: bsr set_fline ! 2444: moveq.l #0,d7 ! 2445: lea.l @f,a3 ! 2446: .dc.l $f23d5800 ! 2447: @@: ! 2448: bsr restore_fline ! 2449: fmovem.l fpsr,d0 ! 2450: rol.l #8,d0 ! 2451: or.l d7,d0 ! 2452: move.b d0,(a2)+ ! 2453: ! 2454: ; Fgen.W 075,FPn ! 2455: move.b #$1b,(a2)+ ! 2456: fmovem.l #$0b000000,fpsr ! 2457: bsr set_fline ! 2458: moveq.l #0,d7 ! 2459: lea.l @f,a3 ! 2460: .dc.l $f23d5000 ! 2461: @@: ! 2462: bsr restore_fline ! 2463: fmovem.l fpsr,d0 ! 2464: rol.l #8,d0 ! 2465: or.l d7,d0 ! 2466: move.b d0,(a2)+ ! 2467: ! 2468: ; Fgen.L 075,FPn ! 2469: move.b #$1b,(a2)+ ! 2470: fmovem.l #$0b000000,fpsr ! 2471: bsr set_fline ! 2472: moveq.l #0,d7 ! 2473: lea.l @f,a3 ! 2474: .dc.l $f23d4000 ! 2475: @@: ! 2476: bsr restore_fline ! 2477: fmovem.l fpsr,d0 ! 2478: rol.l #8,d0 ! 2479: or.l d7,d0 ! 2480: move.b d0,(a2)+ ! 2481: ! 2482: ; Fgen.S 075,FPn ! 2483: move.b #$1b,(a2)+ ! 2484: fmovem.l #$0b000000,fpsr ! 2485: bsr set_fline ! 2486: moveq.l #0,d7 ! 2487: lea.l @f,a3 ! 2488: .dc.l $f23d4400 ! 2489: @@: ! 2490: bsr restore_fline ! 2491: fmovem.l fpsr,d0 ! 2492: rol.l #8,d0 ! 2493: or.l d7,d0 ! 2494: move.b d0,(a2)+ ! 2495: ! 2496: ; Fgen.D 075,FPn ! 2497: move.b #$1b,(a2)+ ! 2498: fmovem.l #$0b000000,fpsr ! 2499: bsr set_fline ! 2500: moveq.l #0,d7 ! 2501: lea.l @f,a3 ! 2502: .dc.l $f23d5400 ! 2503: @@: ! 2504: bsr restore_fline ! 2505: fmovem.l fpsr,d0 ! 2506: rol.l #8,d0 ! 2507: or.l d7,d0 ! 2508: move.b d0,(a2)+ ! 2509: ! 2510: ; Fgen.X 075,FPn ! 2511: move.b #$1b,(a2)+ ! 2512: fmovem.l #$0b000000,fpsr ! 2513: bsr set_fline ! 2514: moveq.l #0,d7 ! 2515: lea.l @f,a3 ! 2516: .dc.l $f23d4800 ! 2517: @@: ! 2518: bsr restore_fline ! 2519: fmovem.l fpsr,d0 ! 2520: rol.l #8,d0 ! 2521: or.l d7,d0 ! 2522: move.b d0,(a2)+ ! 2523: ! 2524: ; Fgen.P 075,FPn ! 2525: move.b #$1b,(a2)+ ! 2526: fmovem.l #$0b000000,fpsr ! 2527: bsr set_fline ! 2528: moveq.l #0,d7 ! 2529: lea.l @f,a3 ! 2530: .dc.l $f23d4c00 ! 2531: @@: ! 2532: bsr restore_fline ! 2533: fmovem.l fpsr,d0 ! 2534: rol.l #8,d0 ! 2535: or.l d7,d0 ! 2536: move.b d0,(a2)+ ! 2537: ! 2538: lea.l msg_test_o,a0 ! 2539: moveq.l #7-1,d0 ! 2540: bsr print_result ! 2541: rts ! 2542: ! 2543: test_fscale_d: ! 2544: lea.l result(pc),a2 ! 2545: ; FSCALE.B Dn,FPn ! 2546: move.b #$04,(a2)+ ! 2547: fmovem.l #$0b000000,fpsr ! 2548: bsr set_fline ! 2549: moveq.l #0,d7 ! 2550: moveq.l #0,d6 ! 2551: lea.l @f,a3 ! 2552: .dc.l $f2065826 ! 2553: @@: ! 2554: bsr restore_fline ! 2555: fmovem.l fpsr,d0 ! 2556: rol.l #8,d0 ! 2557: or.l d7,d0 ! 2558: move.b d0,(a2)+ ! 2559: ! 2560: ; FSCALE.W Dn,FPn ! 2561: move.b #$04,(a2)+ ! 2562: fmovem.l #$0b000000,fpsr ! 2563: bsr set_fline ! 2564: moveq.l #0,d7 ! 2565: moveq.l #0,d6 ! 2566: lea.l @f,a3 ! 2567: .dc.l $f2065026 ! 2568: @@: ! 2569: bsr restore_fline ! 2570: fmovem.l fpsr,d0 ! 2571: rol.l #8,d0 ! 2572: or.l d7,d0 ! 2573: move.b d0,(a2)+ ! 2574: ! 2575: ; FSCALE.L Dn,FPn ! 2576: move.b #$04,(a2)+ ! 2577: fmovem.l #$0b000000,fpsr ! 2578: bsr set_fline ! 2579: moveq.l #0,d7 ! 2580: moveq.l #0,d6 ! 2581: lea.l @f,a3 ! 2582: .dc.l $f2064026 ! 2583: @@: ! 2584: bsr restore_fline ! 2585: fmovem.l fpsr,d0 ! 2586: rol.l #8,d0 ! 2587: or.l d7,d0 ! 2588: move.b d0,(a2)+ ! 2589: ! 2590: ; FSCALE.S Dn,FPn ! 2591: move.b #$04,(a2)+ ! 2592: fmovem.l #$0b000000,fpsr ! 2593: bsr set_fline ! 2594: moveq.l #0,d7 ! 2595: moveq.l #0,d6 ! 2596: lea.l @f,a3 ! 2597: .dc.l $f2064426 ! 2598: @@: ! 2599: bsr restore_fline ! 2600: fmovem.l fpsr,d0 ! 2601: rol.l #8,d0 ! 2602: or.l d7,d0 ! 2603: move.b d0,(a2)+ ! 2604: ! 2605: ; FSCALE.D Dn,FPn ! 2606: move.b #$1b,(a2)+ ! 2607: fmovem.l #$0b000000,fpsr ! 2608: bsr set_fline ! 2609: moveq.l #0,d7 ! 2610: moveq.l #0,d6 ! 2611: lea.l @f,a3 ! 2612: .dc.l $f2065426 ! 2613: @@: ! 2614: bsr restore_fline ! 2615: fmovem.l fpsr,d0 ! 2616: rol.l #8,d0 ! 2617: or.l d7,d0 ! 2618: move.b d0,(a2)+ ! 2619: ! 2620: ; FSCALE.X Dn,FPn ! 2621: move.b #$1b,(a2)+ ! 2622: fmovem.l #$0b000000,fpsr ! 2623: bsr set_fline ! 2624: moveq.l #0,d7 ! 2625: moveq.l #0,d6 ! 2626: lea.l @f,a3 ! 2627: .dc.l $f2064826 ! 2628: @@: ! 2629: bsr restore_fline ! 2630: fmovem.l fpsr,d0 ! 2631: rol.l #8,d0 ! 2632: or.l d7,d0 ! 2633: move.b d0,(a2)+ ! 2634: ! 2635: ; FSCALE.P Dn,FPn ! 2636: move.b #$1b,(a2)+ ! 2637: fmovem.l #$0b000000,fpsr ! 2638: bsr set_fline ! 2639: moveq.l #0,d7 ! 2640: moveq.l #0,d6 ! 2641: lea.l @f,a3 ! 2642: .dc.l $f2064c26 ! 2643: @@: ! 2644: bsr restore_fline ! 2645: fmovem.l fpsr,d0 ! 2646: rol.l #8,d0 ! 2647: or.l d7,d0 ! 2648: move.b d0,(a2)+ ! 2649: ! 2650: lea.l msg_test_d,a0 ! 2651: moveq.l #7-1,d0 ! 2652: bsr print_result ! 2653: rts ! 2654: ! 2655: test_fscale_a: ! 2656: lea.l result(pc),a2 ! 2657: ; FSCALE.B An,FPn ! 2658: move.b #$1b,(a2)+ ! 2659: fmovem.l #$0b000000,fpsr ! 2660: bsr set_fline ! 2661: moveq.l #0,d7 ! 2662: lea.l @f,a3 ! 2663: .dc.l $f2085826 ! 2664: @@: ! 2665: bsr restore_fline ! 2666: fmovem.l fpsr,d0 ! 2667: rol.l #8,d0 ! 2668: or.l d7,d0 ! 2669: move.b d0,(a2)+ ! 2670: ! 2671: ; FSCALE.W An,FPn ! 2672: move.b #$1b,(a2)+ ! 2673: fmovem.l #$0b000000,fpsr ! 2674: bsr set_fline ! 2675: moveq.l #0,d7 ! 2676: lea.l @f,a3 ! 2677: .dc.l $f2085026 ! 2678: @@: ! 2679: bsr restore_fline ! 2680: fmovem.l fpsr,d0 ! 2681: rol.l #8,d0 ! 2682: or.l d7,d0 ! 2683: move.b d0,(a2)+ ! 2684: ! 2685: ; FSCALE.L An,FPn ! 2686: move.b #$1b,(a2)+ ! 2687: fmovem.l #$0b000000,fpsr ! 2688: bsr set_fline ! 2689: moveq.l #0,d7 ! 2690: lea.l @f,a3 ! 2691: .dc.l $f2084026 ! 2692: @@: ! 2693: bsr restore_fline ! 2694: fmovem.l fpsr,d0 ! 2695: rol.l #8,d0 ! 2696: or.l d7,d0 ! 2697: move.b d0,(a2)+ ! 2698: ! 2699: ; FSCALE.S An,FPn ! 2700: move.b #$1b,(a2)+ ! 2701: fmovem.l #$0b000000,fpsr ! 2702: bsr set_fline ! 2703: moveq.l #0,d7 ! 2704: lea.l @f,a3 ! 2705: .dc.l $f2084426 ! 2706: @@: ! 2707: bsr restore_fline ! 2708: fmovem.l fpsr,d0 ! 2709: rol.l #8,d0 ! 2710: or.l d7,d0 ! 2711: move.b d0,(a2)+ ! 2712: ! 2713: ; FSCALE.D An,FPn ! 2714: move.b #$1b,(a2)+ ! 2715: fmovem.l #$0b000000,fpsr ! 2716: bsr set_fline ! 2717: moveq.l #0,d7 ! 2718: lea.l @f,a3 ! 2719: .dc.l $f2085426 ! 2720: @@: ! 2721: bsr restore_fline ! 2722: fmovem.l fpsr,d0 ! 2723: rol.l #8,d0 ! 2724: or.l d7,d0 ! 2725: move.b d0,(a2)+ ! 2726: ! 2727: ; FSCALE.X An,FPn ! 2728: move.b #$1b,(a2)+ ! 2729: fmovem.l #$0b000000,fpsr ! 2730: bsr set_fline ! 2731: moveq.l #0,d7 ! 2732: lea.l @f,a3 ! 2733: .dc.l $f2084826 ! 2734: @@: ! 2735: bsr restore_fline ! 2736: fmovem.l fpsr,d0 ! 2737: rol.l #8,d0 ! 2738: or.l d7,d0 ! 2739: move.b d0,(a2)+ ! 2740: ! 2741: ; FSCALE.P An,FPn ! 2742: move.b #$1b,(a2)+ ! 2743: fmovem.l #$0b000000,fpsr ! 2744: bsr set_fline ! 2745: moveq.l #0,d7 ! 2746: lea.l @f,a3 ! 2747: .dc.l $f2084c26 ! 2748: @@: ! 2749: bsr restore_fline ! 2750: fmovem.l fpsr,d0 ! 2751: rol.l #8,d0 ! 2752: or.l d7,d0 ! 2753: move.b d0,(a2)+ ! 2754: ! 2755: lea.l msg_test_a,a0 ! 2756: moveq.l #7-1,d0 ! 2757: bsr print_result ! 2758: rts ! 2759: ! 2760: test_fscale_m: ! 2761: lea.l result(pc),a2 ! 2762: ; FSCALE.B (An),FPn ! 2763: move.b #$04,(a2)+ ! 2764: fmovem.l #$0b000000,fpsr ! 2765: bsr set_fline ! 2766: moveq.l #0,d7 ! 2767: lea.l workarea+12(pc),a0 ! 2768: move.l d7,-(a0) ! 2769: move.l d7,-(a0) ! 2770: move.l d7,-(a0) ! 2771: lea.l @f,a3 ! 2772: .dc.l $f2105826 ! 2773: @@: ! 2774: bsr restore_fline ! 2775: fmovem.l fpsr,d0 ! 2776: rol.l #8,d0 ! 2777: or.l d7,d0 ! 2778: move.b d0,(a2)+ ! 2779: ! 2780: ; FSCALE.W (An),FPn ! 2781: move.b #$04,(a2)+ ! 2782: fmovem.l #$0b000000,fpsr ! 2783: bsr set_fline ! 2784: moveq.l #0,d7 ! 2785: lea.l workarea+12(pc),a0 ! 2786: move.l d7,-(a0) ! 2787: move.l d7,-(a0) ! 2788: move.l d7,-(a0) ! 2789: lea.l @f,a3 ! 2790: .dc.l $f2105026 ! 2791: @@: ! 2792: bsr restore_fline ! 2793: fmovem.l fpsr,d0 ! 2794: rol.l #8,d0 ! 2795: or.l d7,d0 ! 2796: move.b d0,(a2)+ ! 2797: ! 2798: ; FSCALE.L (An),FPn ! 2799: move.b #$04,(a2)+ ! 2800: fmovem.l #$0b000000,fpsr ! 2801: bsr set_fline ! 2802: moveq.l #0,d7 ! 2803: lea.l workarea+12(pc),a0 ! 2804: move.l d7,-(a0) ! 2805: move.l d7,-(a0) ! 2806: move.l d7,-(a0) ! 2807: lea.l @f,a3 ! 2808: .dc.l $f2104026 ! 2809: @@: ! 2810: bsr restore_fline ! 2811: fmovem.l fpsr,d0 ! 2812: rol.l #8,d0 ! 2813: or.l d7,d0 ! 2814: move.b d0,(a2)+ ! 2815: ! 2816: ; FSCALE.S (An),FPn ! 2817: move.b #$04,(a2)+ ! 2818: fmovem.l #$0b000000,fpsr ! 2819: bsr set_fline ! 2820: moveq.l #0,d7 ! 2821: lea.l workarea+12(pc),a0 ! 2822: move.l d7,-(a0) ! 2823: move.l d7,-(a0) ! 2824: move.l d7,-(a0) ! 2825: lea.l @f,a3 ! 2826: .dc.l $f2104426 ! 2827: @@: ! 2828: bsr restore_fline ! 2829: fmovem.l fpsr,d0 ! 2830: rol.l #8,d0 ! 2831: or.l d7,d0 ! 2832: move.b d0,(a2)+ ! 2833: ! 2834: ; FSCALE.D (An),FPn ! 2835: move.b #$04,(a2)+ ! 2836: fmovem.l #$0b000000,fpsr ! 2837: bsr set_fline ! 2838: moveq.l #0,d7 ! 2839: lea.l workarea+12(pc),a0 ! 2840: move.l d7,-(a0) ! 2841: move.l d7,-(a0) ! 2842: move.l d7,-(a0) ! 2843: lea.l @f,a3 ! 2844: .dc.l $f2105426 ! 2845: @@: ! 2846: bsr restore_fline ! 2847: fmovem.l fpsr,d0 ! 2848: rol.l #8,d0 ! 2849: or.l d7,d0 ! 2850: move.b d0,(a2)+ ! 2851: ! 2852: ; FSCALE.X (An),FPn ! 2853: move.b #$04,(a2)+ ! 2854: fmovem.l #$0b000000,fpsr ! 2855: bsr set_fline ! 2856: moveq.l #0,d7 ! 2857: lea.l workarea+12(pc),a0 ! 2858: move.l d7,-(a0) ! 2859: move.l d7,-(a0) ! 2860: move.l d7,-(a0) ! 2861: lea.l @f,a3 ! 2862: .dc.l $f2104826 ! 2863: @@: ! 2864: bsr restore_fline ! 2865: fmovem.l fpsr,d0 ! 2866: rol.l #8,d0 ! 2867: or.l d7,d0 ! 2868: move.b d0,(a2)+ ! 2869: ! 2870: ; FSCALE.P (An),FPn ! 2871: move.b #$04,(a2)+ ! 2872: fmovem.l #$0b000000,fpsr ! 2873: bsr set_fline ! 2874: moveq.l #0,d7 ! 2875: lea.l workarea+12(pc),a0 ! 2876: move.l d7,-(a0) ! 2877: move.l d7,-(a0) ! 2878: move.l d7,-(a0) ! 2879: lea.l @f,a3 ! 2880: .dc.l $f2104c26 ! 2881: @@: ! 2882: bsr restore_fline ! 2883: fmovem.l fpsr,d0 ! 2884: rol.l #8,d0 ! 2885: or.l d7,d0 ! 2886: move.b d0,(a2)+ ! 2887: ! 2888: lea.l msg_test_m,a0 ! 2889: moveq.l #7-1,d0 ! 2890: bsr print_result ! 2891: rts ! 2892: ! 2893: test_fscale_mi: ! 2894: lea.l result(pc),a2 ! 2895: ; FSCALE.B (An)+,FPn ! 2896: move.b #$04,(a2)+ ! 2897: fmovem.l #$0b000000,fpsr ! 2898: bsr set_fline ! 2899: moveq.l #0,d7 ! 2900: lea.l workarea+12(pc),a0 ! 2901: move.l d7,-(a0) ! 2902: move.l d7,-(a0) ! 2903: move.l d7,-(a0) ! 2904: lea.l @f,a3 ! 2905: .dc.l $f2185826 ! 2906: @@: ! 2907: bsr restore_fline ! 2908: fmovem.l fpsr,d0 ! 2909: rol.l #8,d0 ! 2910: or.l d7,d0 ! 2911: move.b d0,(a2)+ ! 2912: ! 2913: ; FSCALE.W (An)+,FPn ! 2914: move.b #$04,(a2)+ ! 2915: fmovem.l #$0b000000,fpsr ! 2916: bsr set_fline ! 2917: moveq.l #0,d7 ! 2918: lea.l workarea+12(pc),a0 ! 2919: move.l d7,-(a0) ! 2920: move.l d7,-(a0) ! 2921: move.l d7,-(a0) ! 2922: lea.l @f,a3 ! 2923: .dc.l $f2185026 ! 2924: @@: ! 2925: bsr restore_fline ! 2926: fmovem.l fpsr,d0 ! 2927: rol.l #8,d0 ! 2928: or.l d7,d0 ! 2929: move.b d0,(a2)+ ! 2930: ! 2931: ; FSCALE.L (An)+,FPn ! 2932: move.b #$04,(a2)+ ! 2933: fmovem.l #$0b000000,fpsr ! 2934: bsr set_fline ! 2935: moveq.l #0,d7 ! 2936: lea.l workarea+12(pc),a0 ! 2937: move.l d7,-(a0) ! 2938: move.l d7,-(a0) ! 2939: move.l d7,-(a0) ! 2940: lea.l @f,a3 ! 2941: .dc.l $f2184026 ! 2942: @@: ! 2943: bsr restore_fline ! 2944: fmovem.l fpsr,d0 ! 2945: rol.l #8,d0 ! 2946: or.l d7,d0 ! 2947: move.b d0,(a2)+ ! 2948: ! 2949: ; FSCALE.S (An)+,FPn ! 2950: move.b #$04,(a2)+ ! 2951: fmovem.l #$0b000000,fpsr ! 2952: bsr set_fline ! 2953: moveq.l #0,d7 ! 2954: lea.l workarea+12(pc),a0 ! 2955: move.l d7,-(a0) ! 2956: move.l d7,-(a0) ! 2957: move.l d7,-(a0) ! 2958: lea.l @f,a3 ! 2959: .dc.l $f2184426 ! 2960: @@: ! 2961: bsr restore_fline ! 2962: fmovem.l fpsr,d0 ! 2963: rol.l #8,d0 ! 2964: or.l d7,d0 ! 2965: move.b d0,(a2)+ ! 2966: ! 2967: ; FSCALE.D (An)+,FPn ! 2968: move.b #$04,(a2)+ ! 2969: fmovem.l #$0b000000,fpsr ! 2970: bsr set_fline ! 2971: moveq.l #0,d7 ! 2972: lea.l workarea+12(pc),a0 ! 2973: move.l d7,-(a0) ! 2974: move.l d7,-(a0) ! 2975: move.l d7,-(a0) ! 2976: lea.l @f,a3 ! 2977: .dc.l $f2185426 ! 2978: @@: ! 2979: bsr restore_fline ! 2980: fmovem.l fpsr,d0 ! 2981: rol.l #8,d0 ! 2982: or.l d7,d0 ! 2983: move.b d0,(a2)+ ! 2984: ! 2985: ; FSCALE.X (An)+,FPn ! 2986: move.b #$04,(a2)+ ! 2987: fmovem.l #$0b000000,fpsr ! 2988: bsr set_fline ! 2989: moveq.l #0,d7 ! 2990: lea.l workarea+12(pc),a0 ! 2991: move.l d7,-(a0) ! 2992: move.l d7,-(a0) ! 2993: move.l d7,-(a0) ! 2994: lea.l @f,a3 ! 2995: .dc.l $f2184826 ! 2996: @@: ! 2997: bsr restore_fline ! 2998: fmovem.l fpsr,d0 ! 2999: rol.l #8,d0 ! 3000: or.l d7,d0 ! 3001: move.b d0,(a2)+ ! 3002: ! 3003: ; FSCALE.P (An)+,FPn ! 3004: move.b #$04,(a2)+ ! 3005: fmovem.l #$0b000000,fpsr ! 3006: bsr set_fline ! 3007: moveq.l #0,d7 ! 3008: lea.l workarea+12(pc),a0 ! 3009: move.l d7,-(a0) ! 3010: move.l d7,-(a0) ! 3011: move.l d7,-(a0) ! 3012: lea.l @f,a3 ! 3013: .dc.l $f2184c26 ! 3014: @@: ! 3015: bsr restore_fline ! 3016: fmovem.l fpsr,d0 ! 3017: rol.l #8,d0 ! 3018: or.l d7,d0 ! 3019: move.b d0,(a2)+ ! 3020: ! 3021: lea.l msg_test_mi,a0 ! 3022: moveq.l #7-1,d0 ! 3023: bsr print_result ! 3024: rts ! 3025: ! 3026: test_fscale_md: ! 3027: lea.l result(pc),a2 ! 3028: ; FSCALE.B -(An),FPn ! 3029: move.b #$04,(a2)+ ! 3030: fmovem.l #$0b000000,fpsr ! 3031: bsr set_fline ! 3032: moveq.l #0,d7 ! 3033: lea.l workarea(pc),a0 ! 3034: move.l d7,(a0)+ ! 3035: move.l d7,(a0)+ ! 3036: move.l d7,(a0)+ ! 3037: lea.l @f,a3 ! 3038: .dc.l $f2205826 ! 3039: @@: ! 3040: bsr restore_fline ! 3041: fmovem.l fpsr,d0 ! 3042: rol.l #8,d0 ! 3043: or.l d7,d0 ! 3044: move.b d0,(a2)+ ! 3045: ! 3046: ; FSCALE.W -(An),FPn ! 3047: move.b #$04,(a2)+ ! 3048: fmovem.l #$0b000000,fpsr ! 3049: bsr set_fline ! 3050: moveq.l #0,d7 ! 3051: lea.l workarea(pc),a0 ! 3052: move.l d7,(a0)+ ! 3053: move.l d7,(a0)+ ! 3054: move.l d7,(a0)+ ! 3055: lea.l @f,a3 ! 3056: .dc.l $f2205026 ! 3057: @@: ! 3058: bsr restore_fline ! 3059: fmovem.l fpsr,d0 ! 3060: rol.l #8,d0 ! 3061: or.l d7,d0 ! 3062: move.b d0,(a2)+ ! 3063: ! 3064: ; FSCALE.L -(An),FPn ! 3065: move.b #$04,(a2)+ ! 3066: fmovem.l #$0b000000,fpsr ! 3067: bsr set_fline ! 3068: moveq.l #0,d7 ! 3069: lea.l workarea(pc),a0 ! 3070: move.l d7,(a0)+ ! 3071: move.l d7,(a0)+ ! 3072: move.l d7,(a0)+ ! 3073: lea.l @f,a3 ! 3074: .dc.l $f2204026 ! 3075: @@: ! 3076: bsr restore_fline ! 3077: fmovem.l fpsr,d0 ! 3078: rol.l #8,d0 ! 3079: or.l d7,d0 ! 3080: move.b d0,(a2)+ ! 3081: ! 3082: ; FSCALE.S -(An),FPn ! 3083: move.b #$04,(a2)+ ! 3084: fmovem.l #$0b000000,fpsr ! 3085: bsr set_fline ! 3086: moveq.l #0,d7 ! 3087: lea.l workarea(pc),a0 ! 3088: move.l d7,(a0)+ ! 3089: move.l d7,(a0)+ ! 3090: move.l d7,(a0)+ ! 3091: lea.l @f,a3 ! 3092: .dc.l $f2204426 ! 3093: @@: ! 3094: bsr restore_fline ! 3095: fmovem.l fpsr,d0 ! 3096: rol.l #8,d0 ! 3097: or.l d7,d0 ! 3098: move.b d0,(a2)+ ! 3099: ! 3100: ; FSCALE.D -(An),FPn ! 3101: move.b #$04,(a2)+ ! 3102: fmovem.l #$0b000000,fpsr ! 3103: bsr set_fline ! 3104: moveq.l #0,d7 ! 3105: lea.l workarea(pc),a0 ! 3106: move.l d7,(a0)+ ! 3107: move.l d7,(a0)+ ! 3108: move.l d7,(a0)+ ! 3109: lea.l @f,a3 ! 3110: .dc.l $f2205426 ! 3111: @@: ! 3112: bsr restore_fline ! 3113: fmovem.l fpsr,d0 ! 3114: rol.l #8,d0 ! 3115: or.l d7,d0 ! 3116: move.b d0,(a2)+ ! 3117: ! 3118: ; FSCALE.X -(An),FPn ! 3119: move.b #$04,(a2)+ ! 3120: fmovem.l #$0b000000,fpsr ! 3121: bsr set_fline ! 3122: moveq.l #0,d7 ! 3123: lea.l workarea(pc),a0 ! 3124: move.l d7,(a0)+ ! 3125: move.l d7,(a0)+ ! 3126: move.l d7,(a0)+ ! 3127: lea.l @f,a3 ! 3128: .dc.l $f2204826 ! 3129: @@: ! 3130: bsr restore_fline ! 3131: fmovem.l fpsr,d0 ! 3132: rol.l #8,d0 ! 3133: or.l d7,d0 ! 3134: move.b d0,(a2)+ ! 3135: ! 3136: ; FSCALE.P -(An),FPn ! 3137: move.b #$04,(a2)+ ! 3138: fmovem.l #$0b000000,fpsr ! 3139: bsr set_fline ! 3140: moveq.l #0,d7 ! 3141: lea.l workarea(pc),a0 ! 3142: move.l d7,(a0)+ ! 3143: move.l d7,(a0)+ ! 3144: move.l d7,(a0)+ ! 3145: lea.l @f,a3 ! 3146: .dc.l $f2204c26 ! 3147: @@: ! 3148: bsr restore_fline ! 3149: fmovem.l fpsr,d0 ! 3150: rol.l #8,d0 ! 3151: or.l d7,d0 ! 3152: move.b d0,(a2)+ ! 3153: ! 3154: lea.l msg_test_md,a0 ! 3155: moveq.l #7-1,d0 ! 3156: bsr print_result ! 3157: rts ! 3158: ! 3159: test_fscale_r: ! 3160: lea.l result(pc),a2 ! 3161: ; FSCALE.B d16(An),FPn ! 3162: move.b #$04,(a2)+ ! 3163: fmovem.l #$0b000000,fpsr ! 3164: bsr set_fline ! 3165: moveq.l #0,d7 ! 3166: lea.l workarea+12(pc),a0 ! 3167: move.l d7,-(a0) ! 3168: move.l d7,-(a0) ! 3169: move.l d7,-(a0) ! 3170: lea.l @f,a3 ! 3171: .dc.l $f2285826 ! 3172: .dc.w $0000 ! 3173: @@: ! 3174: bsr restore_fline ! 3175: fmovem.l fpsr,d0 ! 3176: rol.l #8,d0 ! 3177: or.l d7,d0 ! 3178: move.b d0,(a2)+ ! 3179: ! 3180: ; FSCALE.W d16(An),FPn ! 3181: move.b #$04,(a2)+ ! 3182: fmovem.l #$0b000000,fpsr ! 3183: bsr set_fline ! 3184: moveq.l #0,d7 ! 3185: lea.l workarea+12(pc),a0 ! 3186: move.l d7,-(a0) ! 3187: move.l d7,-(a0) ! 3188: move.l d7,-(a0) ! 3189: lea.l @f,a3 ! 3190: .dc.l $f2285026 ! 3191: .dc.w $0000 ! 3192: @@: ! 3193: bsr restore_fline ! 3194: fmovem.l fpsr,d0 ! 3195: rol.l #8,d0 ! 3196: or.l d7,d0 ! 3197: move.b d0,(a2)+ ! 3198: ! 3199: ; FSCALE.L d16(An),FPn ! 3200: move.b #$04,(a2)+ ! 3201: fmovem.l #$0b000000,fpsr ! 3202: bsr set_fline ! 3203: moveq.l #0,d7 ! 3204: lea.l workarea+12(pc),a0 ! 3205: move.l d7,-(a0) ! 3206: move.l d7,-(a0) ! 3207: move.l d7,-(a0) ! 3208: lea.l @f,a3 ! 3209: .dc.l $f2284026 ! 3210: .dc.w $0000 ! 3211: @@: ! 3212: bsr restore_fline ! 3213: fmovem.l fpsr,d0 ! 3214: rol.l #8,d0 ! 3215: or.l d7,d0 ! 3216: move.b d0,(a2)+ ! 3217: ! 3218: ; FSCALE.S d16(An),FPn ! 3219: move.b #$04,(a2)+ ! 3220: fmovem.l #$0b000000,fpsr ! 3221: bsr set_fline ! 3222: moveq.l #0,d7 ! 3223: lea.l workarea+12(pc),a0 ! 3224: move.l d7,-(a0) ! 3225: move.l d7,-(a0) ! 3226: move.l d7,-(a0) ! 3227: lea.l @f,a3 ! 3228: .dc.l $f2284426 ! 3229: .dc.w $0000 ! 3230: @@: ! 3231: bsr restore_fline ! 3232: fmovem.l fpsr,d0 ! 3233: rol.l #8,d0 ! 3234: or.l d7,d0 ! 3235: move.b d0,(a2)+ ! 3236: ! 3237: ; FSCALE.D d16(An),FPn ! 3238: move.b #$04,(a2)+ ! 3239: fmovem.l #$0b000000,fpsr ! 3240: bsr set_fline ! 3241: moveq.l #0,d7 ! 3242: lea.l workarea+12(pc),a0 ! 3243: move.l d7,-(a0) ! 3244: move.l d7,-(a0) ! 3245: move.l d7,-(a0) ! 3246: lea.l @f,a3 ! 3247: .dc.l $f2285426 ! 3248: .dc.w $0000 ! 3249: @@: ! 3250: bsr restore_fline ! 3251: fmovem.l fpsr,d0 ! 3252: rol.l #8,d0 ! 3253: or.l d7,d0 ! 3254: move.b d0,(a2)+ ! 3255: ! 3256: ; FSCALE.X d16(An),FPn ! 3257: move.b #$04,(a2)+ ! 3258: fmovem.l #$0b000000,fpsr ! 3259: bsr set_fline ! 3260: moveq.l #0,d7 ! 3261: lea.l workarea+12(pc),a0 ! 3262: move.l d7,-(a0) ! 3263: move.l d7,-(a0) ! 3264: move.l d7,-(a0) ! 3265: lea.l @f,a3 ! 3266: .dc.l $f2284826 ! 3267: .dc.w $0000 ! 3268: @@: ! 3269: bsr restore_fline ! 3270: fmovem.l fpsr,d0 ! 3271: rol.l #8,d0 ! 3272: or.l d7,d0 ! 3273: move.b d0,(a2)+ ! 3274: ! 3275: ; FSCALE.P d16(An),FPn ! 3276: move.b #$04,(a2)+ ! 3277: fmovem.l #$0b000000,fpsr ! 3278: bsr set_fline ! 3279: moveq.l #0,d7 ! 3280: lea.l workarea+12(pc),a0 ! 3281: move.l d7,-(a0) ! 3282: move.l d7,-(a0) ! 3283: move.l d7,-(a0) ! 3284: lea.l @f,a3 ! 3285: .dc.l $f2284c26 ! 3286: .dc.w $0000 ! 3287: @@: ! 3288: bsr restore_fline ! 3289: fmovem.l fpsr,d0 ! 3290: rol.l #8,d0 ! 3291: or.l d7,d0 ! 3292: move.b d0,(a2)+ ! 3293: ! 3294: lea.l msg_test_r,a0 ! 3295: moveq.l #7-1,d0 ! 3296: bsr print_result ! 3297: rts ! 3298: ! 3299: test_fscale_x: ! 3300: lea.l result(pc),a2 ! 3301: ; FSCALE.B d8(An,IX),FPn ! 3302: move.b #$04,(a2)+ ! 3303: fmovem.l #$0b000000,fpsr ! 3304: bsr set_fline ! 3305: moveq.l #0,d7 ! 3306: moveq.l #0,d4 ! 3307: lea.l workarea+12(pc),a0 ! 3308: move.l d7,-(a0) ! 3309: move.l d7,-(a0) ! 3310: move.l d7,-(a0) ! 3311: lea.l @f,a3 ! 3312: .dc.l $f2305826 ! 3313: .dc.w $4000 ! 3314: @@: ! 3315: bsr restore_fline ! 3316: fmovem.l fpsr,d0 ! 3317: rol.l #8,d0 ! 3318: or.l d7,d0 ! 3319: move.b d0,(a2)+ ! 3320: ! 3321: ; FSCALE.W d8(An,IX),FPn ! 3322: move.b #$04,(a2)+ ! 3323: fmovem.l #$0b000000,fpsr ! 3324: bsr set_fline ! 3325: moveq.l #0,d7 ! 3326: moveq.l #0,d4 ! 3327: lea.l workarea+12(pc),a0 ! 3328: move.l d7,-(a0) ! 3329: move.l d7,-(a0) ! 3330: move.l d7,-(a0) ! 3331: lea.l @f,a3 ! 3332: .dc.l $f2305026 ! 3333: .dc.w $4000 ! 3334: @@: ! 3335: bsr restore_fline ! 3336: fmovem.l fpsr,d0 ! 3337: rol.l #8,d0 ! 3338: or.l d7,d0 ! 3339: move.b d0,(a2)+ ! 3340: ! 3341: ; FSCALE.L d8(An,IX),FPn ! 3342: move.b #$04,(a2)+ ! 3343: fmovem.l #$0b000000,fpsr ! 3344: bsr set_fline ! 3345: moveq.l #0,d7 ! 3346: moveq.l #0,d4 ! 3347: lea.l workarea+12(pc),a0 ! 3348: move.l d7,-(a0) ! 3349: move.l d7,-(a0) ! 3350: move.l d7,-(a0) ! 3351: lea.l @f,a3 ! 3352: .dc.l $f2304026 ! 3353: .dc.w $4000 ! 3354: @@: ! 3355: bsr restore_fline ! 3356: fmovem.l fpsr,d0 ! 3357: rol.l #8,d0 ! 3358: or.l d7,d0 ! 3359: move.b d0,(a2)+ ! 3360: ! 3361: ; FSCALE.S d8(An,IX),FPn ! 3362: move.b #$04,(a2)+ ! 3363: fmovem.l #$0b000000,fpsr ! 3364: bsr set_fline ! 3365: moveq.l #0,d7 ! 3366: moveq.l #0,d4 ! 3367: lea.l workarea+12(pc),a0 ! 3368: move.l d7,-(a0) ! 3369: move.l d7,-(a0) ! 3370: move.l d7,-(a0) ! 3371: lea.l @f,a3 ! 3372: .dc.l $f2304426 ! 3373: .dc.w $4000 ! 3374: @@: ! 3375: bsr restore_fline ! 3376: fmovem.l fpsr,d0 ! 3377: rol.l #8,d0 ! 3378: or.l d7,d0 ! 3379: move.b d0,(a2)+ ! 3380: ! 3381: ; FSCALE.D d8(An,IX),FPn ! 3382: move.b #$04,(a2)+ ! 3383: fmovem.l #$0b000000,fpsr ! 3384: bsr set_fline ! 3385: moveq.l #0,d7 ! 3386: moveq.l #0,d4 ! 3387: lea.l workarea+12(pc),a0 ! 3388: move.l d7,-(a0) ! 3389: move.l d7,-(a0) ! 3390: move.l d7,-(a0) ! 3391: lea.l @f,a3 ! 3392: .dc.l $f2305426 ! 3393: .dc.w $4000 ! 3394: @@: ! 3395: bsr restore_fline ! 3396: fmovem.l fpsr,d0 ! 3397: rol.l #8,d0 ! 3398: or.l d7,d0 ! 3399: move.b d0,(a2)+ ! 3400: ! 3401: ; FSCALE.X d8(An,IX),FPn ! 3402: move.b #$04,(a2)+ ! 3403: fmovem.l #$0b000000,fpsr ! 3404: bsr set_fline ! 3405: moveq.l #0,d7 ! 3406: moveq.l #0,d4 ! 3407: lea.l workarea+12(pc),a0 ! 3408: move.l d7,-(a0) ! 3409: move.l d7,-(a0) ! 3410: move.l d7,-(a0) ! 3411: lea.l @f,a3 ! 3412: .dc.l $f2304826 ! 3413: .dc.w $4000 ! 3414: @@: ! 3415: bsr restore_fline ! 3416: fmovem.l fpsr,d0 ! 3417: rol.l #8,d0 ! 3418: or.l d7,d0 ! 3419: move.b d0,(a2)+ ! 3420: ! 3421: ; FSCALE.P d8(An,IX),FPn ! 3422: move.b #$04,(a2)+ ! 3423: fmovem.l #$0b000000,fpsr ! 3424: bsr set_fline ! 3425: moveq.l #0,d7 ! 3426: moveq.l #0,d4 ! 3427: lea.l workarea+12(pc),a0 ! 3428: move.l d7,-(a0) ! 3429: move.l d7,-(a0) ! 3430: move.l d7,-(a0) ! 3431: lea.l @f,a3 ! 3432: .dc.l $f2304c26 ! 3433: .dc.w $4000 ! 3434: @@: ! 3435: bsr restore_fline ! 3436: fmovem.l fpsr,d0 ! 3437: rol.l #8,d0 ! 3438: or.l d7,d0 ! 3439: move.b d0,(a2)+ ! 3440: ! 3441: lea.l msg_test_x,a0 ! 3442: moveq.l #7-1,d0 ! 3443: bsr print_result ! 3444: rts ! 3445: ! 3446: test_fscale_p: ! 3447: lea.l result(pc),a2 ! 3448: ; FSCALE.B (PC),FPn ! 3449: move.b #$04,(a2)+ ! 3450: fmovem.l #$0b000000,fpsr ! 3451: bsr set_fline ! 3452: moveq.l #0,d7 ! 3453: bra @f ! 3454: .dc.l 0, 0, 0 ! 3455: @@: ! 3456: lea.l @f,a3 ! 3457: .dc.l $f23a5826 ! 3458: .dc.w -4-6-12 ! 3459: @@: ! 3460: bsr restore_fline ! 3461: fmovem.l fpsr,d0 ! 3462: rol.l #8,d0 ! 3463: or.l d7,d0 ! 3464: move.b d0,(a2)+ ! 3465: ! 3466: ; FSCALE.W (PC),FPn ! 3467: move.b #$04,(a2)+ ! 3468: fmovem.l #$0b000000,fpsr ! 3469: bsr set_fline ! 3470: moveq.l #0,d7 ! 3471: bra @f ! 3472: .dc.l 0, 0, 0 ! 3473: @@: ! 3474: lea.l @f,a3 ! 3475: .dc.l $f23a5026 ! 3476: .dc.w -4-6-12 ! 3477: @@: ! 3478: bsr restore_fline ! 3479: fmovem.l fpsr,d0 ! 3480: rol.l #8,d0 ! 3481: or.l d7,d0 ! 3482: move.b d0,(a2)+ ! 3483: ! 3484: ; FSCALE.L (PC),FPn ! 3485: move.b #$04,(a2)+ ! 3486: fmovem.l #$0b000000,fpsr ! 3487: bsr set_fline ! 3488: moveq.l #0,d7 ! 3489: bra @f ! 3490: .dc.l 0, 0, 0 ! 3491: @@: ! 3492: lea.l @f,a3 ! 3493: .dc.l $f23a4026 ! 3494: .dc.w -4-6-12 ! 3495: @@: ! 3496: bsr restore_fline ! 3497: fmovem.l fpsr,d0 ! 3498: rol.l #8,d0 ! 3499: or.l d7,d0 ! 3500: move.b d0,(a2)+ ! 3501: ! 3502: ; FSCALE.S (PC),FPn ! 3503: move.b #$04,(a2)+ ! 3504: fmovem.l #$0b000000,fpsr ! 3505: bsr set_fline ! 3506: moveq.l #0,d7 ! 3507: bra @f ! 3508: .dc.l 0, 0, 0 ! 3509: @@: ! 3510: lea.l @f,a3 ! 3511: .dc.l $f23a4426 ! 3512: .dc.w -4-6-12 ! 3513: @@: ! 3514: bsr restore_fline ! 3515: fmovem.l fpsr,d0 ! 3516: rol.l #8,d0 ! 3517: or.l d7,d0 ! 3518: move.b d0,(a2)+ ! 3519: ! 3520: ; FSCALE.D (PC),FPn ! 3521: move.b #$04,(a2)+ ! 3522: fmovem.l #$0b000000,fpsr ! 3523: bsr set_fline ! 3524: moveq.l #0,d7 ! 3525: bra @f ! 3526: .dc.l 0, 0, 0 ! 3527: @@: ! 3528: lea.l @f,a3 ! 3529: .dc.l $f23a5426 ! 3530: .dc.w -4-6-12 ! 3531: @@: ! 3532: bsr restore_fline ! 3533: fmovem.l fpsr,d0 ! 3534: rol.l #8,d0 ! 3535: or.l d7,d0 ! 3536: move.b d0,(a2)+ ! 3537: ! 3538: ; FSCALE.X (PC),FPn ! 3539: move.b #$04,(a2)+ ! 3540: fmovem.l #$0b000000,fpsr ! 3541: bsr set_fline ! 3542: moveq.l #0,d7 ! 3543: bra @f ! 3544: .dc.l 0, 0, 0 ! 3545: @@: ! 3546: lea.l @f,a3 ! 3547: .dc.l $f23a4826 ! 3548: .dc.w -4-6-12 ! 3549: @@: ! 3550: bsr restore_fline ! 3551: fmovem.l fpsr,d0 ! 3552: rol.l #8,d0 ! 3553: or.l d7,d0 ! 3554: move.b d0,(a2)+ ! 3555: ! 3556: ; FSCALE.P (PC),FPn ! 3557: move.b #$04,(a2)+ ! 3558: fmovem.l #$0b000000,fpsr ! 3559: bsr set_fline ! 3560: moveq.l #0,d7 ! 3561: bra @f ! 3562: .dc.l 0, 0, 0 ! 3563: @@: ! 3564: lea.l @f,a3 ! 3565: .dc.l $f23a4c26 ! 3566: .dc.w -4-6-12 ! 3567: @@: ! 3568: bsr restore_fline ! 3569: fmovem.l fpsr,d0 ! 3570: rol.l #8,d0 ! 3571: or.l d7,d0 ! 3572: move.b d0,(a2)+ ! 3573: ! 3574: lea.l msg_test_p,a0 ! 3575: moveq.l #7-1,d0 ! 3576: bsr print_result ! 3577: rts ! 3578: ! 3579: test_fscale_i: ! 3580: lea.l result(pc),a2 ! 3581: ; FSCALE.B #imm,FPn ! 3582: move.b #$04,(a2)+ ! 3583: fmovem.l #$0b000000,fpsr ! 3584: bsr set_fline ! 3585: moveq.l #0,d7 ! 3586: lea.l @f,a3 ! 3587: .dc.l $f23c5826 ! 3588: .dc.w 0 ! 3589: @@: ! 3590: bsr restore_fline ! 3591: fmovem.l fpsr,d0 ! 3592: rol.l #8,d0 ! 3593: or.l d7,d0 ! 3594: move.b d0,(a2)+ ! 3595: ! 3596: ; FSCALE.W #imm,FPn ! 3597: move.b #$04,(a2)+ ! 3598: fmovem.l #$0b000000,fpsr ! 3599: bsr set_fline ! 3600: moveq.l #0,d7 ! 3601: lea.l @f,a3 ! 3602: .dc.l $f23c5026 ! 3603: .dc.w 0 ! 3604: @@: ! 3605: bsr restore_fline ! 3606: fmovem.l fpsr,d0 ! 3607: rol.l #8,d0 ! 3608: or.l d7,d0 ! 3609: move.b d0,(a2)+ ! 3610: ! 3611: ; FSCALE.L #imm,FPn ! 3612: move.b #$04,(a2)+ ! 3613: fmovem.l #$0b000000,fpsr ! 3614: bsr set_fline ! 3615: moveq.l #0,d7 ! 3616: lea.l @f,a3 ! 3617: .dc.l $f23c4026 ! 3618: .dc.l 0 ! 3619: @@: ! 3620: bsr restore_fline ! 3621: fmovem.l fpsr,d0 ! 3622: rol.l #8,d0 ! 3623: or.l d7,d0 ! 3624: move.b d0,(a2)+ ! 3625: ! 3626: ; FSCALE.S #imm,FPn ! 3627: move.b #$04,(a2)+ ! 3628: fmovem.l #$0b000000,fpsr ! 3629: bsr set_fline ! 3630: moveq.l #0,d7 ! 3631: lea.l @f,a3 ! 3632: .dc.l $f23c4426 ! 3633: .dc.l 0 ! 3634: @@: ! 3635: bsr restore_fline ! 3636: fmovem.l fpsr,d0 ! 3637: rol.l #8,d0 ! 3638: or.l d7,d0 ! 3639: move.b d0,(a2)+ ! 3640: ! 3641: ; FSCALE.D #imm,FPn ! 3642: move.b #$04,(a2)+ ! 3643: fmovem.l #$0b000000,fpsr ! 3644: bsr set_fline ! 3645: moveq.l #0,d7 ! 3646: lea.l @f,a3 ! 3647: .dc.l $f23c5426 ! 3648: .dc.l 0, 0 ! 3649: @@: ! 3650: bsr restore_fline ! 3651: fmovem.l fpsr,d0 ! 3652: rol.l #8,d0 ! 3653: or.l d7,d0 ! 3654: move.b d0,(a2)+ ! 3655: ! 3656: ; FSCALE.X #imm,FPn ! 3657: move.b #$04,(a2)+ ! 3658: fmovem.l #$0b000000,fpsr ! 3659: bsr set_fline ! 3660: moveq.l #0,d7 ! 3661: lea.l @f,a3 ! 3662: .dc.l $f23c4826 ! 3663: .dc.l 0, 0, 0 ! 3664: @@: ! 3665: bsr restore_fline ! 3666: fmovem.l fpsr,d0 ! 3667: rol.l #8,d0 ! 3668: or.l d7,d0 ! 3669: move.b d0,(a2)+ ! 3670: ! 3671: ; FSCALE.P #imm,FPn ! 3672: move.b #$04,(a2)+ ! 3673: fmovem.l #$0b000000,fpsr ! 3674: bsr set_fline ! 3675: moveq.l #0,d7 ! 3676: lea.l @f,a3 ! 3677: .dc.l $f23c4c26 ! 3678: .dc.l 0, 0, 0 ! 3679: @@: ! 3680: bsr restore_fline ! 3681: fmovem.l fpsr,d0 ! 3682: rol.l #8,d0 ! 3683: or.l d7,d0 ! 3684: move.b d0,(a2)+ ! 3685: ! 3686: lea.l msg_test_i,a0 ! 3687: moveq.l #7-1,d0 ! 3688: bsr print_result ! 3689: rts ! 3690: ! 3691: test_fscale_o: ! 3692: lea.l result(pc),a2 ! 3693: ; FSCALE.B 075,FPn ! 3694: move.b #$1b,(a2)+ ! 3695: fmovem.l #$0b000000,fpsr ! 3696: bsr set_fline ! 3697: moveq.l #0,d7 ! 3698: lea.l @f,a3 ! 3699: .dc.l $f23d5826 ! 3700: @@: ! 3701: bsr restore_fline ! 3702: fmovem.l fpsr,d0 ! 3703: rol.l #8,d0 ! 3704: or.l d7,d0 ! 3705: move.b d0,(a2)+ ! 3706: ! 3707: ; FSCALE.W 075,FPn ! 3708: move.b #$1b,(a2)+ ! 3709: fmovem.l #$0b000000,fpsr ! 3710: bsr set_fline ! 3711: moveq.l #0,d7 ! 3712: lea.l @f,a3 ! 3713: .dc.l $f23d5026 ! 3714: @@: ! 3715: bsr restore_fline ! 3716: fmovem.l fpsr,d0 ! 3717: rol.l #8,d0 ! 3718: or.l d7,d0 ! 3719: move.b d0,(a2)+ ! 3720: ! 3721: ; FSCALE.L 075,FPn ! 3722: move.b #$1b,(a2)+ ! 3723: fmovem.l #$0b000000,fpsr ! 3724: bsr set_fline ! 3725: moveq.l #0,d7 ! 3726: lea.l @f,a3 ! 3727: .dc.l $f23d4026 ! 3728: @@: ! 3729: bsr restore_fline ! 3730: fmovem.l fpsr,d0 ! 3731: rol.l #8,d0 ! 3732: or.l d7,d0 ! 3733: move.b d0,(a2)+ ! 3734: ! 3735: ; FSCALE.S 075,FPn ! 3736: move.b #$1b,(a2)+ ! 3737: fmovem.l #$0b000000,fpsr ! 3738: bsr set_fline ! 3739: moveq.l #0,d7 ! 3740: lea.l @f,a3 ! 3741: .dc.l $f23d4426 ! 3742: @@: ! 3743: bsr restore_fline ! 3744: fmovem.l fpsr,d0 ! 3745: rol.l #8,d0 ! 3746: or.l d7,d0 ! 3747: move.b d0,(a2)+ ! 3748: ! 3749: ; FSCALE.D 075,FPn ! 3750: move.b #$1b,(a2)+ ! 3751: fmovem.l #$0b000000,fpsr ! 3752: bsr set_fline ! 3753: moveq.l #0,d7 ! 3754: lea.l @f,a3 ! 3755: .dc.l $f23d5426 ! 3756: @@: ! 3757: bsr restore_fline ! 3758: fmovem.l fpsr,d0 ! 3759: rol.l #8,d0 ! 3760: or.l d7,d0 ! 3761: move.b d0,(a2)+ ! 3762: ! 3763: ; FSCALE.X 075,FPn ! 3764: move.b #$1b,(a2)+ ! 3765: fmovem.l #$0b000000,fpsr ! 3766: bsr set_fline ! 3767: moveq.l #0,d7 ! 3768: lea.l @f,a3 ! 3769: .dc.l $f23d4826 ! 3770: @@: ! 3771: bsr restore_fline ! 3772: fmovem.l fpsr,d0 ! 3773: rol.l #8,d0 ! 3774: or.l d7,d0 ! 3775: move.b d0,(a2)+ ! 3776: ! 3777: ; FSCALE.P 075,FPn ! 3778: move.b #$1b,(a2)+ ! 3779: fmovem.l #$0b000000,fpsr ! 3780: bsr set_fline ! 3781: moveq.l #0,d7 ! 3782: lea.l @f,a3 ! 3783: .dc.l $f23d4c26 ! 3784: @@: ! 3785: bsr restore_fline ! 3786: fmovem.l fpsr,d0 ! 3787: rol.l #8,d0 ! 3788: or.l d7,d0 ! 3789: move.b d0,(a2)+ ! 3790: ! 3791: lea.l msg_test_o,a0 ! 3792: moveq.l #7-1,d0 ! 3793: bsr print_result ! 3794: rts ! 3795: ! 3796: test_fscc_d: ! 3797: lea.l result(pc),a2 ! 3798: ; FScc.B Dn ! 3799: move.b #$0b,(a2)+ ! 3800: fmovem.l #$0b000000,fpsr ! 3801: bsr set_fline ! 3802: moveq.l #0,d7 ! 3803: lea.l @f,a3 ! 3804: .dc.l $f2460000 ! 3805: @@: ! 3806: bsr restore_fline ! 3807: fmovem.l fpsr,d0 ! 3808: rol.l #8,d0 ! 3809: or.l d7,d0 ! 3810: move.b d0,(a2)+ ! 3811: ! 3812: lea.l msg_test_d,a0 ! 3813: moveq.l #1-1,d0 ! 3814: bsr print_result ! 3815: rts ! 3816: ! 3817: test_fscc_m: ! 3818: lea.l result(pc),a2 ! 3819: ; FScc.B (An) ! 3820: move.b #$0b,(a2)+ ! 3821: fmovem.l #$0b000000,fpsr ! 3822: bsr set_fline ! 3823: moveq.l #0,d7 ! 3824: lea.l workarea(pc),a0 ! 3825: lea.l @f,a3 ! 3826: .dc.l $f2500000 ! 3827: @@: ! 3828: bsr restore_fline ! 3829: fmovem.l fpsr,d0 ! 3830: rol.l #8,d0 ! 3831: or.l d7,d0 ! 3832: move.b d0,(a2)+ ! 3833: ! 3834: lea.l msg_test_m,a0 ! 3835: moveq.l #1-1,d0 ! 3836: bsr print_result ! 3837: rts ! 3838: ! 3839: test_fscc_mi: ! 3840: lea.l result(pc),a2 ! 3841: ; FScc.B (An)+ ! 3842: move.b #$0b,(a2)+ ! 3843: fmovem.l #$0b000000,fpsr ! 3844: bsr set_fline ! 3845: moveq.l #0,d7 ! 3846: lea.l workarea(pc),a0 ! 3847: lea.l @f,a3 ! 3848: .dc.l $f2580000 ! 3849: @@: ! 3850: bsr restore_fline ! 3851: fmovem.l fpsr,d0 ! 3852: rol.l #8,d0 ! 3853: or.l d7,d0 ! 3854: move.b d0,(a2)+ ! 3855: ! 3856: lea.l msg_test_mi,a0 ! 3857: moveq.l #1-1,d0 ! 3858: bsr print_result ! 3859: rts ! 3860: ! 3861: test_fscc_md: ! 3862: lea.l result(pc),a2 ! 3863: ; FScc.B -(An) ! 3864: move.b #$0b,(a2)+ ! 3865: fmovem.l #$0b000000,fpsr ! 3866: bsr set_fline ! 3867: moveq.l #0,d7 ! 3868: lea.l workarea+12(pc),a0 ! 3869: lea.l @f,a3 ! 3870: .dc.l $f2600000 ! 3871: @@: ! 3872: bsr restore_fline ! 3873: fmovem.l fpsr,d0 ! 3874: rol.l #8,d0 ! 3875: or.l d7,d0 ! 3876: move.b d0,(a2)+ ! 3877: ! 3878: lea.l msg_test_md,a0 ! 3879: moveq.l #1-1,d0 ! 3880: bsr print_result ! 3881: rts ! 3882: ! 3883: test_fscc_r: ! 3884: lea.l result(pc),a2 ! 3885: ; FScc.B d16(An) ! 3886: move.b #$0b,(a2)+ ! 3887: fmovem.l #$0b000000,fpsr ! 3888: bsr set_fline ! 3889: moveq.l #0,d7 ! 3890: lea.l workarea(pc),a0 ! 3891: lea.l @f,a3 ! 3892: .dc.l $f2680000 ! 3893: .dc.w $0000 ! 3894: @@: ! 3895: bsr restore_fline ! 3896: fmovem.l fpsr,d0 ! 3897: rol.l #8,d0 ! 3898: or.l d7,d0 ! 3899: move.b d0,(a2)+ ! 3900: ! 3901: lea.l msg_test_r,a0 ! 3902: moveq.l #1-1,d0 ! 3903: bsr print_result ! 3904: rts ! 3905: ! 3906: test_fscc_x: ! 3907: lea.l result(pc),a2 ! 3908: ; FScc.B d8(An,IX) ! 3909: move.b #$0b,(a2)+ ! 3910: fmovem.l #$0b000000,fpsr ! 3911: bsr set_fline ! 3912: moveq.l #0,d7 ! 3913: moveq.l #0,d4 ! 3914: lea.l workarea(pc),a0 ! 3915: lea.l @f,a3 ! 3916: .dc.l $f2700000 ! 3917: .dc.w $4000 ! 3918: @@: ! 3919: bsr restore_fline ! 3920: fmovem.l fpsr,d0 ! 3921: rol.l #8,d0 ! 3922: or.l d7,d0 ! 3923: move.b d0,(a2)+ ! 3924: ! 3925: lea.l msg_test_x,a0 ! 3926: moveq.l #1-1,d0 ! 3927: bsr print_result ! 3928: rts ! 3929: ! 3930: test_fscc_o: ! 3931: lea.l result(pc),a2 ! 3932: ; FScc.B 075 ! 3933: move.b #$1b,(a2)+ ! 3934: fmovem.l #$0b000000,fpsr ! 3935: bsr set_fline ! 3936: moveq.l #0,d7 ! 3937: lea.l @f,a3 ! 3938: .dc.l $f27d0000 ! 3939: @@: ! 3940: bsr restore_fline ! 3941: fmovem.l fpsr,d0 ! 3942: rol.l #8,d0 ! 3943: or.l d7,d0 ! 3944: move.b d0,(a2)+ ! 3945: ! 3946: lea.l msg_test_o,a0 ! 3947: moveq.l #1-1,d0 ! 3948: bsr print_result ! 3949: rts ! 3950: ! 3951: test_fmovem_rm_d: ! 3952: lea.l result(pc),a2 ! 3953: ; FMOVEM.X FPn,Dn ! 3954: move.b #$1b,(a2)+ ! 3955: fmovem.l #$0b000000,fpsr ! 3956: bsr set_fline ! 3957: moveq.l #0,d7 ! 3958: lea.l @f,a3 ! 3959: .dc.l $f206f001 ! 3960: @@: ! 3961: bsr restore_fline ! 3962: fmovem.l fpsr,d0 ! 3963: rol.l #8,d0 ! 3964: or.l d7,d0 ! 3965: move.b d0,(a2)+ ! 3966: ! 3967: lea.l msg_test_d,a0 ! 3968: moveq.l #1-1,d0 ! 3969: bsr print_result ! 3970: rts ! 3971: ! 3972: test_fmovem_rm_a: ! 3973: lea.l result(pc),a2 ! 3974: ; FMOVEM.X FPn,An ! 3975: move.b #$1b,(a2)+ ! 3976: fmovem.l #$0b000000,fpsr ! 3977: bsr set_fline ! 3978: moveq.l #0,d7 ! 3979: lea.l @f,a3 ! 3980: .dc.l $f208f001 ! 3981: @@: ! 3982: bsr restore_fline ! 3983: fmovem.l fpsr,d0 ! 3984: rol.l #8,d0 ! 3985: or.l d7,d0 ! 3986: move.b d0,(a2)+ ! 3987: ! 3988: lea.l msg_test_a,a0 ! 3989: moveq.l #1-1,d0 ! 3990: bsr print_result ! 3991: rts ! 3992: ! 3993: test_fmovem_rm_m: ! 3994: lea.l result(pc),a2 ! 3995: ; FMOVEM.X FPn,(An) ! 3996: move.b #$0b,(a2)+ ! 3997: fmovem.l #$0b000000,fpsr ! 3998: bsr set_fline ! 3999: moveq.l #0,d7 ! 4000: lea.l workarea(pc),a0 ! 4001: lea.l @f,a3 ! 4002: .dc.l $f210f001 ! 4003: @@: ! 4004: bsr restore_fline ! 4005: fmovem.l fpsr,d0 ! 4006: rol.l #8,d0 ! 4007: or.l d7,d0 ! 4008: move.b d0,(a2)+ ! 4009: ! 4010: lea.l msg_test_m,a0 ! 4011: moveq.l #1-1,d0 ! 4012: bsr print_result ! 4013: rts ! 4014: ! 4015: test_fmovem_rm_mi: ! 4016: lea.l result(pc),a2 ! 4017: ; FMOVEM.X FPn,(An)+ ! 4018: move.b #$1b,(a2)+ ! 4019: fmovem.l #$0b000000,fpsr ! 4020: bsr set_fline ! 4021: moveq.l #0,d7 ! 4022: lea.l workarea(pc),a0 ! 4023: lea.l @f,a3 ! 4024: .dc.l $f218f001 ! 4025: @@: ! 4026: bsr restore_fline ! 4027: fmovem.l fpsr,d0 ! 4028: rol.l #8,d0 ! 4029: or.l d7,d0 ! 4030: move.b d0,(a2)+ ! 4031: ! 4032: lea.l msg_test_mi,a0 ! 4033: moveq.l #1-1,d0 ! 4034: bsr print_result ! 4035: rts ! 4036: ! 4037: test_fmovem_rm_md: ! 4038: lea.l result(pc),a2 ! 4039: ; FMOVEM.X FPn,-(An) ! 4040: move.b #$0b,(a2)+ ! 4041: fmovem.l #$0b000000,fpsr ! 4042: bsr set_fline ! 4043: moveq.l #0,d7 ! 4044: lea.l workarea+12(pc),a0 ! 4045: lea.l @f,a3 ! 4046: .dc.l $f220e001 ! 4047: @@: ! 4048: bsr restore_fline ! 4049: fmovem.l fpsr,d0 ! 4050: rol.l #8,d0 ! 4051: or.l d7,d0 ! 4052: move.b d0,(a2)+ ! 4053: ! 4054: lea.l msg_test_md,a0 ! 4055: moveq.l #1-1,d0 ! 4056: bsr print_result ! 4057: rts ! 4058: ! 4059: test_fmovem_rm_r: ! 4060: lea.l result(pc),a2 ! 4061: ; FMOVEM.X FPn,d16(An) ! 4062: move.b #$0b,(a2)+ ! 4063: fmovem.l #$0b000000,fpsr ! 4064: bsr set_fline ! 4065: moveq.l #0,d7 ! 4066: lea.l workarea(pc),a0 ! 4067: lea.l @f,a3 ! 4068: .dc.l $f228f001 ! 4069: .dc.w $0000 ! 4070: @@: ! 4071: bsr restore_fline ! 4072: fmovem.l fpsr,d0 ! 4073: rol.l #8,d0 ! 4074: or.l d7,d0 ! 4075: move.b d0,(a2)+ ! 4076: ! 4077: lea.l msg_test_r,a0 ! 4078: moveq.l #1-1,d0 ! 4079: bsr print_result ! 4080: rts ! 4081: ! 4082: test_fmovem_rm_x: ! 4083: lea.l result(pc),a2 ! 4084: ; FMOVEM.X FPn,d8(An,IX) ! 4085: move.b #$0b,(a2)+ ! 4086: fmovem.l #$0b000000,fpsr ! 4087: bsr set_fline ! 4088: moveq.l #0,d7 ! 4089: moveq.l #0,d4 ! 4090: lea.l workarea(pc),a0 ! 4091: lea.l @f,a3 ! 4092: .dc.l $f230f001 ! 4093: .dc.w $4000 ! 4094: @@: ! 4095: bsr restore_fline ! 4096: fmovem.l fpsr,d0 ! 4097: rol.l #8,d0 ! 4098: or.l d7,d0 ! 4099: move.b d0,(a2)+ ! 4100: ! 4101: lea.l msg_test_x,a0 ! 4102: moveq.l #1-1,d0 ! 4103: bsr print_result ! 4104: rts ! 4105: ! 4106: test_fmovem_rm_p: ! 4107: lea.l result(pc),a2 ! 4108: ; FMOVEM.X FPn,(PC) ! 4109: move.b #$1b,(a2)+ ! 4110: fmovem.l #$0b000000,fpsr ! 4111: bsr set_fline ! 4112: moveq.l #0,d7 ! 4113: lea.l @f,a3 ! 4114: .dc.l $f23af001 ! 4115: @@: ! 4116: bsr restore_fline ! 4117: fmovem.l fpsr,d0 ! 4118: rol.l #8,d0 ! 4119: or.l d7,d0 ! 4120: move.b d0,(a2)+ ! 4121: ! 4122: lea.l msg_test_p,a0 ! 4123: moveq.l #1-1,d0 ! 4124: bsr print_result ! 4125: rts ! 4126: ! 4127: test_fmovem_rm_i: ! 4128: lea.l result(pc),a2 ! 4129: ; FMOVEM.X FPn,#imm ! 4130: move.b #$1b,(a2)+ ! 4131: fmovem.l #$0b000000,fpsr ! 4132: bsr set_fline ! 4133: moveq.l #0,d7 ! 4134: lea.l @f,a3 ! 4135: .dc.l $f23cf001 ! 4136: @@: ! 4137: bsr restore_fline ! 4138: fmovem.l fpsr,d0 ! 4139: rol.l #8,d0 ! 4140: or.l d7,d0 ! 4141: move.b d0,(a2)+ ! 4142: ! 4143: lea.l msg_test_i,a0 ! 4144: moveq.l #1-1,d0 ! 4145: bsr print_result ! 4146: rts ! 4147: ! 4148: test_fmovem_rm_o: ! 4149: lea.l result(pc),a2 ! 4150: ; FMOVEM.X FPn,075 ! 4151: move.b #$1b,(a2)+ ! 4152: fmovem.l #$0b000000,fpsr ! 4153: bsr set_fline ! 4154: moveq.l #0,d7 ! 4155: lea.l @f,a3 ! 4156: .dc.l $f23df001 ! 4157: @@: ! 4158: bsr restore_fline ! 4159: fmovem.l fpsr,d0 ! 4160: rol.l #8,d0 ! 4161: or.l d7,d0 ! 4162: move.b d0,(a2)+ ! 4163: ! 4164: lea.l msg_test_o,a0 ! 4165: moveq.l #1-1,d0 ! 4166: bsr print_result ! 4167: rts ! 4168: ! 4169: test_fmovem_mr_d: ! 4170: lea.l result(pc),a2 ! 4171: ; FMOVEM.X Dn,FPn ! 4172: move.b #$1b,(a2)+ ! 4173: fmovem.l #$0b000000,fpsr ! 4174: bsr set_fline ! 4175: moveq.l #0,d7 ! 4176: moveq.l #0,d6 ! 4177: lea.l @f,a3 ! 4178: .dc.l $f206d001 ! 4179: @@: ! 4180: bsr restore_fline ! 4181: fmovem.l fpsr,d0 ! 4182: rol.l #8,d0 ! 4183: or.l d7,d0 ! 4184: move.b d0,(a2)+ ! 4185: ! 4186: lea.l msg_test_d,a0 ! 4187: moveq.l #1-1,d0 ! 4188: bsr print_result ! 4189: rts ! 4190: ! 4191: test_fmovem_mr_a: ! 4192: lea.l result(pc),a2 ! 4193: ; FMOVEM.X An,FPn ! 4194: move.b #$1b,(a2)+ ! 4195: fmovem.l #$0b000000,fpsr ! 4196: bsr set_fline ! 4197: moveq.l #0,d7 ! 4198: lea.l @f,a3 ! 4199: .dc.l $f208d001 ! 4200: @@: ! 4201: bsr restore_fline ! 4202: fmovem.l fpsr,d0 ! 4203: rol.l #8,d0 ! 4204: or.l d7,d0 ! 4205: move.b d0,(a2)+ ! 4206: ! 4207: lea.l msg_test_a,a0 ! 4208: moveq.l #1-1,d0 ! 4209: bsr print_result ! 4210: rts ! 4211: ! 4212: test_fmovem_mr_m: ! 4213: lea.l result(pc),a2 ! 4214: ; FMOVEM.X (An),FPn ! 4215: move.b #$0b,(a2)+ ! 4216: fmovem.l #$0b000000,fpsr ! 4217: bsr set_fline ! 4218: moveq.l #0,d7 ! 4219: lea.l workarea+12(pc),a0 ! 4220: move.l d7,-(a0) ! 4221: move.l d7,-(a0) ! 4222: move.l d7,-(a0) ! 4223: lea.l @f,a3 ! 4224: .dc.l $f210d001 ! 4225: @@: ! 4226: bsr restore_fline ! 4227: fmovem.l fpsr,d0 ! 4228: rol.l #8,d0 ! 4229: or.l d7,d0 ! 4230: move.b d0,(a2)+ ! 4231: ! 4232: lea.l msg_test_m,a0 ! 4233: moveq.l #1-1,d0 ! 4234: bsr print_result ! 4235: rts ! 4236: ! 4237: test_fmovem_mr_mi: ! 4238: lea.l result(pc),a2 ! 4239: ; FMOVEM.X (An)+,FPn ! 4240: move.b #$0b,(a2)+ ! 4241: fmovem.l #$0b000000,fpsr ! 4242: bsr set_fline ! 4243: moveq.l #0,d7 ! 4244: lea.l workarea+12(pc),a0 ! 4245: move.l d7,-(a0) ! 4246: move.l d7,-(a0) ! 4247: move.l d7,-(a0) ! 4248: lea.l @f,a3 ! 4249: .dc.l $f218d001 ! 4250: @@: ! 4251: bsr restore_fline ! 4252: fmovem.l fpsr,d0 ! 4253: rol.l #8,d0 ! 4254: or.l d7,d0 ! 4255: move.b d0,(a2)+ ! 4256: ! 4257: lea.l msg_test_mi,a0 ! 4258: moveq.l #1-1,d0 ! 4259: bsr print_result ! 4260: rts ! 4261: ! 4262: test_fmovem_mr_md: ! 4263: lea.l result(pc),a2 ! 4264: ; FMOVEM.X -(An),FPn ! 4265: move.b #$1b,(a2)+ ! 4266: fmovem.l #$0b000000,fpsr ! 4267: bsr set_fline ! 4268: moveq.l #0,d7 ! 4269: lea.l workarea(pc),a0 ! 4270: move.l d7,(a0)+ ! 4271: move.l d7,(a0)+ ! 4272: move.l d7,(a0)+ ! 4273: lea.l @f,a3 ! 4274: .dc.l $f220c001 ! 4275: @@: ! 4276: bsr restore_fline ! 4277: fmovem.l fpsr,d0 ! 4278: rol.l #8,d0 ! 4279: or.l d7,d0 ! 4280: move.b d0,(a2)+ ! 4281: ! 4282: lea.l msg_test_md,a0 ! 4283: moveq.l #1-1,d0 ! 4284: bsr print_result ! 4285: rts ! 4286: ! 4287: test_fmovem_mr_r: ! 4288: lea.l result(pc),a2 ! 4289: ; FMOVEM.X d16(An),FPn ! 4290: move.b #$0b,(a2)+ ! 4291: fmovem.l #$0b000000,fpsr ! 4292: bsr set_fline ! 4293: moveq.l #0,d7 ! 4294: lea.l workarea+12(pc),a0 ! 4295: move.l d7,-(a0) ! 4296: move.l d7,-(a0) ! 4297: move.l d7,-(a0) ! 4298: lea.l @f,a3 ! 4299: .dc.l $f228d001 ! 4300: .dc.w $0000 ! 4301: @@: ! 4302: bsr restore_fline ! 4303: fmovem.l fpsr,d0 ! 4304: rol.l #8,d0 ! 4305: or.l d7,d0 ! 4306: move.b d0,(a2)+ ! 4307: ! 4308: lea.l msg_test_r,a0 ! 4309: moveq.l #1-1,d0 ! 4310: bsr print_result ! 4311: rts ! 4312: ! 4313: test_fmovem_mr_x: ! 4314: lea.l result(pc),a2 ! 4315: ; FMOVEM.X d8(An,IX),FPn ! 4316: move.b #$0b,(a2)+ ! 4317: fmovem.l #$0b000000,fpsr ! 4318: bsr set_fline ! 4319: moveq.l #0,d7 ! 4320: moveq.l #0,d4 ! 4321: lea.l workarea+12(pc),a0 ! 4322: move.l d7,-(a0) ! 4323: move.l d7,-(a0) ! 4324: move.l d7,-(a0) ! 4325: lea.l @f,a3 ! 4326: .dc.l $f230d001 ! 4327: .dc.w $4000 ! 4328: @@: ! 4329: bsr restore_fline ! 4330: fmovem.l fpsr,d0 ! 4331: rol.l #8,d0 ! 4332: or.l d7,d0 ! 4333: move.b d0,(a2)+ ! 4334: ! 4335: lea.l msg_test_x,a0 ! 4336: moveq.l #1-1,d0 ! 4337: bsr print_result ! 4338: rts ! 4339: ! 4340: test_fmovem_mr_p: ! 4341: lea.l result(pc),a2 ! 4342: ; FMOVEM.X (PC),FPn ! 4343: move.b #$0b,(a2)+ ! 4344: fmovem.l #$0b000000,fpsr ! 4345: bsr set_fline ! 4346: moveq.l #0,d7 ! 4347: bra @f ! 4348: .dc.l 0, 0, 0 ! 4349: @@: ! 4350: lea.l @f,a3 ! 4351: .dc.l $f23ad001 ! 4352: .dc.w -4-6-12 ! 4353: @@: ! 4354: bsr restore_fline ! 4355: fmovem.l fpsr,d0 ! 4356: rol.l #8,d0 ! 4357: or.l d7,d0 ! 4358: move.b d0,(a2)+ ! 4359: ! 4360: lea.l msg_test_p,a0 ! 4361: moveq.l #1-1,d0 ! 4362: bsr print_result ! 4363: rts ! 4364: ! 4365: test_fmovem_mr_i: ! 4366: lea.l result(pc),a2 ! 4367: ; FMOVEM.X #imm,FPn ! 4368: move.b #$1b,(a2)+ ! 4369: fmovem.l #$0b000000,fpsr ! 4370: bsr set_fline ! 4371: moveq.l #0,d7 ! 4372: lea.l @f,a3 ! 4373: .dc.l $f23cd001 ! 4374: .dc.l 0, 0, 0 ! 4375: @@: ! 4376: bsr restore_fline ! 4377: fmovem.l fpsr,d0 ! 4378: rol.l #8,d0 ! 4379: or.l d7,d0 ! 4380: move.b d0,(a2)+ ! 4381: ! 4382: lea.l msg_test_i,a0 ! 4383: moveq.l #1-1,d0 ! 4384: bsr print_result ! 4385: rts ! 4386: ! 4387: test_fmovem_mr_o: ! 4388: lea.l result(pc),a2 ! 4389: ; FMOVEM.X 075,FPn ! 4390: move.b #$1b,(a2)+ ! 4391: fmovem.l #$0b000000,fpsr ! 4392: bsr set_fline ! 4393: moveq.l #0,d7 ! 4394: lea.l @f,a3 ! 4395: .dc.l $f23dd001 ! 4396: @@: ! 4397: bsr restore_fline ! 4398: fmovem.l fpsr,d0 ! 4399: rol.l #8,d0 ! 4400: or.l d7,d0 ! 4401: move.b d0,(a2)+ ! 4402: ! 4403: lea.l msg_test_o,a0 ! 4404: moveq.l #1-1,d0 ! 4405: bsr print_result ! 4406: rts ! 4407: ! 4408: test_fmovem_cm_d: ! 4409: lea.l result(pc),a2 ! 4410: ; FMOVEM.L FPCR,Dn ! 4411: move.b #$0b,(a2)+ ! 4412: fmovem.l #$0b000000,fpsr ! 4413: bsr set_fline ! 4414: moveq.l #0,d7 ! 4415: lea.l @f,a3 ! 4416: .dc.l $f206b000 ! 4417: @@: ! 4418: bsr restore_fline ! 4419: fmovem.l fpsr,d0 ! 4420: rol.l #8,d0 ! 4421: or.l d7,d0 ! 4422: move.b d0,(a2)+ ! 4423: ! 4424: ; FMOVEM.L FPSR,Dn ! 4425: move.b #$0b,(a2)+ ! 4426: fmovem.l #$0b000000,fpsr ! 4427: bsr set_fline ! 4428: moveq.l #0,d7 ! 4429: lea.l @f,a3 ! 4430: .dc.l $f206a800 ! 4431: @@: ! 4432: bsr restore_fline ! 4433: fmovem.l fpsr,d0 ! 4434: rol.l #8,d0 ! 4435: or.l d7,d0 ! 4436: move.b d0,(a2)+ ! 4437: ! 4438: ; FMOVEM.L FPIAR,Dn ! 4439: move.b #$0b,(a2)+ ! 4440: fmovem.l #$0b000000,fpsr ! 4441: bsr set_fline ! 4442: moveq.l #0,d7 ! 4443: lea.l @f,a3 ! 4444: .dc.l $f206a400 ! 4445: @@: ! 4446: bsr restore_fline ! 4447: fmovem.l fpsr,d0 ! 4448: rol.l #8,d0 ! 4449: or.l d7,d0 ! 4450: move.b d0,(a2)+ ! 4451: ! 4452: ; FMOVEM.L FPSR/FPIAR,Dn ! 4453: move.b #$1b,(a2)+ ! 4454: fmovem.l #$0b000000,fpsr ! 4455: bsr set_fline ! 4456: moveq.l #0,d7 ! 4457: lea.l @f,a3 ! 4458: .dc.l $f206ac00 ! 4459: @@: ! 4460: bsr restore_fline ! 4461: fmovem.l fpsr,d0 ! 4462: rol.l #8,d0 ! 4463: or.l d7,d0 ! 4464: move.b d0,(a2)+ ! 4465: ! 4466: lea.l msg_test_d,a0 ! 4467: moveq.l #4-1,d0 ! 4468: bsr print_result ! 4469: rts ! 4470: ! 4471: test_fmovem_cm_a: ! 4472: lea.l result(pc),a2 ! 4473: ; FMOVEM.L FPCR,An ! 4474: move.b #$1b,(a2)+ ! 4475: fmovem.l #$0b000000,fpsr ! 4476: bsr set_fline ! 4477: moveq.l #0,d7 ! 4478: lea.l @f,a3 ! 4479: .dc.l $f208b000 ! 4480: @@: ! 4481: bsr restore_fline ! 4482: fmovem.l fpsr,d0 ! 4483: rol.l #8,d0 ! 4484: or.l d7,d0 ! 4485: move.b d0,(a2)+ ! 4486: ! 4487: ; FMOVEM.L FPSR,An ! 4488: move.b #$1b,(a2)+ ! 4489: fmovem.l #$0b000000,fpsr ! 4490: bsr set_fline ! 4491: moveq.l #0,d7 ! 4492: lea.l @f,a3 ! 4493: .dc.l $f208a800 ! 4494: @@: ! 4495: bsr restore_fline ! 4496: fmovem.l fpsr,d0 ! 4497: rol.l #8,d0 ! 4498: or.l d7,d0 ! 4499: move.b d0,(a2)+ ! 4500: ! 4501: ; FMOVEM.L FPIAR,An ! 4502: move.b #$0b,(a2)+ ! 4503: fmovem.l #$0b000000,fpsr ! 4504: bsr set_fline ! 4505: moveq.l #0,d7 ! 4506: lea.l @f,a3 ! 4507: .dc.l $f208a400 ! 4508: @@: ! 4509: bsr restore_fline ! 4510: fmovem.l fpsr,d0 ! 4511: rol.l #8,d0 ! 4512: or.l d7,d0 ! 4513: move.b d0,(a2)+ ! 4514: ! 4515: ; FMOVEM.L FPSR/FPIAR,An ! 4516: move.b #$1b,(a2)+ ! 4517: fmovem.l #$0b000000,fpsr ! 4518: bsr set_fline ! 4519: moveq.l #0,d7 ! 4520: lea.l @f,a3 ! 4521: .dc.l $f208ac00 ! 4522: @@: ! 4523: bsr restore_fline ! 4524: fmovem.l fpsr,d0 ! 4525: rol.l #8,d0 ! 4526: or.l d7,d0 ! 4527: move.b d0,(a2)+ ! 4528: ! 4529: lea.l msg_test_a,a0 ! 4530: moveq.l #4-1,d0 ! 4531: bsr print_result ! 4532: rts ! 4533: ! 4534: test_fmovem_cm_m: ! 4535: lea.l result(pc),a2 ! 4536: ; FMOVEM.L FPCR,(An) ! 4537: move.b #$0b,(a2)+ ! 4538: fmovem.l #$0b000000,fpsr ! 4539: bsr set_fline ! 4540: moveq.l #0,d7 ! 4541: lea.l workarea(pc),a0 ! 4542: lea.l @f,a3 ! 4543: .dc.l $f210b000 ! 4544: @@: ! 4545: bsr restore_fline ! 4546: fmovem.l fpsr,d0 ! 4547: rol.l #8,d0 ! 4548: or.l d7,d0 ! 4549: move.b d0,(a2)+ ! 4550: ! 4551: ; FMOVEM.L FPSR,(An) ! 4552: move.b #$0b,(a2)+ ! 4553: fmovem.l #$0b000000,fpsr ! 4554: bsr set_fline ! 4555: moveq.l #0,d7 ! 4556: lea.l workarea(pc),a0 ! 4557: lea.l @f,a3 ! 4558: .dc.l $f210a800 ! 4559: @@: ! 4560: bsr restore_fline ! 4561: fmovem.l fpsr,d0 ! 4562: rol.l #8,d0 ! 4563: or.l d7,d0 ! 4564: move.b d0,(a2)+ ! 4565: ! 4566: ; FMOVEM.L FPIAR,(An) ! 4567: move.b #$0b,(a2)+ ! 4568: fmovem.l #$0b000000,fpsr ! 4569: bsr set_fline ! 4570: moveq.l #0,d7 ! 4571: lea.l workarea(pc),a0 ! 4572: lea.l @f,a3 ! 4573: .dc.l $f210a400 ! 4574: @@: ! 4575: bsr restore_fline ! 4576: fmovem.l fpsr,d0 ! 4577: rol.l #8,d0 ! 4578: or.l d7,d0 ! 4579: move.b d0,(a2)+ ! 4580: ! 4581: ; FMOVEM.L FPSR/FPIAR,(An) ! 4582: move.b #$0b,(a2)+ ! 4583: fmovem.l #$0b000000,fpsr ! 4584: bsr set_fline ! 4585: moveq.l #0,d7 ! 4586: lea.l workarea(pc),a0 ! 4587: lea.l @f,a3 ! 4588: .dc.l $f210ac00 ! 4589: @@: ! 4590: bsr restore_fline ! 4591: fmovem.l fpsr,d0 ! 4592: rol.l #8,d0 ! 4593: or.l d7,d0 ! 4594: move.b d0,(a2)+ ! 4595: ! 4596: lea.l msg_test_m,a0 ! 4597: moveq.l #4-1,d0 ! 4598: bsr print_result ! 4599: rts ! 4600: ! 4601: test_fmovem_cm_mi: ! 4602: lea.l result(pc),a2 ! 4603: ; FMOVEM.L FPCR,(An)+ ! 4604: move.b #$0b,(a2)+ ! 4605: fmovem.l #$0b000000,fpsr ! 4606: bsr set_fline ! 4607: moveq.l #0,d7 ! 4608: lea.l workarea(pc),a0 ! 4609: lea.l @f,a3 ! 4610: .dc.l $f218b000 ! 4611: @@: ! 4612: bsr restore_fline ! 4613: fmovem.l fpsr,d0 ! 4614: rol.l #8,d0 ! 4615: or.l d7,d0 ! 4616: move.b d0,(a2)+ ! 4617: ! 4618: ; FMOVEM.L FPSR,(An)+ ! 4619: move.b #$0b,(a2)+ ! 4620: fmovem.l #$0b000000,fpsr ! 4621: bsr set_fline ! 4622: moveq.l #0,d7 ! 4623: lea.l workarea(pc),a0 ! 4624: lea.l @f,a3 ! 4625: .dc.l $f218a800 ! 4626: @@: ! 4627: bsr restore_fline ! 4628: fmovem.l fpsr,d0 ! 4629: rol.l #8,d0 ! 4630: or.l d7,d0 ! 4631: move.b d0,(a2)+ ! 4632: ! 4633: ; FMOVEM.L FPIAR,(An)+ ! 4634: move.b #$0b,(a2)+ ! 4635: fmovem.l #$0b000000,fpsr ! 4636: bsr set_fline ! 4637: moveq.l #0,d7 ! 4638: lea.l workarea(pc),a0 ! 4639: lea.l @f,a3 ! 4640: .dc.l $f218a400 ! 4641: @@: ! 4642: bsr restore_fline ! 4643: fmovem.l fpsr,d0 ! 4644: rol.l #8,d0 ! 4645: or.l d7,d0 ! 4646: move.b d0,(a2)+ ! 4647: ! 4648: ; FMOVEM.L FPSR/FPIAR,(An)+ ! 4649: move.b #$0b,(a2)+ ! 4650: fmovem.l #$0b000000,fpsr ! 4651: bsr set_fline ! 4652: moveq.l #0,d7 ! 4653: lea.l workarea(pc),a0 ! 4654: lea.l @f,a3 ! 4655: .dc.l $f218ac00 ! 4656: @@: ! 4657: bsr restore_fline ! 4658: fmovem.l fpsr,d0 ! 4659: rol.l #8,d0 ! 4660: or.l d7,d0 ! 4661: move.b d0,(a2)+ ! 4662: ! 4663: lea.l msg_test_mi,a0 ! 4664: moveq.l #4-1,d0 ! 4665: bsr print_result ! 4666: rts ! 4667: ! 4668: test_fmovem_cm_md: ! 4669: lea.l result(pc),a2 ! 4670: ; FMOVEM.L FPCR,-(An) ! 4671: move.b #$0b,(a2)+ ! 4672: fmovem.l #$0b000000,fpsr ! 4673: bsr set_fline ! 4674: moveq.l #0,d7 ! 4675: lea.l workarea+12(pc),a0 ! 4676: lea.l @f,a3 ! 4677: .dc.l $f220b000 ! 4678: @@: ! 4679: bsr restore_fline ! 4680: fmovem.l fpsr,d0 ! 4681: rol.l #8,d0 ! 4682: or.l d7,d0 ! 4683: move.b d0,(a2)+ ! 4684: ! 4685: ; FMOVEM.L FPSR,-(An) ! 4686: move.b #$0b,(a2)+ ! 4687: fmovem.l #$0b000000,fpsr ! 4688: bsr set_fline ! 4689: moveq.l #0,d7 ! 4690: lea.l workarea+12(pc),a0 ! 4691: lea.l @f,a3 ! 4692: .dc.l $f220a800 ! 4693: @@: ! 4694: bsr restore_fline ! 4695: fmovem.l fpsr,d0 ! 4696: rol.l #8,d0 ! 4697: or.l d7,d0 ! 4698: move.b d0,(a2)+ ! 4699: ! 4700: ; FMOVEM.L FPIAR,-(An) ! 4701: move.b #$0b,(a2)+ ! 4702: fmovem.l #$0b000000,fpsr ! 4703: bsr set_fline ! 4704: moveq.l #0,d7 ! 4705: lea.l workarea+12(pc),a0 ! 4706: lea.l @f,a3 ! 4707: .dc.l $f220a400 ! 4708: @@: ! 4709: bsr restore_fline ! 4710: fmovem.l fpsr,d0 ! 4711: rol.l #8,d0 ! 4712: or.l d7,d0 ! 4713: move.b d0,(a2)+ ! 4714: ! 4715: ; FMOVEM.L FPSR/FPIAR,-(An) ! 4716: move.b #$0b,(a2)+ ! 4717: fmovem.l #$0b000000,fpsr ! 4718: bsr set_fline ! 4719: moveq.l #0,d7 ! 4720: lea.l workarea+12(pc),a0 ! 4721: lea.l @f,a3 ! 4722: .dc.l $f220ac00 ! 4723: @@: ! 4724: bsr restore_fline ! 4725: fmovem.l fpsr,d0 ! 4726: rol.l #8,d0 ! 4727: or.l d7,d0 ! 4728: move.b d0,(a2)+ ! 4729: ! 4730: lea.l msg_test_md,a0 ! 4731: moveq.l #4-1,d0 ! 4732: bsr print_result ! 4733: rts ! 4734: ! 4735: test_fmovem_cm_r: ! 4736: lea.l result(pc),a2 ! 4737: ; FMOVEM.L FPCR,d16(An) ! 4738: move.b #$0b,(a2)+ ! 4739: fmovem.l #$0b000000,fpsr ! 4740: bsr set_fline ! 4741: moveq.l #0,d7 ! 4742: lea.l workarea(pc),a0 ! 4743: lea.l @f,a3 ! 4744: .dc.l $f228b000 ! 4745: .dc.w $0000 ! 4746: @@: ! 4747: bsr restore_fline ! 4748: fmovem.l fpsr,d0 ! 4749: rol.l #8,d0 ! 4750: or.l d7,d0 ! 4751: move.b d0,(a2)+ ! 4752: ! 4753: ; FMOVEM.L FPSR,d16(An) ! 4754: move.b #$0b,(a2)+ ! 4755: fmovem.l #$0b000000,fpsr ! 4756: bsr set_fline ! 4757: moveq.l #0,d7 ! 4758: lea.l workarea(pc),a0 ! 4759: lea.l @f,a3 ! 4760: .dc.l $f228a800 ! 4761: .dc.w $0000 ! 4762: @@: ! 4763: bsr restore_fline ! 4764: fmovem.l fpsr,d0 ! 4765: rol.l #8,d0 ! 4766: or.l d7,d0 ! 4767: move.b d0,(a2)+ ! 4768: ! 4769: ; FMOVEM.L FPIAR,d16(An) ! 4770: move.b #$0b,(a2)+ ! 4771: fmovem.l #$0b000000,fpsr ! 4772: bsr set_fline ! 4773: moveq.l #0,d7 ! 4774: lea.l workarea(pc),a0 ! 4775: lea.l @f,a3 ! 4776: .dc.l $f228a400 ! 4777: .dc.w $0000 ! 4778: @@: ! 4779: bsr restore_fline ! 4780: fmovem.l fpsr,d0 ! 4781: rol.l #8,d0 ! 4782: or.l d7,d0 ! 4783: move.b d0,(a2)+ ! 4784: ! 4785: ; FMOVEM.L FPSR/FPIAR,d16(An) ! 4786: move.b #$0b,(a2)+ ! 4787: fmovem.l #$0b000000,fpsr ! 4788: bsr set_fline ! 4789: moveq.l #0,d7 ! 4790: lea.l workarea(pc),a0 ! 4791: lea.l @f,a3 ! 4792: .dc.l $f228ac00 ! 4793: .dc.w $0000 ! 4794: @@: ! 4795: bsr restore_fline ! 4796: fmovem.l fpsr,d0 ! 4797: rol.l #8,d0 ! 4798: or.l d7,d0 ! 4799: move.b d0,(a2)+ ! 4800: ! 4801: lea.l msg_test_r,a0 ! 4802: moveq.l #4-1,d0 ! 4803: bsr print_result ! 4804: rts ! 4805: ! 4806: test_fmovem_cm_x: ! 4807: lea.l result(pc),a2 ! 4808: ; FMOVEM.L FPCR,d8(An,IX) ! 4809: move.b #$0b,(a2)+ ! 4810: fmovem.l #$0b000000,fpsr ! 4811: bsr set_fline ! 4812: moveq.l #0,d7 ! 4813: moveq.l #0,d4 ! 4814: lea.l workarea(pc),a0 ! 4815: lea.l @f,a3 ! 4816: .dc.l $f230b000 ! 4817: .dc.w $4000 ! 4818: @@: ! 4819: bsr restore_fline ! 4820: fmovem.l fpsr,d0 ! 4821: rol.l #8,d0 ! 4822: or.l d7,d0 ! 4823: move.b d0,(a2)+ ! 4824: ! 4825: ; FMOVEM.L FPSR,d8(An,IX) ! 4826: move.b #$0b,(a2)+ ! 4827: fmovem.l #$0b000000,fpsr ! 4828: bsr set_fline ! 4829: moveq.l #0,d7 ! 4830: moveq.l #0,d4 ! 4831: lea.l workarea(pc),a0 ! 4832: lea.l @f,a3 ! 4833: .dc.l $f230a800 ! 4834: .dc.w $4000 ! 4835: @@: ! 4836: bsr restore_fline ! 4837: fmovem.l fpsr,d0 ! 4838: rol.l #8,d0 ! 4839: or.l d7,d0 ! 4840: move.b d0,(a2)+ ! 4841: ! 4842: ; FMOVEM.L FPIAR,d8(An,IX) ! 4843: move.b #$0b,(a2)+ ! 4844: fmovem.l #$0b000000,fpsr ! 4845: bsr set_fline ! 4846: moveq.l #0,d7 ! 4847: moveq.l #0,d4 ! 4848: lea.l workarea(pc),a0 ! 4849: lea.l @f,a3 ! 4850: .dc.l $f230a400 ! 4851: .dc.w $4000 ! 4852: @@: ! 4853: bsr restore_fline ! 4854: fmovem.l fpsr,d0 ! 4855: rol.l #8,d0 ! 4856: or.l d7,d0 ! 4857: move.b d0,(a2)+ ! 4858: ! 4859: ; FMOVEM.L FPSR/FPIAR,d8(An,IX) ! 4860: move.b #$0b,(a2)+ ! 4861: fmovem.l #$0b000000,fpsr ! 4862: bsr set_fline ! 4863: moveq.l #0,d7 ! 4864: moveq.l #0,d4 ! 4865: lea.l workarea(pc),a0 ! 4866: lea.l @f,a3 ! 4867: .dc.l $f230ac00 ! 4868: .dc.w $4000 ! 4869: @@: ! 4870: bsr restore_fline ! 4871: fmovem.l fpsr,d0 ! 4872: rol.l #8,d0 ! 4873: or.l d7,d0 ! 4874: move.b d0,(a2)+ ! 4875: ! 4876: lea.l msg_test_x,a0 ! 4877: moveq.l #4-1,d0 ! 4878: bsr print_result ! 4879: rts ! 4880: ! 4881: test_fmovem_cm_p: ! 4882: lea.l result(pc),a2 ! 4883: ; FMOVEM.L FPCR,(PC) ! 4884: move.b #$1b,(a2)+ ! 4885: fmovem.l #$0b000000,fpsr ! 4886: bsr set_fline ! 4887: moveq.l #0,d7 ! 4888: lea.l @f,a3 ! 4889: .dc.l $f23ab000 ! 4890: @@: ! 4891: bsr restore_fline ! 4892: fmovem.l fpsr,d0 ! 4893: rol.l #8,d0 ! 4894: or.l d7,d0 ! 4895: move.b d0,(a2)+ ! 4896: ! 4897: ; FMOVEM.L FPSR,(PC) ! 4898: move.b #$1b,(a2)+ ! 4899: fmovem.l #$0b000000,fpsr ! 4900: bsr set_fline ! 4901: moveq.l #0,d7 ! 4902: lea.l @f,a3 ! 4903: .dc.l $f23aa800 ! 4904: @@: ! 4905: bsr restore_fline ! 4906: fmovem.l fpsr,d0 ! 4907: rol.l #8,d0 ! 4908: or.l d7,d0 ! 4909: move.b d0,(a2)+ ! 4910: ! 4911: ; FMOVEM.L FPIAR,(PC) ! 4912: move.b #$1b,(a2)+ ! 4913: fmovem.l #$0b000000,fpsr ! 4914: bsr set_fline ! 4915: moveq.l #0,d7 ! 4916: lea.l @f,a3 ! 4917: .dc.l $f23aa400 ! 4918: @@: ! 4919: bsr restore_fline ! 4920: fmovem.l fpsr,d0 ! 4921: rol.l #8,d0 ! 4922: or.l d7,d0 ! 4923: move.b d0,(a2)+ ! 4924: ! 4925: ; FMOVEM.L FPSR/FPIAR,(PC) ! 4926: move.b #$1b,(a2)+ ! 4927: fmovem.l #$0b000000,fpsr ! 4928: bsr set_fline ! 4929: moveq.l #0,d7 ! 4930: lea.l @f,a3 ! 4931: .dc.l $f23aac00 ! 4932: @@: ! 4933: bsr restore_fline ! 4934: fmovem.l fpsr,d0 ! 4935: rol.l #8,d0 ! 4936: or.l d7,d0 ! 4937: move.b d0,(a2)+ ! 4938: ! 4939: lea.l msg_test_p,a0 ! 4940: moveq.l #4-1,d0 ! 4941: bsr print_result ! 4942: rts ! 4943: ! 4944: test_fmovem_cm_i: ! 4945: lea.l result(pc),a2 ! 4946: ; FMOVEM.L FPCR,#imm ! 4947: move.b #$1b,(a2)+ ! 4948: fmovem.l #$0b000000,fpsr ! 4949: bsr set_fline ! 4950: moveq.l #0,d7 ! 4951: lea.l @f,a3 ! 4952: .dc.l $f23cb000 ! 4953: @@: ! 4954: bsr restore_fline ! 4955: fmovem.l fpsr,d0 ! 4956: rol.l #8,d0 ! 4957: or.l d7,d0 ! 4958: move.b d0,(a2)+ ! 4959: ! 4960: ; FMOVEM.L FPSR,#imm ! 4961: move.b #$1b,(a2)+ ! 4962: fmovem.l #$0b000000,fpsr ! 4963: bsr set_fline ! 4964: moveq.l #0,d7 ! 4965: lea.l @f,a3 ! 4966: .dc.l $f23ca800 ! 4967: @@: ! 4968: bsr restore_fline ! 4969: fmovem.l fpsr,d0 ! 4970: rol.l #8,d0 ! 4971: or.l d7,d0 ! 4972: move.b d0,(a2)+ ! 4973: ! 4974: ; FMOVEM.L FPIAR,#imm ! 4975: move.b #$1b,(a2)+ ! 4976: fmovem.l #$0b000000,fpsr ! 4977: bsr set_fline ! 4978: moveq.l #0,d7 ! 4979: lea.l @f,a3 ! 4980: .dc.l $f23ca400 ! 4981: @@: ! 4982: bsr restore_fline ! 4983: fmovem.l fpsr,d0 ! 4984: rol.l #8,d0 ! 4985: or.l d7,d0 ! 4986: move.b d0,(a2)+ ! 4987: ! 4988: ; FMOVEM.L FPSR/FPIAR,#imm ! 4989: move.b #$1b,(a2)+ ! 4990: fmovem.l #$0b000000,fpsr ! 4991: bsr set_fline ! 4992: moveq.l #0,d7 ! 4993: lea.l @f,a3 ! 4994: .dc.l $f23cac00 ! 4995: @@: ! 4996: bsr restore_fline ! 4997: fmovem.l fpsr,d0 ! 4998: rol.l #8,d0 ! 4999: or.l d7,d0 ! 5000: move.b d0,(a2)+ ! 5001: ! 5002: lea.l msg_test_i,a0 ! 5003: moveq.l #4-1,d0 ! 5004: bsr print_result ! 5005: rts ! 5006: ! 5007: test_fmovem_cm_o: ! 5008: lea.l result(pc),a2 ! 5009: ; FMOVEM.L FPCR,075 ! 5010: move.b #$1b,(a2)+ ! 5011: fmovem.l #$0b000000,fpsr ! 5012: bsr set_fline ! 5013: moveq.l #0,d7 ! 5014: lea.l @f,a3 ! 5015: .dc.l $f23db000 ! 5016: @@: ! 5017: bsr restore_fline ! 5018: fmovem.l fpsr,d0 ! 5019: rol.l #8,d0 ! 5020: or.l d7,d0 ! 5021: move.b d0,(a2)+ ! 5022: ! 5023: ; FMOVEM.L FPSR,075 ! 5024: move.b #$1b,(a2)+ ! 5025: fmovem.l #$0b000000,fpsr ! 5026: bsr set_fline ! 5027: moveq.l #0,d7 ! 5028: lea.l @f,a3 ! 5029: .dc.l $f23da800 ! 5030: @@: ! 5031: bsr restore_fline ! 5032: fmovem.l fpsr,d0 ! 5033: rol.l #8,d0 ! 5034: or.l d7,d0 ! 5035: move.b d0,(a2)+ ! 5036: ! 5037: ; FMOVEM.L FPIAR,075 ! 5038: move.b #$1b,(a2)+ ! 5039: fmovem.l #$0b000000,fpsr ! 5040: bsr set_fline ! 5041: moveq.l #0,d7 ! 5042: lea.l @f,a3 ! 5043: .dc.l $f23da400 ! 5044: @@: ! 5045: bsr restore_fline ! 5046: fmovem.l fpsr,d0 ! 5047: rol.l #8,d0 ! 5048: or.l d7,d0 ! 5049: move.b d0,(a2)+ ! 5050: ! 5051: ; FMOVEM.L FPSR/FPIAR,075 ! 5052: move.b #$1b,(a2)+ ! 5053: fmovem.l #$0b000000,fpsr ! 5054: bsr set_fline ! 5055: moveq.l #0,d7 ! 5056: lea.l @f,a3 ! 5057: .dc.l $f23dac00 ! 5058: @@: ! 5059: bsr restore_fline ! 5060: fmovem.l fpsr,d0 ! 5061: rol.l #8,d0 ! 5062: or.l d7,d0 ! 5063: move.b d0,(a2)+ ! 5064: ! 5065: lea.l msg_test_o,a0 ! 5066: moveq.l #4-1,d0 ! 5067: bsr print_result ! 5068: rts ! 5069: ! 5070: test_fmovem_mc_d: ! 5071: lea.l result(pc),a2 ! 5072: ; FMOVEM.L Dn,FPCR ! 5073: move.b #$0b,(a2)+ ! 5074: fmovem.l #$0b000000,fpsr ! 5075: bsr set_fline ! 5076: moveq.l #0,d7 ! 5077: moveq.l #0,d6 ! 5078: lea.l @f,a3 ! 5079: .dc.l $f2069000 ! 5080: @@: ! 5081: bsr restore_fline ! 5082: fmovem.l fpsr,d0 ! 5083: rol.l #8,d0 ! 5084: or.l d7,d0 ! 5085: move.b d0,(a2)+ ! 5086: ! 5087: ; FMOVEM.L Dn,FPSR ! 5088: move.b #$00,(a2)+ ! 5089: fmovem.l #$0b000000,fpsr ! 5090: bsr set_fline ! 5091: moveq.l #0,d7 ! 5092: moveq.l #0,d6 ! 5093: lea.l @f,a3 ! 5094: .dc.l $f2068800 ! 5095: @@: ! 5096: bsr restore_fline ! 5097: fmovem.l fpsr,d0 ! 5098: rol.l #8,d0 ! 5099: or.l d7,d0 ! 5100: move.b d0,(a2)+ ! 5101: ! 5102: ; FMOVEM.L Dn,FPIAR ! 5103: move.b #$0b,(a2)+ ! 5104: fmovem.l #$0b000000,fpsr ! 5105: bsr set_fline ! 5106: moveq.l #0,d7 ! 5107: moveq.l #0,d6 ! 5108: lea.l @f,a3 ! 5109: .dc.l $f2068400 ! 5110: @@: ! 5111: bsr restore_fline ! 5112: fmovem.l fpsr,d0 ! 5113: rol.l #8,d0 ! 5114: or.l d7,d0 ! 5115: move.b d0,(a2)+ ! 5116: ! 5117: ; FMOVEM.L Dn,FPSR/FPIAR ! 5118: move.b #$1b,(a2)+ ! 5119: fmovem.l #$0b000000,fpsr ! 5120: bsr set_fline ! 5121: moveq.l #0,d7 ! 5122: moveq.l #0,d6 ! 5123: lea.l @f,a3 ! 5124: .dc.l $f2068c00 ! 5125: @@: ! 5126: bsr restore_fline ! 5127: fmovem.l fpsr,d0 ! 5128: rol.l #8,d0 ! 5129: or.l d7,d0 ! 5130: move.b d0,(a2)+ ! 5131: ! 5132: lea.l msg_test_d,a0 ! 5133: moveq.l #4-1,d0 ! 5134: bsr print_result ! 5135: rts ! 5136: ! 5137: test_fmovem_mc_a: ! 5138: lea.l result(pc),a2 ! 5139: ; FMOVEM.L An,FPCR ! 5140: move.b #$1b,(a2)+ ! 5141: fmovem.l #$0b000000,fpsr ! 5142: bsr set_fline ! 5143: moveq.l #0,d7 ! 5144: lea.l @f,a3 ! 5145: .dc.l $f2089000 ! 5146: @@: ! 5147: bsr restore_fline ! 5148: fmovem.l fpsr,d0 ! 5149: rol.l #8,d0 ! 5150: or.l d7,d0 ! 5151: move.b d0,(a2)+ ! 5152: ! 5153: ; FMOVEM.L An,FPSR ! 5154: move.b #$1b,(a2)+ ! 5155: fmovem.l #$0b000000,fpsr ! 5156: bsr set_fline ! 5157: moveq.l #0,d7 ! 5158: lea.l @f,a3 ! 5159: .dc.l $f2088800 ! 5160: @@: ! 5161: bsr restore_fline ! 5162: fmovem.l fpsr,d0 ! 5163: rol.l #8,d0 ! 5164: or.l d7,d0 ! 5165: move.b d0,(a2)+ ! 5166: ! 5167: ; FMOVEM.L An,FPIAR ! 5168: move.b #$0b,(a2)+ ! 5169: fmovem.l #$0b000000,fpsr ! 5170: bsr set_fline ! 5171: moveq.l #0,d7 ! 5172: lea.l @f,a3 ! 5173: .dc.l $f2088400 ! 5174: @@: ! 5175: bsr restore_fline ! 5176: fmovem.l fpsr,d0 ! 5177: rol.l #8,d0 ! 5178: or.l d7,d0 ! 5179: move.b d0,(a2)+ ! 5180: ! 5181: ; FMOVEM.L An,FPSR/FPIAR ! 5182: move.b #$1b,(a2)+ ! 5183: fmovem.l #$0b000000,fpsr ! 5184: bsr set_fline ! 5185: moveq.l #0,d7 ! 5186: lea.l @f,a3 ! 5187: .dc.l $f2088c00 ! 5188: @@: ! 5189: bsr restore_fline ! 5190: fmovem.l fpsr,d0 ! 5191: rol.l #8,d0 ! 5192: or.l d7,d0 ! 5193: move.b d0,(a2)+ ! 5194: ! 5195: lea.l msg_test_a,a0 ! 5196: moveq.l #4-1,d0 ! 5197: bsr print_result ! 5198: rts ! 5199: ! 5200: test_fmovem_mc_m: ! 5201: lea.l result(pc),a2 ! 5202: ; FMOVEM.L (An),FPCR ! 5203: move.b #$0b,(a2)+ ! 5204: fmovem.l #$0b000000,fpsr ! 5205: bsr set_fline ! 5206: moveq.l #0,d7 ! 5207: lea.l workarea+12(pc),a0 ! 5208: move.l d7,-(a0) ! 5209: move.l d7,-(a0) ! 5210: move.l d7,-(a0) ! 5211: lea.l @f,a3 ! 5212: .dc.l $f2109000 ! 5213: @@: ! 5214: bsr restore_fline ! 5215: fmovem.l fpsr,d0 ! 5216: rol.l #8,d0 ! 5217: or.l d7,d0 ! 5218: move.b d0,(a2)+ ! 5219: ! 5220: ; FMOVEM.L (An),FPSR ! 5221: move.b #$00,(a2)+ ! 5222: fmovem.l #$0b000000,fpsr ! 5223: bsr set_fline ! 5224: moveq.l #0,d7 ! 5225: lea.l workarea+12(pc),a0 ! 5226: move.l d7,-(a0) ! 5227: move.l d7,-(a0) ! 5228: move.l d7,-(a0) ! 5229: lea.l @f,a3 ! 5230: .dc.l $f2108800 ! 5231: @@: ! 5232: bsr restore_fline ! 5233: fmovem.l fpsr,d0 ! 5234: rol.l #8,d0 ! 5235: or.l d7,d0 ! 5236: move.b d0,(a2)+ ! 5237: ! 5238: ; FMOVEM.L (An),FPIAR ! 5239: move.b #$0b,(a2)+ ! 5240: fmovem.l #$0b000000,fpsr ! 5241: bsr set_fline ! 5242: moveq.l #0,d7 ! 5243: lea.l workarea+12(pc),a0 ! 5244: move.l d7,-(a0) ! 5245: move.l d7,-(a0) ! 5246: move.l d7,-(a0) ! 5247: lea.l @f,a3 ! 5248: .dc.l $f2108400 ! 5249: @@: ! 5250: bsr restore_fline ! 5251: fmovem.l fpsr,d0 ! 5252: rol.l #8,d0 ! 5253: or.l d7,d0 ! 5254: move.b d0,(a2)+ ! 5255: ! 5256: ; FMOVEM.L (An),FPSR/FPIAR ! 5257: move.b #$00,(a2)+ ! 5258: fmovem.l #$0b000000,fpsr ! 5259: bsr set_fline ! 5260: moveq.l #0,d7 ! 5261: lea.l workarea+12(pc),a0 ! 5262: move.l d7,-(a0) ! 5263: move.l d7,-(a0) ! 5264: move.l d7,-(a0) ! 5265: lea.l @f,a3 ! 5266: .dc.l $f2108c00 ! 5267: @@: ! 5268: bsr restore_fline ! 5269: fmovem.l fpsr,d0 ! 5270: rol.l #8,d0 ! 5271: or.l d7,d0 ! 5272: move.b d0,(a2)+ ! 5273: ! 5274: lea.l msg_test_m,a0 ! 5275: moveq.l #4-1,d0 ! 5276: bsr print_result ! 5277: rts ! 5278: ! 5279: test_fmovem_mc_mi: ! 5280: lea.l result(pc),a2 ! 5281: ; FMOVEM.L (An)+,FPCR ! 5282: move.b #$0b,(a2)+ ! 5283: fmovem.l #$0b000000,fpsr ! 5284: bsr set_fline ! 5285: moveq.l #0,d7 ! 5286: lea.l workarea+12(pc),a0 ! 5287: move.l d7,-(a0) ! 5288: move.l d7,-(a0) ! 5289: move.l d7,-(a0) ! 5290: lea.l @f,a3 ! 5291: .dc.l $f2189000 ! 5292: @@: ! 5293: bsr restore_fline ! 5294: fmovem.l fpsr,d0 ! 5295: rol.l #8,d0 ! 5296: or.l d7,d0 ! 5297: move.b d0,(a2)+ ! 5298: ! 5299: ; FMOVEM.L (An)+,FPSR ! 5300: move.b #$00,(a2)+ ! 5301: fmovem.l #$0b000000,fpsr ! 5302: bsr set_fline ! 5303: moveq.l #0,d7 ! 5304: lea.l workarea+12(pc),a0 ! 5305: move.l d7,-(a0) ! 5306: move.l d7,-(a0) ! 5307: move.l d7,-(a0) ! 5308: lea.l @f,a3 ! 5309: .dc.l $f2188800 ! 5310: @@: ! 5311: bsr restore_fline ! 5312: fmovem.l fpsr,d0 ! 5313: rol.l #8,d0 ! 5314: or.l d7,d0 ! 5315: move.b d0,(a2)+ ! 5316: ! 5317: ; FMOVEM.L (An)+,FPIAR ! 5318: move.b #$0b,(a2)+ ! 5319: fmovem.l #$0b000000,fpsr ! 5320: bsr set_fline ! 5321: moveq.l #0,d7 ! 5322: lea.l workarea+12(pc),a0 ! 5323: move.l d7,-(a0) ! 5324: move.l d7,-(a0) ! 5325: move.l d7,-(a0) ! 5326: lea.l @f,a3 ! 5327: .dc.l $f2188400 ! 5328: @@: ! 5329: bsr restore_fline ! 5330: fmovem.l fpsr,d0 ! 5331: rol.l #8,d0 ! 5332: or.l d7,d0 ! 5333: move.b d0,(a2)+ ! 5334: ! 5335: ; FMOVEM.L (An)+,FPSR/FPIAR ! 5336: move.b #$00,(a2)+ ! 5337: fmovem.l #$0b000000,fpsr ! 5338: bsr set_fline ! 5339: moveq.l #0,d7 ! 5340: lea.l workarea+12(pc),a0 ! 5341: move.l d7,-(a0) ! 5342: move.l d7,-(a0) ! 5343: move.l d7,-(a0) ! 5344: lea.l @f,a3 ! 5345: .dc.l $f2188c00 ! 5346: @@: ! 5347: bsr restore_fline ! 5348: fmovem.l fpsr,d0 ! 5349: rol.l #8,d0 ! 5350: or.l d7,d0 ! 5351: move.b d0,(a2)+ ! 5352: ! 5353: lea.l msg_test_mi,a0 ! 5354: moveq.l #4-1,d0 ! 5355: bsr print_result ! 5356: rts ! 5357: ! 5358: test_fmovem_mc_md: ! 5359: lea.l result(pc),a2 ! 5360: ; FMOVEM.L -(An),FPCR ! 5361: move.b #$0b,(a2)+ ! 5362: fmovem.l #$0b000000,fpsr ! 5363: bsr set_fline ! 5364: moveq.l #0,d7 ! 5365: lea.l workarea(pc),a0 ! 5366: move.l d7,(a0)+ ! 5367: move.l d7,(a0)+ ! 5368: move.l d7,(a0)+ ! 5369: lea.l @f,a3 ! 5370: .dc.l $f2209000 ! 5371: @@: ! 5372: bsr restore_fline ! 5373: fmovem.l fpsr,d0 ! 5374: rol.l #8,d0 ! 5375: or.l d7,d0 ! 5376: move.b d0,(a2)+ ! 5377: ! 5378: ; FMOVEM.L -(An),FPSR ! 5379: move.b #$00,(a2)+ ! 5380: fmovem.l #$0b000000,fpsr ! 5381: bsr set_fline ! 5382: moveq.l #0,d7 ! 5383: lea.l workarea(pc),a0 ! 5384: move.l d7,(a0)+ ! 5385: move.l d7,(a0)+ ! 5386: move.l d7,(a0)+ ! 5387: lea.l @f,a3 ! 5388: .dc.l $f2208800 ! 5389: @@: ! 5390: bsr restore_fline ! 5391: fmovem.l fpsr,d0 ! 5392: rol.l #8,d0 ! 5393: or.l d7,d0 ! 5394: move.b d0,(a2)+ ! 5395: ! 5396: ; FMOVEM.L -(An),FPIAR ! 5397: move.b #$0b,(a2)+ ! 5398: fmovem.l #$0b000000,fpsr ! 5399: bsr set_fline ! 5400: moveq.l #0,d7 ! 5401: lea.l workarea(pc),a0 ! 5402: move.l d7,(a0)+ ! 5403: move.l d7,(a0)+ ! 5404: move.l d7,(a0)+ ! 5405: lea.l @f,a3 ! 5406: .dc.l $f2208400 ! 5407: @@: ! 5408: bsr restore_fline ! 5409: fmovem.l fpsr,d0 ! 5410: rol.l #8,d0 ! 5411: or.l d7,d0 ! 5412: move.b d0,(a2)+ ! 5413: ! 5414: ; FMOVEM.L -(An),FPSR/FPIAR ! 5415: move.b #$00,(a2)+ ! 5416: fmovem.l #$0b000000,fpsr ! 5417: bsr set_fline ! 5418: moveq.l #0,d7 ! 5419: lea.l workarea(pc),a0 ! 5420: move.l d7,(a0)+ ! 5421: move.l d7,(a0)+ ! 5422: move.l d7,(a0)+ ! 5423: lea.l @f,a3 ! 5424: .dc.l $f2208c00 ! 5425: @@: ! 5426: bsr restore_fline ! 5427: fmovem.l fpsr,d0 ! 5428: rol.l #8,d0 ! 5429: or.l d7,d0 ! 5430: move.b d0,(a2)+ ! 5431: ! 5432: lea.l msg_test_md,a0 ! 5433: moveq.l #4-1,d0 ! 5434: bsr print_result ! 5435: rts ! 5436: ! 5437: test_fmovem_mc_r: ! 5438: lea.l result(pc),a2 ! 5439: ; FMOVEM.L d16(An),FPCR ! 5440: move.b #$0b,(a2)+ ! 5441: fmovem.l #$0b000000,fpsr ! 5442: bsr set_fline ! 5443: moveq.l #0,d7 ! 5444: lea.l workarea+12(pc),a0 ! 5445: move.l d7,-(a0) ! 5446: move.l d7,-(a0) ! 5447: move.l d7,-(a0) ! 5448: lea.l @f,a3 ! 5449: .dc.l $f2289000 ! 5450: .dc.w $0000 ! 5451: @@: ! 5452: bsr restore_fline ! 5453: fmovem.l fpsr,d0 ! 5454: rol.l #8,d0 ! 5455: or.l d7,d0 ! 5456: move.b d0,(a2)+ ! 5457: ! 5458: ; FMOVEM.L d16(An),FPSR ! 5459: move.b #$00,(a2)+ ! 5460: fmovem.l #$0b000000,fpsr ! 5461: bsr set_fline ! 5462: moveq.l #0,d7 ! 5463: lea.l workarea+12(pc),a0 ! 5464: move.l d7,-(a0) ! 5465: move.l d7,-(a0) ! 5466: move.l d7,-(a0) ! 5467: lea.l @f,a3 ! 5468: .dc.l $f2288800 ! 5469: .dc.w $0000 ! 5470: @@: ! 5471: bsr restore_fline ! 5472: fmovem.l fpsr,d0 ! 5473: rol.l #8,d0 ! 5474: or.l d7,d0 ! 5475: move.b d0,(a2)+ ! 5476: ! 5477: ; FMOVEM.L d16(An),FPIAR ! 5478: move.b #$0b,(a2)+ ! 5479: fmovem.l #$0b000000,fpsr ! 5480: bsr set_fline ! 5481: moveq.l #0,d7 ! 5482: lea.l workarea+12(pc),a0 ! 5483: move.l d7,-(a0) ! 5484: move.l d7,-(a0) ! 5485: move.l d7,-(a0) ! 5486: lea.l @f,a3 ! 5487: .dc.l $f2288400 ! 5488: .dc.w $0000 ! 5489: @@: ! 5490: bsr restore_fline ! 5491: fmovem.l fpsr,d0 ! 5492: rol.l #8,d0 ! 5493: or.l d7,d0 ! 5494: move.b d0,(a2)+ ! 5495: ! 5496: ; FMOVEM.L d16(An),FPSR/FPIAR ! 5497: move.b #$00,(a2)+ ! 5498: fmovem.l #$0b000000,fpsr ! 5499: bsr set_fline ! 5500: moveq.l #0,d7 ! 5501: lea.l workarea+12(pc),a0 ! 5502: move.l d7,-(a0) ! 5503: move.l d7,-(a0) ! 5504: move.l d7,-(a0) ! 5505: lea.l @f,a3 ! 5506: .dc.l $f2288c00 ! 5507: .dc.w $0000 ! 5508: @@: ! 5509: bsr restore_fline ! 5510: fmovem.l fpsr,d0 ! 5511: rol.l #8,d0 ! 5512: or.l d7,d0 ! 5513: move.b d0,(a2)+ ! 5514: ! 5515: lea.l msg_test_r,a0 ! 5516: moveq.l #4-1,d0 ! 5517: bsr print_result ! 5518: rts ! 5519: ! 5520: test_fmovem_mc_x: ! 5521: lea.l result(pc),a2 ! 5522: ; FMOVEM.L d8(An,IX),FPCR ! 5523: move.b #$0b,(a2)+ ! 5524: fmovem.l #$0b000000,fpsr ! 5525: bsr set_fline ! 5526: moveq.l #0,d7 ! 5527: moveq.l #0,d4 ! 5528: lea.l workarea+12(pc),a0 ! 5529: move.l d7,-(a0) ! 5530: move.l d7,-(a0) ! 5531: move.l d7,-(a0) ! 5532: lea.l @f,a3 ! 5533: .dc.l $f2309000 ! 5534: .dc.w $4000 ! 5535: @@: ! 5536: bsr restore_fline ! 5537: fmovem.l fpsr,d0 ! 5538: rol.l #8,d0 ! 5539: or.l d7,d0 ! 5540: move.b d0,(a2)+ ! 5541: ! 5542: ; FMOVEM.L d8(An,IX),FPSR ! 5543: move.b #$00,(a2)+ ! 5544: fmovem.l #$0b000000,fpsr ! 5545: bsr set_fline ! 5546: moveq.l #0,d7 ! 5547: moveq.l #0,d4 ! 5548: lea.l workarea+12(pc),a0 ! 5549: move.l d7,-(a0) ! 5550: move.l d7,-(a0) ! 5551: move.l d7,-(a0) ! 5552: lea.l @f,a3 ! 5553: .dc.l $f2308800 ! 5554: .dc.w $4000 ! 5555: @@: ! 5556: bsr restore_fline ! 5557: fmovem.l fpsr,d0 ! 5558: rol.l #8,d0 ! 5559: or.l d7,d0 ! 5560: move.b d0,(a2)+ ! 5561: ! 5562: ; FMOVEM.L d8(An,IX),FPIAR ! 5563: move.b #$0b,(a2)+ ! 5564: fmovem.l #$0b000000,fpsr ! 5565: bsr set_fline ! 5566: moveq.l #0,d7 ! 5567: moveq.l #0,d4 ! 5568: lea.l workarea+12(pc),a0 ! 5569: move.l d7,-(a0) ! 5570: move.l d7,-(a0) ! 5571: move.l d7,-(a0) ! 5572: lea.l @f,a3 ! 5573: .dc.l $f2308400 ! 5574: .dc.w $4000 ! 5575: @@: ! 5576: bsr restore_fline ! 5577: fmovem.l fpsr,d0 ! 5578: rol.l #8,d0 ! 5579: or.l d7,d0 ! 5580: move.b d0,(a2)+ ! 5581: ! 5582: ; FMOVEM.L d8(An,IX),FPSR/FPIAR ! 5583: move.b #$00,(a2)+ ! 5584: fmovem.l #$0b000000,fpsr ! 5585: bsr set_fline ! 5586: moveq.l #0,d7 ! 5587: moveq.l #0,d4 ! 5588: lea.l workarea+12(pc),a0 ! 5589: move.l d7,-(a0) ! 5590: move.l d7,-(a0) ! 5591: move.l d7,-(a0) ! 5592: lea.l @f,a3 ! 5593: .dc.l $f2308c00 ! 5594: .dc.w $4000 ! 5595: @@: ! 5596: bsr restore_fline ! 5597: fmovem.l fpsr,d0 ! 5598: rol.l #8,d0 ! 5599: or.l d7,d0 ! 5600: move.b d0,(a2)+ ! 5601: ! 5602: lea.l msg_test_x,a0 ! 5603: moveq.l #4-1,d0 ! 5604: bsr print_result ! 5605: rts ! 5606: ! 5607: test_fmovem_mc_p: ! 5608: lea.l result(pc),a2 ! 5609: ; FMOVEM.L (PC),FPCR ! 5610: move.b #$0b,(a2)+ ! 5611: fmovem.l #$0b000000,fpsr ! 5612: bsr set_fline ! 5613: moveq.l #0,d7 ! 5614: bra @f ! 5615: .dc.l 0, 0, 0 ! 5616: @@: ! 5617: lea.l @f,a3 ! 5618: .dc.l $f23a9000 ! 5619: .dc.w -4-6-12 ! 5620: @@: ! 5621: bsr restore_fline ! 5622: fmovem.l fpsr,d0 ! 5623: rol.l #8,d0 ! 5624: or.l d7,d0 ! 5625: move.b d0,(a2)+ ! 5626: ! 5627: ; FMOVEM.L (PC),FPSR ! 5628: move.b #$00,(a2)+ ! 5629: fmovem.l #$0b000000,fpsr ! 5630: bsr set_fline ! 5631: moveq.l #0,d7 ! 5632: bra @f ! 5633: .dc.l 0, 0, 0 ! 5634: @@: ! 5635: lea.l @f,a3 ! 5636: .dc.l $f23a8800 ! 5637: .dc.w -4-6-12 ! 5638: @@: ! 5639: bsr restore_fline ! 5640: fmovem.l fpsr,d0 ! 5641: rol.l #8,d0 ! 5642: or.l d7,d0 ! 5643: move.b d0,(a2)+ ! 5644: ! 5645: ; FMOVEM.L (PC),FPIAR ! 5646: move.b #$0b,(a2)+ ! 5647: fmovem.l #$0b000000,fpsr ! 5648: bsr set_fline ! 5649: moveq.l #0,d7 ! 5650: bra @f ! 5651: .dc.l 0, 0, 0 ! 5652: @@: ! 5653: lea.l @f,a3 ! 5654: .dc.l $f23a8400 ! 5655: .dc.w -4-6-12 ! 5656: @@: ! 5657: bsr restore_fline ! 5658: fmovem.l fpsr,d0 ! 5659: rol.l #8,d0 ! 5660: or.l d7,d0 ! 5661: move.b d0,(a2)+ ! 5662: ! 5663: ; FMOVEM.L (PC),FPSR/FPIAR ! 5664: move.b #$00,(a2)+ ! 5665: fmovem.l #$0b000000,fpsr ! 5666: bsr set_fline ! 5667: moveq.l #0,d7 ! 5668: bra @f ! 5669: .dc.l 0, 0, 0 ! 5670: @@: ! 5671: lea.l @f,a3 ! 5672: .dc.l $f23a8c00 ! 5673: .dc.w -4-6-12 ! 5674: @@: ! 5675: bsr restore_fline ! 5676: fmovem.l fpsr,d0 ! 5677: rol.l #8,d0 ! 5678: or.l d7,d0 ! 5679: move.b d0,(a2)+ ! 5680: ! 5681: lea.l msg_test_p,a0 ! 5682: moveq.l #4-1,d0 ! 5683: bsr print_result ! 5684: rts ! 5685: ! 5686: test_fmovem_mc_i: ! 5687: lea.l result(pc),a2 ! 5688: ; FMOVEM.L #imm,FPCR ! 5689: move.b #$0b,(a2)+ ! 5690: fmovem.l #$0b000000,fpsr ! 5691: bsr set_fline ! 5692: moveq.l #0,d7 ! 5693: lea.l @f,a3 ! 5694: .dc.l $f23c9000 ! 5695: .dc.l 0 ! 5696: @@: ! 5697: bsr restore_fline ! 5698: fmovem.l fpsr,d0 ! 5699: rol.l #8,d0 ! 5700: or.l d7,d0 ! 5701: move.b d0,(a2)+ ! 5702: ! 5703: ; FMOVEM.L #imm,FPSR ! 5704: move.b #$00,(a2)+ ! 5705: fmovem.l #$0b000000,fpsr ! 5706: bsr set_fline ! 5707: moveq.l #0,d7 ! 5708: lea.l @f,a3 ! 5709: .dc.l $f23c8800 ! 5710: .dc.l 0 ! 5711: @@: ! 5712: bsr restore_fline ! 5713: fmovem.l fpsr,d0 ! 5714: rol.l #8,d0 ! 5715: or.l d7,d0 ! 5716: move.b d0,(a2)+ ! 5717: ! 5718: ; FMOVEM.L #imm,FPIAR ! 5719: move.b #$0b,(a2)+ ! 5720: fmovem.l #$0b000000,fpsr ! 5721: bsr set_fline ! 5722: moveq.l #0,d7 ! 5723: lea.l @f,a3 ! 5724: .dc.l $f23c8400 ! 5725: .dc.l 0 ! 5726: @@: ! 5727: bsr restore_fline ! 5728: fmovem.l fpsr,d0 ! 5729: rol.l #8,d0 ! 5730: or.l d7,d0 ! 5731: move.b d0,(a2)+ ! 5732: ! 5733: ; FMOVEM.L #imm,FPSR/FPIAR ! 5734: move.b #$00,(a2)+ ! 5735: fmovem.l #$0b000000,fpsr ! 5736: bsr set_fline ! 5737: moveq.l #0,d7 ! 5738: lea.l @f,a3 ! 5739: .dc.l $f23c8c00 ! 5740: .dc.l 0, 0 ! 5741: @@: ! 5742: bsr restore_fline ! 5743: fmovem.l fpsr,d0 ! 5744: rol.l #8,d0 ! 5745: or.l d7,d0 ! 5746: move.b d0,(a2)+ ! 5747: ! 5748: lea.l msg_test_i,a0 ! 5749: moveq.l #4-1,d0 ! 5750: bsr print_result ! 5751: rts ! 5752: ! 5753: test_fmovem_mc_o: ! 5754: lea.l result(pc),a2 ! 5755: ; FMOVEM.L 075,FPCR ! 5756: move.b #$1b,(a2)+ ! 5757: fmovem.l #$0b000000,fpsr ! 5758: bsr set_fline ! 5759: moveq.l #0,d7 ! 5760: lea.l @f,a3 ! 5761: .dc.l $f23d9000 ! 5762: @@: ! 5763: bsr restore_fline ! 5764: fmovem.l fpsr,d0 ! 5765: rol.l #8,d0 ! 5766: or.l d7,d0 ! 5767: move.b d0,(a2)+ ! 5768: ! 5769: ; FMOVEM.L 075,FPSR ! 5770: move.b #$1b,(a2)+ ! 5771: fmovem.l #$0b000000,fpsr ! 5772: bsr set_fline ! 5773: moveq.l #0,d7 ! 5774: lea.l @f,a3 ! 5775: .dc.l $f23d8800 ! 5776: @@: ! 5777: bsr restore_fline ! 5778: fmovem.l fpsr,d0 ! 5779: rol.l #8,d0 ! 5780: or.l d7,d0 ! 5781: move.b d0,(a2)+ ! 5782: ! 5783: ; FMOVEM.L 075,FPIAR ! 5784: move.b #$1b,(a2)+ ! 5785: fmovem.l #$0b000000,fpsr ! 5786: bsr set_fline ! 5787: moveq.l #0,d7 ! 5788: lea.l @f,a3 ! 5789: .dc.l $f23d8400 ! 5790: @@: ! 5791: bsr restore_fline ! 5792: fmovem.l fpsr,d0 ! 5793: rol.l #8,d0 ! 5794: or.l d7,d0 ! 5795: move.b d0,(a2)+ ! 5796: ! 5797: ; FMOVEM.L 075,FPSR/FPIAR ! 5798: move.b #$1b,(a2)+ ! 5799: fmovem.l #$0b000000,fpsr ! 5800: bsr set_fline ! 5801: moveq.l #0,d7 ! 5802: lea.l @f,a3 ! 5803: .dc.l $f23d8c00 ! 5804: @@: ! 5805: bsr restore_fline ! 5806: fmovem.l fpsr,d0 ! 5807: rol.l #8,d0 ! 5808: or.l d7,d0 ! 5809: move.b d0,(a2)+ ! 5810: ! 5811: lea.l msg_test_o,a0 ! 5812: moveq.l #4-1,d0 ! 5813: bsr print_result ! 5814: rts ! 5815: ! 5816: ! 5817: ; 引数を処理する。 ! 5818: ; 引数がなければヘルプを表示。 ! 5819: ; 引数... があれば列挙されたテストを実行。 ! 5820: ; "all" ならすべて実行。 ! 5821: parse_arg: ! 5822: movem.l d0-d2/a0,-(sp) ! 5823: tst.b (a2) ! 5824: beq parse_done ! 5825: parse_loop: ! 5826: adda.l #1,a2 ! 5827: move.b (a2),d0 ; '\0' なら終了 ! 5828: beq parse_done ! 5829: ! 5830: cmpi.b #' ',d0 ! 5831: beq parse_loop ! 5832: cmpi.b #$09,d0 ! 5833: beq parse_loop ! 5834: ! 5835: ; "help" ! 5836: lea.l cmd_help(pc),a0 ! 5837: bsr match ! 5838: beq print_help ! 5839: ! 5840: ; "all" ! 5841: lea.l cmd_all(pc),a0 ! 5842: bsr match ! 5843: bne @f ! 5844: st.b is_fmove ! 5845: st.b is_fgen ! 5846: st.b is_fscale ! 5847: st.b is_fscc ! 5848: st.b is_fmovem_rm ! 5849: st.b is_fmovem_mr ! 5850: st.b is_fmovem_cm ! 5851: st.b is_fmovem_mc ! 5852: ; 後は無視していいだろう。 ! 5853: bra parse_done ! 5854: @@: ! 5855: ; "fmove" ! 5856: lea.l cmd_fmove(pc),a0 ! 5857: bsr match ! 5858: bne @f ! 5859: st.b is_fmove ! 5860: bra parse_loop ! 5861: @@: ! 5862: ; "fgen" ! 5863: lea.l cmd_fgen(pc),a0 ! 5864: bsr match ! 5865: bne @f ! 5866: st.b is_fgen ! 5867: bra parse_loop ! 5868: @@: ! 5869: ; "fscale" ! 5870: lea.l cmd_fscale(pc),a0 ! 5871: bsr match ! 5872: bne @f ! 5873: st.b is_fscale ! 5874: bra parse_loop ! 5875: @@: ! 5876: ; "fscc" ! 5877: lea.l cmd_fscc(pc),a0 ! 5878: bsr match ! 5879: bne @f ! 5880: st.b is_fscc ! 5881: bra parse_loop ! 5882: @@: ! 5883: ; "fmovem_rm" ! 5884: lea.l cmd_fmovem_rm(pc),a0 ! 5885: bsr match ! 5886: bne @f ! 5887: st.b is_fmovem_rm ! 5888: bra parse_loop ! 5889: @@: ! 5890: ; "fmovem_mr" ! 5891: lea.l cmd_fmovem_mr(pc),a0 ! 5892: bsr match ! 5893: bne @f ! 5894: st.b is_fmovem_mr ! 5895: bra parse_loop ! 5896: @@: ! 5897: ; "fmovem_cm" ! 5898: lea.l cmd_fmovem_cm(pc),a0 ! 5899: bsr match ! 5900: bne @f ! 5901: st.b is_fmovem_cm ! 5902: bra parse_loop ! 5903: @@: ! 5904: ; "fmovem_mc" ! 5905: lea.l cmd_fmovem_mc(pc),a0 ! 5906: bsr match ! 5907: bne @f ! 5908: st.b is_fmovem_mc ! 5909: bra parse_loop ! 5910: @@: ! 5911: ! 5912: parse_done: ! 5913: ; どのコマンドも実行になってなければヘルプを表示。 ! 5914: moveq.l #0,d0 ! 5915: lea.l is_tests(pc),a0 ! 5916: moveq.l #8-1,d1 ! 5917: @@: ! 5918: or.b (a0)+,d0 ! 5919: dbra d1,@b ! 5920: beq print_help ! 5921: ! 5922: movem.l (sp)+,d0-d2/a0 ! 5923: rts ! 5924: ! 5925: ; ヘルプを表示して終了。 ! 5926: print_help: ! 5927: PRINT msg_help(pc) ! 5928: DOS _EXIT ! 5929: ! 5930: ; (a2) からの単語が (a0) からのゼロ終端文字列と一致するか。 ! 5931: ; 一致すれば d0 = 0 を返して (a2) は単語の最後の1文字を指すようにする。 ! 5932: ; 一致しなければ d0 != 0 を返して (a2) は元の位置のまま。 ! 5933: match: ! 5934: movem.l a1,-(sp) ! 5935: movea.l a2,a1 ; 戻り値用 ! 5936: match_loop: ! 5937: move.b (a2)+,d0 ! 5938: cmpi.b #' ',d0 ; d0 が ' ' なら '\0' に ! 5939: bne @f ! 5940: moveq.l #0,d0 ! 5941: bra match_main ! 5942: @@: ! 5943: cmpi.b #$09,d0 ; d0 が TAB なら '\0' に ! 5944: bne match_main ! 5945: moveq.l #0,d0 ! 5946: match_main: ! 5947: ; この状態で比較 ! 5948: cmp.b (a0)+,d0 ! 5949: bne not_match ! 5950: ; '\0' 以外で一致したら次の文字へ。 ! 5951: tst.b d0 ! 5952: bne match_loop ! 5953: ; '\0' で一致したので完了。 ! 5954: suba.l #1,a2 ! 5955: moveq.l #0,d0 ! 5956: movem.l (sp)+,a1 ! 5957: rts ! 5958: ! 5959: not_match: ! 5960: ; 不一致なので a2 を元に戻す。 ! 5961: movea.l a1,a2 ! 5962: moveq.l #1,d0 ! 5963: movem.l (sp)+,a1 ! 5964: rts ! 5965: ! 5966: ; 結果を1行表示する。 ! 5967: ; A0 にテスト名、D0 に(テスト数-1)を入れて呼ぶこと。 ! 5968: ; ! 5969: ; A2 からの result バッファは 2バイト1組で、 ! 5970: ; +0 バイト目が期待値、bit4 がトラップの有無、bit3-0 が ConditionByte。 ! 5971: ; +1 バイト目が結果値、構造は同じ。 ! 5972: ; ! 5973: ; 期待値 結果 ! 5974: ; (0<<4)|(x) (0<<4)|(x) pass:OK ! 5975: ; (0<<4)|(x) (0<<4)|(y) flag:FAIL ! 5976: ; (0<<4)|(x) (1<<4)|(x) trap:FAIL ! 5977: ; (0<<4)|(x) (1<<4)|(y) trap:FAIL ! 5978: ; (1<<4)|(x) (0<<4)|(x) pass:FAIL ! 5979: ; (1<<4)|(x) (0<<4)|(y) pass:FAIL ! 5980: ; (1<<4)|(x) (1<<4)|(x) trap:OK ! 5981: ; (1<<4)|(x) (1<<4)|(y) flag:FAIL ! 5982: print_result: ! 5983: movem.l d0-d4/a2,-(sp) ! 5984: move.l d0,d4 ! 5985: PRINT (a0) ! 5986: lea.l result(pc),a2 ! 5987: moveq.l #0,d0 ! 5988: moveq.l #0,d1 ! 5989: prloop: ! 5990: move.b (a2)+,d0 ; 期待値 ! 5991: move.b (a2)+,d1 ; 結果 ! 5992: ; 先に failed のカウント ! 5993: cmp.b d1,d0 ! 5994: beq @f ! 5995: addi.l #1,failed ! 5996: @@: ! 5997: bfextu d0{#27:#1},d2 ; 期待値のトラップビット ! 5998: bfextu d1{#27:#1},d3 ; 結果のトラップビット ! 5999: andi.b #$0f,d0 ! 6000: andi.b #$0f,d1 ! 6001: cmp.b d1,d0 ! 6002: sne.b d0 ! 6003: neg.b d0 ; d0 は一致なら $0、そうでなければ $1 ! 6004: lsl.l #1,d3 ; d3 は結果がトラップなら $2、通過なら $0 ! 6005: or.b d3,d0 ! 6006: lsl.l #2,d2 ; d2 は期待値がトラップなら $4、通過なら $0 ! 6007: or.b d2,d0 ! 6008: add.b d0,d0 ; d0 *= 2 ! 6009: PRINT msg_result(pc,d0.w*8) ! 6010: dbra d4,prloop ! 6011: PRINT msg_crlf(pc) ! 6012: movem.l (sp)+,d0-d4/a2 ! 6013: rts ! 6014: ! 6015: ; Fライン例外をテスト用のものに差し替える。 ! 6016: ; 変更前のアドレスを a4 に格納する。 ! 6017: set_fline: ! 6018: movem.l d0-d1/a1,-(sp) ! 6019: moveq.l #$b,d1 ! 6020: lea.l fline_handler(pc),a1 ! 6021: IOCS _B_INTVCS ! 6022: movea.l d0,a4 ! 6023: movem.l (sp)+,d0-d1/a1 ! 6024: rts ! 6025: ! 6026: ; Fライン例外を元に戻す。 ! 6027: restore_fline: ! 6028: movem.l d0-d1/a1,-(sp) ! 6029: moveq.l #$b,d1 ! 6030: movea.l a4,a1 ! 6031: IOCS _B_INTVCS ! 6032: movem.l (sp)+,d0-d1/a1 ! 6033: rts ! 6034: ! 6035: ; Fライン例外ハンドラ ! 6036: ; a3 に戻りアドレスをセットしてあること ! 6037: ; d7 を $10 にして帰る ! 6038: fline_handler: ! 6039: moveq.l #$10,d7 ! 6040: move.l a3,2(sp) ! 6041: rte ! 6042: ! 6043: msg_test_d: .dc.b " Dn ",0 ! 6044: msg_test_a: .dc.b " An ",0 ! 6045: msg_test_m: .dc.b " (An) ",0 ! 6046: msg_test_mi: .dc.b " (An)+ ",0 ! 6047: msg_test_md: .dc.b " -(An) ",0 ! 6048: msg_test_r: .dc.b " d16(An) ",0 ! 6049: msg_test_x: .dc.b " d8(An,IX)",0 ! 6050: msg_test_p: .dc.b " (PC) ",0 ! 6051: msg_test_i: .dc.b " #imm ",0 ! 6052: msg_test_o: .dc.b " 075 ",0 ! 6053: ! 6054: msg_head_fmove: ! 6055: .dc.b "FMOVEtomem ",0 ! 6056: msg_head_fgen: ! 6057: .dc.b "Fgen ",0 ! 6058: msg_head_fscale: ! 6059: .dc.b "FSCALE ",0 ! 6060: msg_head_fmovem_cm: ! 6061: .dc.b "FMOVEM_cm ",0 ! 6062: msg_head_fmovem_mc: ! 6063: .dc.b "FMOVEM_mc ",0 ! 6064: msg_head_fscc: ! 6065: .dc.b "FScc .B",$d,$a,0 ! 6066: msg_head_fmovem_rm: ! 6067: .dc.b "FMOVEM_rm .X",$d,$a,0 ! 6068: msg_head_fmovem_mr: ! 6069: .dc.b "FMOVEM_mr .X",$d,$a,0 ! 6070: ! 6071: msg_head_guide4: ! 6072: .dc.b "FPCR " ! 6073: .dc.b "FPSR " ! 6074: .dc.b "FPIAR " ! 6075: .dc.b "FPSR/FPIAR",$d,$a,0 ! 6076: ! 6077: msg_head_guide7: ! 6078: .dc.b ".B " ! 6079: .dc.b ".W " ! 6080: .dc.b ".L " ! 6081: .dc.b ".S " ! 6082: .dc.b ".D " ! 6083: .dc.b ".X " ! 6084: .dc.b ".P",$d,$a,0 ! 6085: ! 6086: msg_result: ! 6087: .dc.b " pass:OK ",0,0,0,0,0,0 ! 6088: .dc.b " flag:FAIL",0,0,0,0,0,0 ! 6089: .dc.b " trap:FAIL",0,0,0,0,0,0 ! 6090: .dc.b " trap:FAIL",0,0,0,0,0,0 ! 6091: .dc.b " pass:FAIL",0,0,0,0,0,0 ! 6092: .dc.b " pass:FAIL",0,0,0,0,0,0 ! 6093: .dc.b " trap:OK ",0,0,0,0,0,0 ! 6094: .dc.b " flag:FAIL",0 ! 6095: ! 6096: msg_failed: ! 6097: .dc.b "FAILED" ; ,$d,$a,0 ! 6098: msg_crlf: ! 6099: .dc.b $d,$a,0 ! 6100: ! 6101: msg_help: ! 6102: .dc.b "usage: { 'all' | 'help' | testnames... }",$d,$a ! 6103: .dc.b " testnames:" ! 6104: .dc.b " fmove" ! 6105: .dc.b " fgen" ! 6106: .dc.b " fscale" ! 6107: .dc.b " fscc" ! 6108: .dc.b " fmovem_rm" ! 6109: .dc.b " fmovem_mr" ! 6110: .dc.b " fmovem_cm" ! 6111: .dc.b " fmovem_mc" ! 6112: .dc.b $d,$a,0 ! 6113: ! 6114: cmd_help: ! 6115: .dc.b "help",0 ! 6116: cmd_all: ! 6117: .dc.b "all",0 ! 6118: cmd_fmove: ! 6119: .dc.b "fmove",0 ! 6120: cmd_fgen: ! 6121: .dc.b "fgen",0 ! 6122: cmd_fscale: ! 6123: .dc.b "fscale",0 ! 6124: cmd_fscc: ! 6125: .dc.b "fscc",0 ! 6126: cmd_fmovem_rm: ! 6127: .dc.b "fmovem_rm",0 ! 6128: cmd_fmovem_mr: ! 6129: .dc.b "fmovem_mr",0 ! 6130: cmd_fmovem_cm: ! 6131: .dc.b "fmovem_cm",0 ! 6132: cmd_fmovem_mc: ! 6133: .dc.b "fmovem_mc",0 ! 6134: ! 6135: .bss ! 6136: .even ! 6137: result: ! 6138: .ds.w 7 ! 6139: .align 4 ! 6140: workarea: ! 6141: .ds.l 3 ! 6142: failed: ! 6143: .ds.l 1 ! 6144: ! 6145: ; テストを実行する場合は !0 ! 6146: is_tests: ! 6147: is_fmove: ! 6148: .ds.b 1 ! 6149: is_fgen: ! 6150: .ds.b 1 ! 6151: is_fscale: ! 6152: .ds.b 1 ! 6153: is_fscc: ! 6154: .ds.b 1 ! 6155: is_fmovem_rm: ! 6156: .ds.b 1 ! 6157: is_fmovem_mr: ! 6158: .ds.b 1 ! 6159: is_fmovem_cm: ! 6160: .ds.b 1 ! 6161: is_fmovem_mc: ! 6162: .ds.b 1 ! 6163: ! 6164: .end start
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.