|
|
nono 1.2.0
; ; nono ; Copyright (C) 2020 nono project ; ; Redistribution and use in source and binary forms, with or without ; modification, are permitted provided that the following conditions ; are met: ; 1. Redistributions of source code must retain the above copyright ; notice, this list of conditions and the following disclaimer. ; 2. Redistributions in binary form must reproduce the above copyright ; notice, this list of conditions and the following disclaimer in the ; documentation and/or other materials provided with the distribution. ; ; THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ; OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ; IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, ; BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED ; AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ; OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ; OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ; SUCH DAMAGE. ; How to compile: ; > has fmovemc.has ; > hlk fmovemc.o si_util.o .xref hexstr_long .include doscall.mac .include iocscall.mac .list .cpu 68030 PRINT .macro msg pea.l msg(pc) DOS _PRINT addq.l #4,sp .endm .text .even start: bra start2 test_fmovem_dn_to____: PRINT msg_fmovem_dn_to____ fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,d0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f200, $8000 @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: fmove.l fpcr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$55555555,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_an_to____: PRINT msg_fmovem_an_to____ fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $8000 @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: fmove.l fpcr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$55555555,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_anin_to____: PRINT msg_fmovem_anin_to____ fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f210, $8000 @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$55555555,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_anpi_to____: PRINT msg_fmovem_anpi_to____ fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f218, $8000 @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea+4(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$55555555,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_anpd_to____: PRINT msg_fmovem_anpd_to____ fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea+4(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f220, $8000 @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$55555555,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_imm_to____: PRINT msg_fmovem_imm_to____ fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f23c, $8000 .dc.l $55555555 @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: fmove.l fpcr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$55555555,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_dn_to___I: PRINT msg_fmovem_dn_to___I fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,d0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l d0,fpiar @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: fmove.l fpcr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$55555555,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_an_to___I: PRINT msg_fmovem_an_to___I fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l a0,fpiar @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: fmove.l fpcr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$55555555,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_anin_to___I: PRINT msg_fmovem_anin_to___I fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0),fpiar @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$55555555,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_anpi_to___I: PRINT msg_fmovem_anpi_to___I fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0)+,fpiar @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea+4(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$55555555,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_anpd_to___I: PRINT msg_fmovem_anpd_to___I fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea+4(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l -(a0),fpiar @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$55555555,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_imm_to___I: PRINT msg_fmovem_imm_to___I fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l #$55555555,fpiar @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: fmove.l fpcr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$55555555,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_dn_to__S_: PRINT msg_fmovem_dn_to__S_ fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,d0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l d0,fpsr @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: fmove.l fpcr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 move.l #$05555550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_an_to__S_: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem_an_to__S_ bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $8800 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem_anin_to__S_: PRINT msg_fmovem_anin_to__S_ fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0),fpsr @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 move.l #$05555550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_anpi_to__S_: PRINT msg_fmovem_anpi_to__S_ fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0)+,fpsr @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea+4(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 move.l #$05555550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_anpd_to__S_: PRINT msg_fmovem_anpd_to__S_ fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea+4(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l -(a0),fpsr @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 move.l #$05555550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_imm_to__S_: PRINT msg_fmovem_imm_to__S_ fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l #$55555555,fpsr @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: fmove.l fpcr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 move.l #$05555550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_dn_to__SI: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem_dn_to__SI bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f200, $8c00 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem_an_to__SI: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem_an_to__SI bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $8c00 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem_anin_to__SI: PRINT msg_fmovem_anin_to__SI fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea move.l #$aaaaaaaa,workarea+4 lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0),fpsr/fpiar @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 move.l #$05555550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$aaaaaaaa,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_anpi_to__SI: PRINT msg_fmovem_anpi_to__SI fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea move.l #$aaaaaaaa,workarea+4 lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0)+,fpsr/fpiar @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea+8(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 move.l #$05555550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$aaaaaaaa,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_anpd_to__SI: PRINT msg_fmovem_anpd_to__SI fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea move.l #$aaaaaaaa,workarea+4 lea.l workarea+8(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l -(a0),fpsr/fpiar @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 move.l #$05555550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$aaaaaaaa,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_imm_to__SI: PRINT msg_fmovem_imm_to__SI fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l #$55555555,#$aaaaaaaa,fpsr/fpiar @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: fmove.l fpcr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 move.l #$05555550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$aaaaaaaa,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_dn_to_C__: PRINT msg_fmovem_dn_to_C__ fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,d0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l d0,fpcr @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: fmove.l fpcr,d0 move.l #$00005550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_an_to_C__: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem_an_to_C__ bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $9000 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem_anin_to_C__: PRINT msg_fmovem_anin_to_C__ fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0),fpcr @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 move.l #$00005550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_anpi_to_C__: PRINT msg_fmovem_anpi_to_C__ fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0)+,fpcr @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea+4(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 move.l #$00005550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_anpd_to_C__: PRINT msg_fmovem_anpd_to_C__ fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea lea.l workarea+4(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l -(a0),fpcr @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 move.l #$00005550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_imm_to_C__: PRINT msg_fmovem_imm_to_C__ fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l #$55555555,fpcr @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: fmove.l fpcr,d0 move.l #$00005550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_dn_to_C_I: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem_dn_to_C_I bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f200, $9400 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem_an_to_C_I: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem_an_to_C_I bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $9400 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem_anin_to_C_I: PRINT msg_fmovem_anin_to_C_I fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea move.l #$aaaaaaaa,workarea+4 lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0),fpcr/fpiar @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 move.l #$00005550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$aaaaaaaa,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_anpi_to_C_I: PRINT msg_fmovem_anpi_to_C_I fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea move.l #$aaaaaaaa,workarea+4 lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0)+,fpcr/fpiar @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea+8(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 move.l #$00005550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$aaaaaaaa,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_anpd_to_C_I: PRINT msg_fmovem_anpd_to_C_I fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea move.l #$aaaaaaaa,workarea+4 lea.l workarea+8(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l -(a0),fpcr/fpiar @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 move.l #$00005550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$aaaaaaaa,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_imm_to_C_I: PRINT msg_fmovem_imm_to_C_I fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l #$55555555,#$aaaaaaaa,fpcr/fpiar @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: fmove.l fpcr,d0 move.l #$00005550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 moveq.l #0,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$aaaaaaaa,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_dn_to_CS_: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem_dn_to_CS_ bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f200, $9800 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem_an_to_CS_: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem_an_to_CS_ bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $9800 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem_anin_to_CS_: PRINT msg_fmovem_anin_to_CS_ fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea move.l #$aaaaaaaa,workarea+4 lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0),fpcr/fpsr @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 move.l #$00005550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 move.l #$0aaaaaa8,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_anpi_to_CS_: PRINT msg_fmovem_anpi_to_CS_ fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea move.l #$aaaaaaaa,workarea+4 lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0)+,fpcr/fpsr @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea+8(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 move.l #$00005550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 move.l #$0aaaaaa8,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_anpd_to_CS_: PRINT msg_fmovem_anpd_to_CS_ fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea move.l #$aaaaaaaa,workarea+4 lea.l workarea+8(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l -(a0),fpcr/fpsr @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 move.l #$00005550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 move.l #$0aaaaaa8,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_imm_to_CS_: PRINT msg_fmovem_imm_to_CS_ fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l #$55555555,#$aaaaaaaa,fpcr/fpsr @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: fmove.l fpcr,d0 move.l #$00005550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 move.l #$0aaaaaa8,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 suba.l a1,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_dn_to_CSI: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem_dn_to_CSI bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f200, $9c00 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem_an_to_CSI: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem_an_to_CSI bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $9c00 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem_anin_to_CSI: PRINT msg_fmovem_anin_to_CSI fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea move.l #$aaaaaaaa,workarea+4 move.l #$33333333,workarea+8 lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0),fpcr/fpsr/fpiar @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 move.l #$00005550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 move.l #$0aaaaaa8,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$33333333,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_anpi_to_CSI: PRINT msg_fmovem_anpi_to_CSI fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea move.l #$aaaaaaaa,workarea+4 move.l #$33333333,workarea+8 lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l (a0)+,fpcr/fpsr/fpiar @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea+12(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 move.l #$00005550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 move.l #$0aaaaaa8,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$33333333,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_anpd_to_CSI: PRINT msg_fmovem_anpd_to_CSI fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar move.l #$55555555,workarea move.l #$aaaaaaaa,workarea+4 move.l #$33333333,workarea+8 lea.l workarea+12(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l -(a0),fpcr/fpsr/fpiar @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpcr,d0 move.l #$00005550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 move.l #$0aaaaaa8,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$33333333,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_imm_to_CSI: PRINT msg_fmovem_imm_to_CSI fmove.l #0,fpcr fmove.l #0,fpsr fmove.l #0,fpiar bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l #$55555555,#$aaaaaaaa,#$33333333,fpcr/fpsr/fpiar @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: fmove.l fpcr,d0 move.l #$00005550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_cr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpsr,d0 move.l #$0aaaaaa8,d1 cmp.l d1,d0 beq @f pea.l msg_fail_sr(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: fmove.l fpiar,a0 move.l #$33333333,a1 cmpa.l a1,a0 beq @f pea.l msg_fail_ir(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_____to_dn: PRINT msg_fmovem_____to_dn fmove.l #$00000000,fpcr fmove.l #$00000000,fpsr fmove.l #$55555555,fpiar bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f200, $a000 @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: move.l #$55555555,d1 cmp.l d1,d0 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_____to_an: PRINT msg_fmovem_____to_an fmove.l #$00000000,fpcr fmove.l #$00000000,fpsr fmove.l #$55555555,fpiar bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $a000 @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: movea.l #$55555555,a1 cmp.l a1,a0 beq @f pea.l msg_fail_dst(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_____to_anin: PRINT msg_fmovem_____to_anin fmove.l #$00000000,fpcr fmove.l #$00000000,fpsr fmove.l #$55555555,fpiar lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f210, $a000 @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$55555555,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_____to_anpi: PRINT msg_fmovem_____to_anpi fmove.l #$00000000,fpcr fmove.l #$00000000,fpsr fmove.l #$55555555,fpiar lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f218, $a000 @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea+4(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$55555555,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_____to_anpd: PRINT msg_fmovem_____to_anpd fmove.l #$00000000,fpcr fmove.l #$00000000,fpsr fmove.l #$55555555,fpiar lea.l workarea+4(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f220, $a000 @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$55555555,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_____to_imm: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem_____to_imm bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f23c, $a000 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem___I_to_dn: PRINT msg_fmovem___I_to_dn fmove.l #$00000000,fpcr fmove.l #$00000000,fpsr fmove.l #$55555555,fpiar bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpiar,d0 @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: move.l #$55555555,d1 cmp.l d1,d0 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem___I_to_an: PRINT msg_fmovem___I_to_an fmove.l #$00000000,fpcr fmove.l #$00000000,fpsr fmove.l #$55555555,fpiar bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpiar,a0 @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: movea.l #$55555555,a1 cmp.l a1,a0 beq @f pea.l msg_fail_dst(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem___I_to_anin: PRINT msg_fmovem___I_to_anin fmove.l #$00000000,fpcr fmove.l #$00000000,fpsr fmove.l #$55555555,fpiar lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpiar,(a0) @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$55555555,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem___I_to_anpi: PRINT msg_fmovem___I_to_anpi fmove.l #$00000000,fpcr fmove.l #$00000000,fpsr fmove.l #$55555555,fpiar lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpiar,(a0)+ @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea+4(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$55555555,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem___I_to_anpd: PRINT msg_fmovem___I_to_anpd fmove.l #$00000000,fpcr fmove.l #$00000000,fpsr fmove.l #$55555555,fpiar lea.l workarea+4(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpiar,-(a0) @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$55555555,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem___I_to_imm: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem___I_to_imm bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f23c, $a400 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem__S__to_dn: PRINT msg_fmovem__S__to_dn fmove.l #$00000000,fpcr fmove.l #$55555555,fpsr fmove.l #$00000000,fpiar bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpsr,d0 @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: move.l #$05555550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem__S__to_an: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem__S__to_an bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $a800 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem__S__to_anin: PRINT msg_fmovem__S__to_anin fmove.l #$00000000,fpcr fmove.l #$55555555,fpsr fmove.l #$00000000,fpiar lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpsr,(a0) @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$05555550,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem__S__to_anpi: PRINT msg_fmovem__S__to_anpi fmove.l #$00000000,fpcr fmove.l #$55555555,fpsr fmove.l #$00000000,fpiar lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpsr,(a0)+ @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea+4(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$05555550,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem__S__to_anpd: PRINT msg_fmovem__S__to_anpd fmove.l #$00000000,fpcr fmove.l #$55555555,fpsr fmove.l #$00000000,fpiar lea.l workarea+4(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpsr,-(a0) @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$05555550,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem__S__to_imm: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem__S__to_imm bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f23c, $a800 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem__SI_to_dn: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem__SI_to_dn bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f200, $ac00 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem__SI_to_an: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem__SI_to_an bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $ac00 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem__SI_to_anin: PRINT msg_fmovem__SI_to_anin fmove.l #$00000000,fpcr fmove.l #$55555555,fpsr fmove.l #$aaaaaaaa,fpiar lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpsr/fpiar,(a0) @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$05555550,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$aaaaaaaa,d1 cmp.l workarea+4,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem__SI_to_anpi: PRINT msg_fmovem__SI_to_anpi fmove.l #$00000000,fpcr fmove.l #$55555555,fpsr fmove.l #$aaaaaaaa,fpiar lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpsr/fpiar,(a0)+ @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea+8(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$05555550,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$aaaaaaaa,d1 cmp.l workarea+4,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem__SI_to_anpd: PRINT msg_fmovem__SI_to_anpd fmove.l #$00000000,fpcr fmove.l #$55555555,fpsr fmove.l #$aaaaaaaa,fpiar lea.l workarea+8(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpsr/fpiar,-(a0) @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$05555550,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$aaaaaaaa,d1 cmp.l workarea+4,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem__SI_to_imm: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem__SI_to_imm bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f23c, $ac00 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem_C___to_dn: PRINT msg_fmovem_C___to_dn fmove.l #$55555555,fpcr fmove.l #$00000000,fpsr fmove.l #$00000000,fpiar bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr,d0 @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: move.l #$00005550,d1 cmp.l d1,d0 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l d0,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_C___to_an: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem_C___to_an bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $b000 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem_C___to_anin: PRINT msg_fmovem_C___to_anin fmove.l #$55555555,fpcr fmove.l #$00000000,fpsr fmove.l #$00000000,fpiar lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr,(a0) @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_C___to_anpi: PRINT msg_fmovem_C___to_anpi fmove.l #$55555555,fpcr fmove.l #$00000000,fpsr fmove.l #$00000000,fpiar lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr,(a0)+ @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea+4(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_C___to_anpd: PRINT msg_fmovem_C___to_anpd fmove.l #$55555555,fpcr fmove.l #$00000000,fpsr fmove.l #$00000000,fpiar lea.l workarea+4(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr,-(a0) @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_C___to_imm: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem_C___to_imm bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f23c, $b000 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem_C_I_to_dn: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem_C_I_to_dn bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f200, $b400 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem_C_I_to_an: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem_C_I_to_an bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $b400 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem_C_I_to_anin: PRINT msg_fmovem_C_I_to_anin fmove.l #$55555555,fpcr fmove.l #$00000000,fpsr fmove.l #$aaaaaaaa,fpiar lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr/fpiar,(a0) @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$aaaaaaaa,d1 cmp.l workarea+4,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_C_I_to_anpi: PRINT msg_fmovem_C_I_to_anpi fmove.l #$55555555,fpcr fmove.l #$00000000,fpsr fmove.l #$aaaaaaaa,fpiar lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr/fpiar,(a0)+ @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea+8(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$aaaaaaaa,d1 cmp.l workarea+4,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_C_I_to_anpd: PRINT msg_fmovem_C_I_to_anpd fmove.l #$55555555,fpcr fmove.l #$00000000,fpsr fmove.l #$aaaaaaaa,fpiar lea.l workarea+8(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr/fpiar,-(a0) @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$aaaaaaaa,d1 cmp.l workarea+4,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_C_I_to_imm: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem_C_I_to_imm bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f23c, $b400 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem_CS__to_dn: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem_CS__to_dn bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f200, $b800 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem_CS__to_an: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem_CS__to_an bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $b800 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem_CS__to_anin: PRINT msg_fmovem_CS__to_anin fmove.l #$55555555,fpcr fmove.l #$aaaaaaaa,fpsr fmove.l #$00000000,fpiar lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr/fpsr,(a0) @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$0aaaaaa8,d1 cmp.l workarea+4,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_CS__to_anpi: PRINT msg_fmovem_CS__to_anpi fmove.l #$55555555,fpcr fmove.l #$aaaaaaaa,fpsr fmove.l #$00000000,fpiar lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr/fpsr,(a0)+ @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea+8(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$0aaaaaa8,d1 cmp.l workarea+4,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_CS__to_anpd: PRINT msg_fmovem_CS__to_anpd fmove.l #$55555555,fpcr fmove.l #$aaaaaaaa,fpsr fmove.l #$00000000,fpiar lea.l workarea+8(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr/fpsr,-(a0) @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$0aaaaaa8,d1 cmp.l workarea+4,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_CS__to_imm: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem_CS__to_imm bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f23c, $b800 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem_CSI_to_dn: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem_CSI_to_dn bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f200, $bc00 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem_CSI_to_an: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem_CSI_to_an bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f208, $bc00 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts test_fmovem_CSI_to_anin: PRINT msg_fmovem_CSI_to_anin fmove.l #$55555555,fpcr fmove.l #$aaaaaaaa,fpsr fmove.l #$33333333,fpiar lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr/fpsr/fpiar,(a0) @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$0aaaaaa8,d1 cmp.l workarea+4,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$33333333,d1 cmp.l workarea+8,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+12,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_CSI_to_anpi: PRINT msg_fmovem_CSI_to_anpi fmove.l #$55555555,fpcr fmove.l #$aaaaaaaa,fpsr fmove.l #$33333333,fpiar lea.l workarea(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr/fpsr/fpiar,(a0)+ @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea+12(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$0aaaaaa8,d1 cmp.l workarea+4,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$33333333,d1 cmp.l workarea+8,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+12,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_CSI_to_anpd: PRINT msg_fmovem_CSI_to_anpd fmove.l #$55555555,fpcr fmove.l #$aaaaaaaa,fpsr fmove.l #$33333333,fpiar lea.l workarea+12(pc),a0 bsr set_fline moveq.l #0,d7 lea.l @f,a3 fmovem.l fpcr/fpsr/fpiar,-(a0) @@: bsr restore_fline tst.l d7 beq @f PRINT msg_fail_trap rts @@: lea.l workarea(pc),a1 cmpa.l a1,a0 beq @f pea.l msg_fail_addr(pc) move.l a1,-(sp) move.l a0,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$00005550,d1 cmp.l workarea+0,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+4,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$0aaaaaa8,d1 cmp.l workarea+4,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+8,-(sp) bsr result lea.l 12(sp),sp @@: move.l #$33333333,d1 cmp.l workarea+8,d1 beq @f pea.l msg_fail_dst(pc) move.l d1,-(sp) move.l workarea+12,-(sp) bsr result lea.l 12(sp),sp @@: tst.l d7 bne @f PRINT msg_ok @@: rts test_fmovem_CSI_to_imm: tst.b is_hard(pc) bne @f rts @@: PRINT msg_fmovem_CSI_to_imm bsr set_fline moveq.l #0,d7 lea.l @f,a3 .dc.w $f23c, $bc00 @@: bsr restore_fline tst.l d7 bne @f PRINT msg_fail_notrap rts @@: PRINT msg_oktrap rts start2: clr.l -(sp) DOS _SUPER movem.l d7/a3-a4,-(sp) ; rough argument check cmpi.b #4,(a2)+ ; strlen(arg)>=4 ? bcs @f cmpi.l #$68617264,(a2) ; "hard" seq.b is_hard @@: tst.b is_hard(pc) beq disp_easy disp_hard: PRINT msg_hard bra @f disp_easy: PRINT msg_easy @@: tst.b is_hard(pc) beq @f bsr test_fmovem_dn_to____ @@: tst.b is_hard(pc) beq @f bsr test_fmovem_an_to____ @@: tst.b is_hard(pc) beq @f bsr test_fmovem_anin_to____ @@: tst.b is_hard(pc) beq @f bsr test_fmovem_anpi_to____ @@: tst.b is_hard(pc) beq @f bsr test_fmovem_anpd_to____ @@: tst.b is_hard(pc) beq @f bsr test_fmovem_imm_to____ @@: bsr test_fmovem_dn_to___I bsr test_fmovem_an_to___I bsr test_fmovem_anin_to___I bsr test_fmovem_anpi_to___I bsr test_fmovem_anpd_to___I bsr test_fmovem_imm_to___I bsr test_fmovem_dn_to__S_ bsr test_fmovem_an_to__S_ bsr test_fmovem_anin_to__S_ bsr test_fmovem_anpi_to__S_ bsr test_fmovem_anpd_to__S_ bsr test_fmovem_imm_to__S_ bsr test_fmovem_dn_to__SI bsr test_fmovem_an_to__SI bsr test_fmovem_anin_to__SI bsr test_fmovem_anpi_to__SI bsr test_fmovem_anpd_to__SI bsr test_fmovem_imm_to__SI bsr test_fmovem_dn_to_C__ bsr test_fmovem_an_to_C__ bsr test_fmovem_anin_to_C__ bsr test_fmovem_anpi_to_C__ bsr test_fmovem_anpd_to_C__ bsr test_fmovem_imm_to_C__ bsr test_fmovem_dn_to_C_I bsr test_fmovem_an_to_C_I bsr test_fmovem_anin_to_C_I bsr test_fmovem_anpi_to_C_I bsr test_fmovem_anpd_to_C_I bsr test_fmovem_imm_to_C_I bsr test_fmovem_dn_to_CS_ bsr test_fmovem_an_to_CS_ bsr test_fmovem_anin_to_CS_ bsr test_fmovem_anpi_to_CS_ bsr test_fmovem_anpd_to_CS_ bsr test_fmovem_imm_to_CS_ bsr test_fmovem_dn_to_CSI bsr test_fmovem_an_to_CSI bsr test_fmovem_anin_to_CSI bsr test_fmovem_anpi_to_CSI bsr test_fmovem_anpd_to_CSI bsr test_fmovem_imm_to_CSI tst.b is_hard(pc) beq @f bsr test_fmovem_____to_dn @@: tst.b is_hard(pc) beq @f bsr test_fmovem_____to_an @@: tst.b is_hard(pc) beq @f bsr test_fmovem_____to_anin @@: tst.b is_hard(pc) beq @f bsr test_fmovem_____to_anpi @@: tst.b is_hard(pc) beq @f bsr test_fmovem_____to_anpd @@: tst.b is_hard(pc) beq @f bsr test_fmovem_____to_imm @@: bsr test_fmovem___I_to_dn bsr test_fmovem___I_to_an bsr test_fmovem___I_to_anin bsr test_fmovem___I_to_anpi bsr test_fmovem___I_to_anpd bsr test_fmovem___I_to_imm bsr test_fmovem__S__to_dn bsr test_fmovem__S__to_an bsr test_fmovem__S__to_anin bsr test_fmovem__S__to_anpi bsr test_fmovem__S__to_anpd bsr test_fmovem__S__to_imm bsr test_fmovem__SI_to_dn bsr test_fmovem__SI_to_an bsr test_fmovem__SI_to_anin bsr test_fmovem__SI_to_anpi bsr test_fmovem__SI_to_anpd bsr test_fmovem__SI_to_imm bsr test_fmovem_C___to_dn bsr test_fmovem_C___to_an bsr test_fmovem_C___to_anin bsr test_fmovem_C___to_anpi bsr test_fmovem_C___to_anpd bsr test_fmovem_C___to_imm bsr test_fmovem_C_I_to_dn bsr test_fmovem_C_I_to_an bsr test_fmovem_C_I_to_anin bsr test_fmovem_C_I_to_anpi bsr test_fmovem_C_I_to_anpd bsr test_fmovem_C_I_to_imm bsr test_fmovem_CS__to_dn bsr test_fmovem_CS__to_an bsr test_fmovem_CS__to_anin bsr test_fmovem_CS__to_anpi bsr test_fmovem_CS__to_anpd bsr test_fmovem_CS__to_imm bsr test_fmovem_CSI_to_dn bsr test_fmovem_CSI_to_an bsr test_fmovem_CSI_to_anin bsr test_fmovem_CSI_to_anpi bsr test_fmovem_CSI_to_anpd bsr test_fmovem_CSI_to_imm movem.l (sp)+,d7/a3-a4 DOS _EXIT ; 結果表示 ; スタックには、メッセージ、期待値、実際の値の順で積む。 result: link a6,#0 movem.l d0/a0,-(sp) move.l 8+8(a6),-(sp) DOS _PRINT addq.l #4,sp move.l 8+4(a6),d0 lea.l buf(pc),a0 bsr hexstr_long PRINT buf PRINT msg_but move.l 8+0(a6),d0 lea.l buf(pc),a0 bsr hexstr_long PRINT buf PRINT msg_crlf addq.l #1,d7 ; errcnt movem.l (sp)+,d0/a0 unlk a6 rts ; Fライン例外をテスト用のものに差し替える。 ; 変更前のアドレスを a4 に格納する。 ; a1 は破壊する。 set_fline: movem.l d0-d1,-(sp) moveq.l #$b,d1 lea.l fline_handler(pc),a1 IOCS _B_INTVCS movea.l d0,a4 movem.l (sp)+,d0-d1 rts ; Fライン例外を元に戻す。 ; a1 は破壊する。 restore_fline: movem.l d0-d1,-(sp) moveq.l #$b,d1 movea.l a4,a1 IOCS _B_INTVCS movem.l (sp)+,d0-d1 rts ; Fライン例外ハンドラ ; a3 に戻りアドレスをセットしてあること ; d7 を 1 にして帰る fline_handler: moveq.l #1,d7 move.l a3,2(sp) rte msg_hard: .dc.b "hard mode",$d,$a,0 msg_easy: .dc.b "easy mode",$d,$a,0 msg_oktrap: .dc.b $9,"ok(trap)",$d,$a,0, 0,0 msg_fail_notrap: .dc.b $9,"FAIL: trap expected but not occured",$d,$a,0 msg_fail_trap: .dc.b $9,"FAIL: unexpected trap occured",$d,$a,0 msg_ok: .dc.b $9,"ok",$d,$a,0 msg_fail_cr: .dc.b $9,"FAIL: fpcr expects ",0 msg_fail_sr: .dc.b $9,"FAIL: fpsr expects ",0 msg_fail_ir: .dc.b $9,"FAIL: fpiar expects ",0 msg_fail_addr: .dc.b $9,"FAIL: an expects ",0 msg_fail_dst: .dc.b $9,"FAIL: dst expects ",0 msg_but: .dc.b " but ",0 msg_crlf: .dc.b $d,$a,0 msg_fmovem_dn_to____: .dc.b "fmovem.l d0,nofpc",0 msg_fmovem_an_to____: .dc.b "fmovem.l a0,nofpc",0 msg_fmovem_anin_to____: .dc.b "fmovem.l (a0),nofpc",0 msg_fmovem_anpi_to____: .dc.b "fmovem.l (a0)+,nofpc",0 msg_fmovem_anpd_to____: .dc.b "fmovem.l -(a0),nofpc",0 msg_fmovem_imm_to____: .dc.b "fmovem.l #imm,nofpc",0 msg_fmovem_dn_to___I: .dc.b "fmovem.l d0,fpiar",0 msg_fmovem_an_to___I: .dc.b "fmovem.l a0,fpiar",0 msg_fmovem_anin_to___I: .dc.b "fmovem.l (a0),fpiar",0 msg_fmovem_anpi_to___I: .dc.b "fmovem.l (a0)+,fpiar",0 msg_fmovem_anpd_to___I: .dc.b "fmovem.l -(a0),fpiar",0 msg_fmovem_imm_to___I: .dc.b "fmovem.l #imm,fpiar",0 msg_fmovem_dn_to__S_: .dc.b "fmovem.l d0,fpsr",0 msg_fmovem_an_to__S_: .dc.b "fmovem.l a0,fpsr",0 msg_fmovem_anin_to__S_: .dc.b "fmovem.l (a0),fpsr",0 msg_fmovem_anpi_to__S_: .dc.b "fmovem.l (a0)+,fpsr",0 msg_fmovem_anpd_to__S_: .dc.b "fmovem.l -(a0),fpsr",0 msg_fmovem_imm_to__S_: .dc.b "fmovem.l #imm,fpsr",0 msg_fmovem_dn_to__SI: .dc.b "fmovem.l d0,fpsr/fpiar",0 msg_fmovem_an_to__SI: .dc.b "fmovem.l a0,fpsr/fpiar",0 msg_fmovem_anin_to__SI: .dc.b "fmovem.l (a0),fpsr/fpiar",0 msg_fmovem_anpi_to__SI: .dc.b "fmovem.l (a0)+,fpsr/fpiar",0 msg_fmovem_anpd_to__SI: .dc.b "fmovem.l -(a0),fpsr/fpiar",0 msg_fmovem_imm_to__SI: .dc.b "fmovem.l #imm/#imm,fpsr/fpiar",0 msg_fmovem_dn_to_C__: .dc.b "fmovem.l d0,fpcr",0 msg_fmovem_an_to_C__: .dc.b "fmovem.l a0,fpcr",0 msg_fmovem_anin_to_C__: .dc.b "fmovem.l (a0),fpcr",0 msg_fmovem_anpi_to_C__: .dc.b "fmovem.l (a0)+,fpcr",0 msg_fmovem_anpd_to_C__: .dc.b "fmovem.l -(a0),fpcr",0 msg_fmovem_imm_to_C__: .dc.b "fmovem.l #imm,fpcr",0 msg_fmovem_dn_to_C_I: .dc.b "fmovem.l d0,fpcr/fpiar",0 msg_fmovem_an_to_C_I: .dc.b "fmovem.l a0,fpcr/fpiar",0 msg_fmovem_anin_to_C_I: .dc.b "fmovem.l (a0),fpcr/fpiar",0 msg_fmovem_anpi_to_C_I: .dc.b "fmovem.l (a0)+,fpcr/fpiar",0 msg_fmovem_anpd_to_C_I: .dc.b "fmovem.l -(a0),fpcr/fpiar",0 msg_fmovem_imm_to_C_I: .dc.b "fmovem.l #imm/#imm,fpcr/fpiar",0 msg_fmovem_dn_to_CS_: .dc.b "fmovem.l d0,fpcr/fpsr",0 msg_fmovem_an_to_CS_: .dc.b "fmovem.l a0,fpcr/fpsr",0 msg_fmovem_anin_to_CS_: .dc.b "fmovem.l (a0),fpcr/fpsr",0 msg_fmovem_anpi_to_CS_: .dc.b "fmovem.l (a0)+,fpcr/fpsr",0 msg_fmovem_anpd_to_CS_: .dc.b "fmovem.l -(a0),fpcr/fpsr",0 msg_fmovem_imm_to_CS_: .dc.b "fmovem.l #imm/#imm,fpcr/fpsr",0 msg_fmovem_dn_to_CSI: .dc.b "fmovem.l d0,fpcr/fpsr/fpiar",0 msg_fmovem_an_to_CSI: .dc.b "fmovem.l a0,fpcr/fpsr/fpiar",0 msg_fmovem_anin_to_CSI: .dc.b "fmovem.l (a0),fpcr/fpsr/fpiar",0 msg_fmovem_anpi_to_CSI: .dc.b "fmovem.l (a0)+,fpcr/fpsr/fpiar",0 msg_fmovem_anpd_to_CSI: .dc.b "fmovem.l -(a0),fpcr/fpsr/fpiar",0 msg_fmovem_imm_to_CSI: .dc.b "fmovem.l #imm/#imm/#imm,fpcr/fpsr/fpiar",0 msg_fmovem_____to_dn: .dc.b "fmovem.l nofpc,d0",0 msg_fmovem_____to_an: .dc.b "fmovem.l nofpc,a0",0 msg_fmovem_____to_anin: .dc.b "fmovem.l nofpc,(a0)",0 msg_fmovem_____to_anpi: .dc.b "fmovem.l nofpc,(a0)+",0 msg_fmovem_____to_anpd: .dc.b "fmovem.l nofpc,-(a0)",0 msg_fmovem_____to_imm: .dc.b "fmovem.l nofpc,#imm",0 msg_fmovem___I_to_dn: .dc.b "fmovem.l fpiar,d0",0 msg_fmovem___I_to_an: .dc.b "fmovem.l fpiar,a0",0 msg_fmovem___I_to_anin: .dc.b "fmovem.l fpiar,(a0)",0 msg_fmovem___I_to_anpi: .dc.b "fmovem.l fpiar,(a0)+",0 msg_fmovem___I_to_anpd: .dc.b "fmovem.l fpiar,-(a0)",0 msg_fmovem___I_to_imm: .dc.b "fmovem.l fpiar,#imm",0 msg_fmovem__S__to_dn: .dc.b "fmovem.l fpsr,d0",0 msg_fmovem__S__to_an: .dc.b "fmovem.l fpsr,a0",0 msg_fmovem__S__to_anin: .dc.b "fmovem.l fpsr,(a0)",0 msg_fmovem__S__to_anpi: .dc.b "fmovem.l fpsr,(a0)+",0 msg_fmovem__S__to_anpd: .dc.b "fmovem.l fpsr,-(a0)",0 msg_fmovem__S__to_imm: .dc.b "fmovem.l fpsr,#imm",0 msg_fmovem__SI_to_dn: .dc.b "fmovem.l fpsr/fpiar,d0",0 msg_fmovem__SI_to_an: .dc.b "fmovem.l fpsr/fpiar,a0",0 msg_fmovem__SI_to_anin: .dc.b "fmovem.l fpsr/fpiar,(a0)",0 msg_fmovem__SI_to_anpi: .dc.b "fmovem.l fpsr/fpiar,(a0)+",0 msg_fmovem__SI_to_anpd: .dc.b "fmovem.l fpsr/fpiar,-(a0)",0 msg_fmovem__SI_to_imm: .dc.b "fmovem.l fpsr/fpiar,#imm/#imm",0 msg_fmovem_C___to_dn: .dc.b "fmovem.l fpcr,d0",0 msg_fmovem_C___to_an: .dc.b "fmovem.l fpcr,a0",0 msg_fmovem_C___to_anin: .dc.b "fmovem.l fpcr,(a0)",0 msg_fmovem_C___to_anpi: .dc.b "fmovem.l fpcr,(a0)+",0 msg_fmovem_C___to_anpd: .dc.b "fmovem.l fpcr,-(a0)",0 msg_fmovem_C___to_imm: .dc.b "fmovem.l fpcr,#imm",0 msg_fmovem_C_I_to_dn: .dc.b "fmovem.l fpcr/fpiar,d0",0 msg_fmovem_C_I_to_an: .dc.b "fmovem.l fpcr/fpiar,a0",0 msg_fmovem_C_I_to_anin: .dc.b "fmovem.l fpcr/fpiar,(a0)",0 msg_fmovem_C_I_to_anpi: .dc.b "fmovem.l fpcr/fpiar,(a0)+",0 msg_fmovem_C_I_to_anpd: .dc.b "fmovem.l fpcr/fpiar,-(a0)",0 msg_fmovem_C_I_to_imm: .dc.b "fmovem.l fpcr/fpiar,#imm/#imm",0 msg_fmovem_CS__to_dn: .dc.b "fmovem.l fpcr/fpsr,d0",0 msg_fmovem_CS__to_an: .dc.b "fmovem.l fpcr/fpsr,a0",0 msg_fmovem_CS__to_anin: .dc.b "fmovem.l fpcr/fpsr,(a0)",0 msg_fmovem_CS__to_anpi: .dc.b "fmovem.l fpcr/fpsr,(a0)+",0 msg_fmovem_CS__to_anpd: .dc.b "fmovem.l fpcr/fpsr,-(a0)",0 msg_fmovem_CS__to_imm: .dc.b "fmovem.l fpcr/fpsr,#imm/#imm",0 msg_fmovem_CSI_to_dn: .dc.b "fmovem.l fpcr/fpsr/fpiar,d0",0 msg_fmovem_CSI_to_an: .dc.b "fmovem.l fpcr/fpsr/fpiar,a0",0 msg_fmovem_CSI_to_anin: .dc.b "fmovem.l fpcr/fpsr/fpiar,(a0)",0 msg_fmovem_CSI_to_anpi: .dc.b "fmovem.l fpcr/fpsr/fpiar,(a0)+",0 msg_fmovem_CSI_to_anpd: .dc.b "fmovem.l fpcr/fpsr/fpiar,-(a0)",0 msg_fmovem_CSI_to_imm: .dc.b "fmovem.l fpcr/fpsr/fpiar,#imm/#imm/#imm",0 .data .even workarea: .ds.b 24 buf: .ds.b 20 is_hard: .ds.b 1 .end start
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.