; various arithmetic tests
incdir  "tests"
include "dsp_base.inc"

test_main:

clr $acc0
tst $acc0

call send_back 	; 1


lri $ac0.h, #0x0011
lri $ac0.m, #0x0100
lri $ac0.l, #0x0101
lsl $acc0, #1

call send_back 	; 2

lri $ac0.h, #0x0011
lri $ac0.m, #0x0100
lri $ac0.l, #0x0001
asl $acc0, #1

call send_back 	; 3

clr $acc0
lri $ac0.h, #0x0011
tst $acc0

call send_back 	; 4

lri $ac0.m, #0x0100
tst $acc0

call send_back 	; 5

lri $ac0.l, #0x0001
tst $acc0

call send_back 	; 6
clr $acc0

lri $ac0.l, #-1
tst $acc0

call send_back 	; 7

clr $acc0

set40
lri $ac0.l, #-1
tst $acc0
set16

call send_back 	; 8

clr $acc0
lri $ac0.h, #0x1000
tst $acc0

call send_back 	; 9

clr $acc0
lri $ac0.h, #0x0100
tst $acc0

call send_back 	; 10


clr $acc0
lri $ac0.h, #0x0010
tst $acc0

call send_back 	; 11

clr $acc0
lri $ac0.h, #0x0001
tst $acc0

call send_back 	; 12

clr $acc0
lri $ac0.l, #0x1000
tst $acc0

call send_back 	; 13

clr $acc0
lri $ac0.l, #0x0100
tst $acc0

call send_back 	; 14


clr $acc0
lri $ac0.l, #0x0010
tst $acc0

call send_back 	; 15

clr $acc0
lri $ac0.l, #0x0001
tst $acc0

call send_back 	; 16

clr $acc0
clr $acc1
lri $ac0.l, #0x0001
sub $acc1, $acc0

call send_back 	; 17

clr $acc0
clr $acc1
set40
lri $ac0.l, #0x0001
sub $acc1, $acc0
set16

call send_back 	; 18

clr $acc0
clr $acc1
lri $ac0.l, #0x0001
lri $ac1.h, #0x8000
sub $acc1, $acc0

call send_back 	; 19

clr $acc0
clr $acc1
set40
lri $ac0.l, #0x0001
lri $ac1.h, #0x8000
sub $acc1, $acc0
set16

call send_back 	; 20

; We're done, DO NOT DELETE THIS LINE
jmp end_of_test
