head     1.1;
branch   1.1.1;
access   ;
symbols  start:1.1.1.1 thorn_aitch:1.1.1;
locks    ; strict;
comment  @# @;


1.1
date     2003.07.12.13.23.10;  author thorn_aitch;  state Exp;
branches 1.1.1.1;
next     ;

1.1.1.1
date     2003.07.12.13.23.10;  author thorn_aitch;  state Exp;
branches ;
next     ;


desc
@@



1.1
log
@Initial revision
@
text
@/*
===================
test source program
testmulconf.src

Feb.03 2003
===================

address           size wait width device
00000000-00001FFF  8K  0    32    ROM
00010000-00011FFF  8K  3    32    ROM
00020000-00021FFF  8K  0    16    ROM
00030000-00031FFF  8K  3    16    ROM
ABCD0000-ABCD0003   4  3    32    PIO
ABCD0100-ABCD0103   4  3    32    UART
ABCD0200-ABCD0207   8  3    32    SYS
FFFCE000-FFFCFFFF  8K  0    32    RAM
FFFDE000-FFFDFFFF  8K  3    32    RAM
FFFEE000-FFFEFFFF  8K  0    16    RAM
FFFFE000-FFFFFFFF  8K  3    16    RAM
*/

.equ _rom0, 0x00000000
.equ _rom1, 0x00010000
.equ _rom2, 0x00020000
.equ _rom3, 0x00030000
.equ _pio,  0xabcd0000
.equ _uart, 0xabcd0100
.equ _sys,  0xabcd0200
.equ _ram0, 0xfffce000
.equ _ram1, 0xfffde000
.equ _ram2, 0xfffee000
.equ _ram3, 0xffffe000

.org _rom0
.long _rom0 + _init - _rom0
.long _ram0 + 0x02000

.org 0x0400
 
/**************
 Initialization
 **************/
_init:
_start:
 mov    #0, r14
_test:
 mov.l  _pfail, r13 !fail address
 bra    _testgo
 nop
_pfail: .long _fail
_testgo:

/**********************************
 Conflict Combinations
 ----------------------------------
     before : LDS.L(H) 1  done
              LDS.L(L) 2  done
              STS.L(H) 3  done
              STS.L(L) 4  done
              MAC.W    5
              MAC.L    6
              DMULS.L  7
              DMULU.L  8
              MUL.L    9
              MULS.W   A
              MULU.W   B
 ---------------before=123456789AB
     after  : STS      vvvvv
              STS.L    vvvvv
              CLRMAC   vvvv
              LDS      vvvv
              LDS.L    vvvv
              MAC.W    vvvv
              MAC.L    vvvv
              DMULS.L  vvvv
              DMULU.L  vvvv
              MUL.L    vvvv
              MULS.W   vvvv
              MULU.W   vvvv
 **********************************/

!---------------------
!===[5]===============
!---------------------
 mov.l  _pram20, r4
 mov.l  _pram21, r5
 mov    #3, r0
 mov.w  r0, @@r4
 add    #2, r4
 mov    #6, r0
 mov.w  r0, @@r4
 add    #-2, r4
 clrmac
 mov    #0xff, r0
 lds    r0, mach   ! MAC=FFFFFFFF 00000000
 mac.w  @@r4+, @@r4+ ! <--------
 sts.l  mach, @@-r5 ! <--------
 mov.l  @@r5, r0
 cmp/eq #0xff,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #18, r0
 bt     .+6
 jmp    @@r13
 nop
!----
 mov.l  _pram20, r4
 mov.l  _pram21, r5
 mov    #4, r0
 mov.w  r0, @@r4
 add    #2, r4
 mov    #8, r0
 mov.w  r0, @@r4
 add    #-2, r4
 clrmac
 mov    #0xff, r0
 lds    r0, mach   ! MAC=FFFFFFFF 00000000
 mac.w  @@r4+, @@r4+ ! <--------
 sts.l  macl, @@-r5 ! <--------
 mov.l  @@r5, r0
 cmp/eq #32,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    mach, r0
 cmp/eq #0xff, r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov.l  _pram20, r4
 mov    #4, r0
 mov.w  r0, @@r4
 add    #2, r4
 mov    #6, r0
 mov.w  r0, @@r4
 add    #-2, r4
 clrmac
 mac.w  @@r4+, @@r4+ ! <--------
 sts    mach, r0   ! <--------
 cmp/eq #0,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #24, r0
 bt     .+6
 jmp    @@r13
 nop
!----
 mov.l  _pram20, r4
 mov    #7, r0
 mov.w  r0, @@r4
 add    #2, r4
 mov    #8, r0
 mov.w  r0, @@r4
 add    #-2, r4
 clrmac
 mac.w  @@r4+, @@r4+ ! <--------
 sts    macl, r0   ! <--------
 cmp/eq #56,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    mach, r0
 cmp/eq #0, r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 bra    skip3
 nop
 .align 4
_pram20:   .long _ram0
_pram21:   .long _ram0+0x10
skip3:
!---------------------
!===[4]===============
!---------------------
 mov    #0x55,  r0
 mov.l  _pram10, r4
 add    #4,  r4
 mov    #8,  r1
 mov    #9,  r2
 lds    r0,   mach
 lds    r0,   macl
 sts.l  macl, @@-r4 ! <-------- 
 mulu.w r2, r1     ! <--------
 sts    mach, r0
 cmp/eq #0x55,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #72,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xaa,  r0
 mov.l  _pram10, r4
 add    #4,  r4
 mov    #7,  r1
 mov    #-8,  r2
 lds    r0,   mach
 lds    r0,   macl
 sts.l  macl, @@-r4 ! <-------- 
 muls.w r2, r1     ! <--------
 sts    mach, r0
 cmp/eq #0xaa,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #-56,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0x55,  r0
 mov.l  _pram10, r4
 add    #4,  r4
 mov    #6,  r1
 mov    #7,  r2
 lds    r0,   mach
 lds    r0,   macl
 sts.l  macl, @@-r4 ! <-------- 
 mul.l  r2, r1     ! <--------
 sts    mach, r0
 cmp/eq #0x55,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #42,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xaa,  r0
 mov.l  _pram10, r4
 mov    #5,  r1
 mov    #6,  r2
 lds    r0,   mach
 lds    r0,   macl
 sts.l  macl, @@-r4 ! <-------- 
 dmulu.l r2, r1    ! <--------
 sts    mach, r0
 cmp/eq #0x00,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #30,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xaa,  r0
 mov.l  _pram10, r4
 mov    #5,  r1
 mov    #-6,  r2
 lds    r0,   mach
 lds    r0,   macl
 sts.l  macl, @@-r4 ! <-------- 
 dmuls.l r2, r1    ! <--------
 sts    mach, r0
 cmp/eq #0xff,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #-30,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xff,  r1
 mov.l  _pram10, r4
 add    #4, r4
 mov.l  r1, @@r4
 lds    r1, mach
 mov    #0, r0     ! S=0
 ldc    r0, sr
 lds    r1, macl   ! MAC=ffffffff ffffffff
 sts.l  macl, @@-r4 ! <--------
 mac.l  @@r4+, @@r4+ ! <--------
 sts    mach, r0   ! MAC=00000000 00000000
 cmp/eq #0x00,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #0x00,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xff,  r1
 mov.l  _pram10, r4
 add    #4,  r4
 lds    r1, mach
 mov    #0, r0     ! S=0
 ldc    r0, sr
 lds    r1, macl   ! MAC=ffffffff ffffffff
 sts.l  macl, @@-r4 ! <--------
 mac.w  @@r4+, @@r4+ ! <--------
 sts    mach, r0   ! MAC=00000000 00000000
 cmp/eq #0x00,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #0x00,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xaa,   r0
 mov.l  _pram10, r4
 add    #4,   r4
 lds    r0,   macl
 mov    r4,   r5
 mov    #0x55, r1
 mov.l  r1,   @@r5
 sts.l  macl, @@-r4 ! <--------
 lds.l  @@r5+, macl ! <--------
 sts    macl,  r0
 cmp/eq #0x55, r0
 bt     .+6
 jmp    @@r13
 nop
 mov.l  @@r4+,  r0
 cmp/eq #0xaa, r0
 bt     .+6
 jmp    @@r13
 nop
 mov.l  @@r4+,  r0
 cmp/eq #0x55, r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xaa,   r0
 mov    #0x55,   r1
 mov.l  _pram10, r4
 add    #4,   r4
 lds    r0,   macl
 sts.l  macl, @@-r4 ! <--------
 lds    r1,   macl ! <--------
 sts    macl, r0
 cmp/eq #0x55, r0
 bt     .+6
 jmp    @@r13
 nop
 mov.l  @@r4+,  r0
 cmp/eq #0xaa, r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0x55,   r0
 mov.l  _pram10, r4
 add    #4,   r4
 lds    r0,   macl
 sts.l  macl, @@-r4 ! <--------
 clrmac            ! <--------
 sts    macl,  r0
 cmp/eq #0x00, r0
 bt     .+6
 jmp    @@r13
 nop
 mov.l  @@r4+,  r0
 cmp/eq #0x55, r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xaa,   r0
 mov.l  _pram10, r4
 add    #8,   r4
 lds    r0,   macl
 sts.l  macl, @@-r4 ! <--------
 sts.l  macl, @@-r4 ! <--------
 sts    macl, r1
 cmp/eq r1, r0
 bt     .+6
 jmp    @@r13
 nop
 mov.l  @@r4+, r2
 cmp/eq r2, r0
 bt     .+6
 jmp    @@r13
 nop
 mov.l  @@r4+, r3
 cmp/eq r3, r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xaa,   r0
 mov.l  _pram10, r4
 add    #4,   r4
 lds    r0,   macl
 sts.l  macl, @@-r4 ! <--------
 sts    macl, r1   ! <--------
 cmp/eq r1, r0
 bt     .+6
 jmp    @@r13
 nop
 mov.l  @@r4,  r2
 cmp/eq r2, r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
!===[3]===============
!---------------------
 mov    #0x55,  r0
 mov.l  _pram10, r4
 add    #4,  r4
 mov    #8,  r1
 mov    #9,  r2
 lds    r0,   mach
 sts.l  mach, @@-r4 ! <-------- 
 mulu.w r2, r1     ! <--------
 sts    mach, r0
 cmp/eq #0x55,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #72,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xaa,  r0
 mov.l  _pram10, r4
 add    #4,  r4
 mov    #7,  r1
 mov    #-8,  r2
 lds    r0,   mach
 sts.l  mach, @@-r4 ! <-------- 
 muls.w r2, r1     ! <--------
 sts    mach, r0
 cmp/eq #0xaa,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #-56,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0x55,  r0
 mov.l  _pram10, r4
 add    #4,  r4
 mov    #6,  r1
 mov    #7,  r2
 lds    r0,   mach
 sts.l  mach, @@-r4 ! <-------- 
 mul.l  r2, r1     ! <--------
 sts    mach, r0
 cmp/eq #0x55,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #42,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xaa,  r0
 mov.l  _pram10, r4
 mov    #5,  r1
 mov    #6,  r2
 lds    r0,   mach
 sts.l  mach, @@-r4 ! <-------- 
 dmulu.l r2, r1    ! <--------
 sts    mach, r0
 cmp/eq #0x00,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #30,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xaa,  r0
 mov.l  _pram10, r4
 mov    #5,  r1
 mov    #-6,  r2
 lds    r0,   mach
 sts.l  mach, @@-r4 ! <-------- 
 dmuls.l r2, r1    ! <--------
 sts    mach, r0
 cmp/eq #0xff,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #-30,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xff,  r1
 mov.l  _pram10, r4
 add    #4, r4
 mov.l  r1, @@r4
 lds    r1, mach
 mov    #0, r0     ! S=0
 ldc    r0, sr
 lds    r0, macl   ! MAC=ffffffff 00000000
 sts.l  mach, @@-r4 ! <--------
 mac.l  @@r4+, @@r4+ ! <--------
 sts    mach, r0   ! MAC=ffffffff 00000001
 cmp/eq #0xff,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #0x01,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xff,  r1
 mov.l  _pram10, r4
 add    #4,  r4
 lds    r1, mach
 mov    #0, r0     ! S=0
 ldc    r0, sr
 lds    r0, macl   ! MAC=ffffffff 00000000
 sts.l  mach, @@-r4 ! <--------
 mac.w  @@r4+, @@r4+ ! <--------
 sts    mach, r0   ! MAC=ffffffff 00000001
 cmp/eq #0xff,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #0x01,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xaa,   r0
 mov.l  _pram10, r4
 add    #4,   r4
 lds    r0,   mach
 mov    r4,   r5
 mov    #0x55, r1
 mov.l  r1,   @@r5
 sts.l  mach, @@-r4 ! <--------
 lds.l  @@r5+, mach ! <--------
 sts    mach,  r0
 cmp/eq #0x55, r0
 bt     .+6
 jmp    @@r13
 nop
 mov.l  @@r4+,  r0
 cmp/eq #0xaa, r0
 bt     .+6
 jmp    @@r13
 nop
 mov.l  @@r4+,  r0
 cmp/eq #0x55, r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xaa,   r0
 mov    #0x55,   r1
 mov.l  _pram10, r4
 add    #4,   r4
 lds    r0,   mach
 sts.l  mach, @@-r4 ! <--------
 lds    r1,   mach ! <--------
 sts    mach, r0
 cmp/eq #0x55, r0
 bt     .+6
 jmp    @@r13
 nop
 mov.l  @@r4+,  r0
 cmp/eq #0xaa, r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0x55,   r0
 mov.l  _pram10, r4
 add    #4,   r4
 lds    r0,   mach
 sts.l  mach, @@-r4 ! <--------
 clrmac            ! <--------
 sts    mach,  r0
 cmp/eq #0x00, r0
 bt     .+6
 jmp    @@r13
 nop
 mov.l  @@r4+,  r0
 cmp/eq #0x55, r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xaa,   r0
 mov.l  _pram10, r4
 add    #8,   r4
 lds    r0,   mach
 sts.l  mach, @@-r4 ! <--------
 sts.l  mach, @@-r4 ! <--------
 sts    mach, r1
 cmp/eq r1, r0
 bt     .+6
 jmp    @@r13
 nop
 mov.l  @@r4+, r2
 cmp/eq r2, r0
 bt     .+6
 jmp    @@r13
 nop
 mov.l  @@r4+, r3
 cmp/eq r3, r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xaa,   r0
 mov.l  _pram10, r4
 add    #4,   r4
 lds    r0,   mach
 sts.l  mach, @@-r4 ! <--------
 sts    mach, r1   ! <--------
 cmp/eq r1, r0
 bt     .+6
 jmp    @@r13
 nop
 mov.l  @@r4,  r2
 cmp/eq r2, r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
!---------------------
 bra    skip2
 nop
 .align 4
_pram10:   .long _ram0
_pram11:   .long _ram0+0x10
skip2:
!---------------------
!===[2]===============
!---------------------
 mov    #0x55,  r0
 mov.l  _pram00, r4
 mov.l  r0,  @@r4
 mov    #8,  r1
 mov    #9,  r2
 lds    r0,   mach
 lds.l  @@r4+, macl ! <-------- 
 mulu.w r2, r1     ! <--------
 sts    mach, r0
 cmp/eq #0x55,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #72,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xaa,  r0
 mov.l  _pram00, r4
 mov.l  r0,  @@r4
 mov    #7,  r1
 mov    #-8,  r2
 lds    r0,   mach
 lds.l  @@r4+, macl ! <-------- 
 muls.w r2, r1     ! <--------
 sts    mach, r0
 cmp/eq #0xaa,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #-56,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0x55,  r0
 mov.l  _pram00, r4
 mov.l  r0,  @@r4
 mov    #6,  r1
 mov    #7,  r2
 lds    r0,   mach
 lds.l  @@r4+, macl ! <-------- 
 mul.l  r2, r1     ! <--------
 sts    mach, r0
 cmp/eq #0x55,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #42,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xaa,  r0
 mov.l  _pram00, r4
 mov.l  r0,  @@r4
 mov    #5,  r1
 mov    #6,  r2
 lds    r0,   mach
 lds.l  @@r4+, macl ! <-------- 
 dmulu.l r2, r1    ! <--------
 sts    mach, r0
 cmp/eq #0,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #30,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xaa,  r0
 mov.l  _pram00, r4
 mov.l  r0,  @@r4
 mov    #5,  r1
 mov    #-6,  r2
 lds    r0,   mach
 lds.l  @@r4+, macl ! <-------- 
 dmuls.l r2, r1    ! <--------
 sts    mach, r0
 cmp/eq #0xff,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #-30,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0,  r0
 mov    #4,  r1
 mov    #5,  r2
 mov.l  _pram00, r4
 mov.l  r0,  @@r4
 add    #4,  r4
 mov.l  r1,  @@r4
 add    #4,  r4
 mov.l  r2,  @@r4
 mov.l  _pram00, r4
 lds    r0, mach   ! R0=0
 ldc    r0, sr     ! S=0
 lds.l  @@r4+, macl ! <--------
 mac.l  @@r4+, @@r4+ ! <--------
 sts    mach, r0
 cmp/eq #0,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #20,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0,  r0
 mov    #4,  r1
 mov    #5,  r2
 mov.l  _pram00, r4
 mov.l  r0,  @@r4
 add    #4,  r4
 mov.w  r1,  @@r4
 add    #2,  r4
 mov.w  r2,  @@r4
 mov.l  _pram00, r4
 lds    r0, mach   ! R0=0
 ldc    r0, sr     ! S=0
 lds.l  @@r4+, macl ! <--------
 mac.w  @@r4+, @@r4+ ! <--------
 sts    mach, r0
 cmp/eq #0,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #20,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov.l  _pram00, r4
 mov    #0xaa,   r0
 mov.l  r0,  @@r4
 mov    r4,  r5
 add    #4,  r5
 mov    #0x55,   r0
 mov.l  r0,  @@r5
 lds.l  @@r4+, macl ! <--------
 lds.l  @@r5+, macl ! <--------
 sts    macl,  r0
 cmp/eq #0x55, r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov.l  _pram00, r4
 mov    #0x55,   r0
 mov.l  r0,  @@r4
 mov    #0xaa,   r1
 lds.l  @@r4+, macl ! <--------
 lds    r1,   macl ! <--------
 sts    macl, r2
 cmp/eq r2, r1
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov.l  _pram00, r4
 mov    #0x55,   r0
 mov.l  r0,  @@r4
 mov    #0x00,   r1
 lds.l  @@r4+, macl
 clrmac          ! <--------  
 sts    macl, r2 ! <--------
 cmp/eq r2, r1
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov.l  _pram00, r4
 mov    #0x55, r0
 mov.l  r0,  @@r4
 mov.l  _pram01, r5
 lds.l  @@r4+, macl ! <--------
 sts.l  macl, @@-r5 ! <--------
 mov.l  @@r5+, r0
 cmp/eq #0x55, r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov.l  _pram00, r4
 mov    #0xaa, r0
 mov.l  r0,  @@r4
 lds.l  @@r4+, macl ! <--------
 sts    macl, r0   ! <--------
 cmp/eq #0xaa, r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
!===[1]===============
!---------------------
 mov    #0x55,  r0
 mov.l  _pram00, r4
 mov.l  r0,  @@r4
 mov    #8,  r1
 mov    #9,  r2
 lds.l  @@r4+, mach ! <-------- 
 mulu.w r2, r1     ! <--------
 sts    mach, r0
 cmp/eq #0x55,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #72,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xaa,  r0
 mov.l  _pram00, r4
 mov.l  r0,  @@r4
 mov    #7,  r1
 mov    #-8,  r2
 lds.l  @@r4+, mach ! <-------- 
 muls.w r2, r1     ! <--------
 sts    mach, r0
 cmp/eq #0xaa,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #-56,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0x55,  r0
 mov.l  _pram00, r4
 mov.l  r0,  @@r4
 mov    #6,  r1
 mov    #7,  r2
 lds.l  @@r4+, mach ! <-------- 
 mul.l  r2, r1     ! <--------
 sts    mach, r0
 cmp/eq #0x55,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #42,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xaa,  r0
 mov.l  _pram00, r4
 mov.l  r0,  @@r4
 mov    #5,  r1
 mov    #6,  r2
 lds.l  @@r4+, mach ! <-------- 
 dmulu.l r2, r1    ! <--------
 sts    mach, r0
 cmp/eq #0,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #30,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0xaa,  r0
 mov.l  _pram00, r4
 mov.l  r0,  @@r4
 mov    #5,  r1
 mov    #-6,  r2
 lds.l  @@r4+, mach ! <-------- 
 dmuls.l r2, r1    ! <--------
 sts    mach, r0
 cmp/eq #0xff,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #-30,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0,  r0
 mov    #4,  r1
 mov    #5,  r2
 mov.l  _pram00, r4
 mov.l  r0,  @@r4
 add    #4,  r4
 mov.l  r1,  @@r4
 add    #4,  r4
 mov.l  r2,  @@r4
 mov.l  _pram00, r4
 lds    r0, macl   ! R0=0
 ldc    r0, sr     ! S=0
 lds.l  @@r4+, mach ! <--------
 mac.l  @@r4+, @@r4+ ! <--------
 sts    mach, r0
 cmp/eq #0,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #20,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov    #0,  r0
 mov    #4,  r1
 mov    #5,  r2
 mov.l  _pram00, r4
 mov.l  r0,  @@r4
 add    #4,  r4
 mov.w  r1,  @@r4
 add    #2,  r4
 mov.w  r2,  @@r4
 mov.l  _pram00, r4
 lds    r0, macl   ! R0=0
 ldc    r0, sr     ! S=0
 lds.l  @@r4+, mach ! <--------
 mac.w  @@r4+, @@r4+ ! <--------
 sts    mach, r0
 cmp/eq #0,  r0
 bt     .+6
 jmp    @@r13
 nop
 sts    macl, r0
 cmp/eq #20,  r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov.l  _pram00, r4
 mov    #0xaa,   r0
 mov.l  r0,  @@r4
 mov    r4,  r5
 add    #4,  r5
 mov    #0x55,   r0
 mov.l  r0,  @@r5
 lds.l  @@r4+, mach ! <--------
 lds.l  @@r5+, mach ! <--------
 sts    mach,  r0
 cmp/eq #0x55, r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov.l  _pram00, r4
 mov    #0x55,   r0
 mov.l  r0,  @@r4
 mov    #0xaa,   r1
 lds.l  @@r4+, mach ! <--------
 lds    r1,   mach ! <--------
 sts    mach, r2
 cmp/eq r2, r1
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov.l  _pram00, r4
 mov    #0x55,   r0
 mov.l  r0,  @@r4
 mov    #0x00,   r1
 lds.l  @@r4+, mach
 clrmac          ! <--------  
 sts    mach, r2 ! <--------
 cmp/eq r2, r1
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov.l  _pram00, r4
 mov    #0x55, r0
 mov.l  r0,  @@r4
 mov.l  _pram01, r5
 lds.l  @@r4+, mach ! <--------
 sts.l  mach, @@-r5 ! <--------
 mov.l  @@r5+, r0
 cmp/eq #0x55, r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
 mov.l  _pram00, r4
 mov    #0xaa, r0
 mov.l  r0,  @@r4
 lds.l  @@r4+, mach ! <--------
 sts    mach, r0   ! <--------
 cmp/eq #0xaa, r0
 bt     .+6
 jmp    @@r13
 nop
!---------------------
!-----------------------------
 bra    _testfinish
 nop
!-----------------------------
 .align 4
_pram00:   .long _ram0
_pram01:   .long _ram0+0x10
!-----------------------------
_testfinish:
/*********************************************************
 Move to another Next ROM area to check hardware operation
 *********************************************************/
 mov.l _pbranch_table, r13
 add r14, r13
 mov.l @@r13, r12
 jmp @@r12
 add #4, r14
.align 4
_pbranch_table: .long _branch_table
_branch_table:
 .long _rom1+_test
 .long _rom2+_test
 .long _rom3+_test
 .long _rom0+_pass

/**************
 Congraturation
 **************/
_pass:
 mov.l _ppass_value, r0
 mov.l _ppass_value, r1
 mov.l r0, @@r1
 bra   _pass
 nop
.align 4
_ppass_value: .long 0x12345678

/**********
 You Failed
 **********/
_fail:
 mov.l _pfail_value, r0
 mov.l _pfail_value, r1
 bra   _fail
 nop
.align 4
_pfail_value: .long 0x88888888

.end
@


1.1.1.1
log
@First Release
@
text
@@
