OpenCores
URL https://opencores.org/ocsvn/t48/t48/trunk

Subversion Repositories t48

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /t48/tags/rel_1_1/sw/verif/black_box/da
    from Rev 289 to Rev 292
    Reverse comparison

Rev 289 → Rev 292

/test.asm
0,0 → 1,171
;; *******************************************************************
;; $Id: test.asm,v 1.2 2004-04-07 22:09:35 arniml Exp $
;;
;; Test DA A.
;; *******************************************************************
 
INCLUDE "cpu.inc"
INCLUDE "pass_fail.inc"
 
ORG 0
 
;; Start of test
mov r7, #000H
 
;; testcase from "Single Component MCS-48 System"
mov a, #09BH
da a
jnc fail
mov r0, a
mov a, psw
jb6 fail
mov a, r0
cpl a
add a, #001H
cpl a
jnz fail
 
;; a value that should not be changed
;; upper nibble: no overflow
;; lower nibble: no overflow
mov a, #037H
add a, r7 ; clear C and AC
da a
jc fail
mov r0, a
mov a, psw
jb6 fail
mov a, r0
cpl a
add a, #037H
cpl a
jnz fail
 
;; upper nibble: no overflow
;; lower nibble: overflow
mov a, #04AH
add a, r7 ; clear C and AC
da a
jc fail
mov r0, a
mov a, psw
jb6 fail
mov a, r0
cpl a
add a, #050H
cpl a
jnz fail
 
;; upper nibble: overflow
;; lower nibble: no overflow
mov a, #0C1H
add a, r7 ; clear C and AC
da a
jnc fail
mov r0, a
mov a, psw
jb6 fail
mov a, r0
cpl a
add a, #021H
cpl a
jnz fail
 
;; upper nibble: overflow
;; lower nibble: overflow
mov a, #0DEH
add a, r7 ; clear C and AC
da a
jnc fail
mov r0, a
mov a, psw
jb6 fail
mov a, r0
cpl a
add a, #044H
cpl a
jnz fail
 
 
;; ******************************************************************
;; Next round with Auxiliary Carry
;; ******************************************************************
 
add a, r7 ; clear C and AC
;; upper nibble: no overflow
;; lower nibble: no overflow
mov a, #029H ; add two BCD numbers
add a, #019H ; result: 042H, but should be 48 BCD
jc fail
mov r0, a
mov a, psw
jb6 goon1
jmp fail
goon1: mov a, r0
da a
jc fail
cpl a
add a, #048H
cpl a
jnz fail
 
add a, r7 ; clear C and AC
;; upper nibble: overflow
;; lower nibble: no overflow
mov a, #067H ; add two BCD numbers
add a, #059H ; result: 0C0H, but should be 126 BCD
jc fail
mov r0, a
mov a, psw
jb6 goon2
jmp fail
goon2: mov a, r0
clr c ; clear Carry, make set Carry by da testable
da a
jnc fail
cpl a
add a, #026H
cpl a
jnz fail
 
add a, r7 ; clear C and AC
;; upper nibble: no overflow
;; lower nibble: overflow
mov a, #01FH ; this is not a BCD number!
add a, #033H ; reault: 052H, reveals 58 BCD
jc fail
mov r0, a
mov a, psw
jb6 goon3
jmp fail
goon3: mov a, r0
da a
jc fail
cpl a
add a, #058H
cpl a
jnz fail
 
add a, r7 ; clear C and AC
;; upper nibble: overflow
;; lower nibble: overflow
mov a, #0EEH ; this is not a BCD number!
add a, #0C5H ; result: 1B3H. reveals 119 BCD
jnc fail
mov r0, a
mov a, psw
jb6 goon4
jmp fail
goon4: mov a, r0
clr c ; clear Carry, make set Carry by da testable
da a
jnc fail
cpl a
add a, #019H
cpl a
jnz fail
 
 
pass: PASS
 
fail: FAIL

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.