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