|
|
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.