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
- from Rev 289 to Rev 292
- ↔ Reverse comparison
Rev 289 → Rev 292
/orld/test.asm
0,0 → 1,109
;; ******************************************************************* |
;; $Id: test.asm,v 1.1 2006-07-11 23:42:19 arniml Exp $ |
;; |
;; Test ORLD. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
|
;; port 4 |
mov a, #000h |
movd p4, a |
mov a, #001h |
orld p4, a |
cpl a |
movd a, p6 |
xrl a, #001h |
jnz fail |
movd a, p4 |
xrl a, #001h |
jnz fail |
|
mov a, #00eh |
orld p4, a |
movd a, p6 |
xrl a, #00fh |
jnz fail |
movd a, p4 |
xrl a, #00fh |
jnz fail |
|
;; port 5 |
mov a, #000h |
movd p5, a |
mov a, #006h |
orld p5, a |
cpl a |
movd a, p7 |
xrl a, #006h |
jnz fail |
movd a, p5 |
xrl a, #006h |
jnz fail |
|
mov a, #003h |
orld p5, a |
movd a, p7 |
xrl a, #007h |
jnz fail |
movd a, p5 |
xrl a, #007h |
jnz fail |
|
;; port 6 |
mov a, #000h |
movd p6, a |
mov a, #009h |
orld p6, a |
cpl a |
movd a, p4 |
xrl a, #009h |
jnz fail |
movd a, p6 |
xrl a, #009h |
jnz fail |
|
mov a, #006h |
orld p6, a |
movd a, p4 |
xrl a, #00fh |
jnz fail |
movd a, p6 |
xrl a, #00fh |
jnz fail |
jmp pass |
|
;; port 7 |
mov a, #000h |
movd p7, a |
mov a, #004h |
orld p7, a |
cpl a |
movd a, p5 |
xrl a, #004h |
jnz fail |
movd a, p7 |
xrl a, #004h |
jnz fail |
|
mov a, #00ah |
orld p7, a |
movd a, p5 |
xrl a, #00eh |
jnz fail |
movd a, p7 |
xrl a, #00eh |
jnz fail |
|
|
jmp pass |
|
jmp fail |
pass: PASS |
|
fail: FAIL |
/movd/test.asm
0,0 → 1,117
;; ******************************************************************* |
;; $Id: test.asm,v 1.1 2006-07-11 23:13:32 arniml Exp $ |
;; |
;; Test MOVD. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
|
;; |
;; read initial values |
;; |
|
;; port 4 |
cpl a |
movd a, p4 |
xrl a, #00fh |
jnz fail |
|
;; port 5 |
cpl a |
movd a, p5 |
xrl a, #00fh |
jnz fail |
|
;; port 6 |
cpl a |
movd a, p6 |
xrl a, #00fh |
jnz fail |
|
;; port 7 |
cpl a |
movd a, p7 |
xrl a, #00fh |
jnz fail |
|
|
;; |
;; test read/write via direct connection |
;; |
|
;; port 4 => port 6 |
mov a, #005h |
movd p4, a |
cpl a |
movd a, p6 |
xrl a, #005h |
jnz fail |
|
mov a, #00ah |
movd p4, a |
cpl a |
movd a, p6 |
xrl a, #00ah |
jnz fail |
movd a, p4 |
|
;; port 6 => port 4 |
mov a, #000h |
movd p6, a |
cpl a |
movd a, p4 |
xrl a, #000h |
jnz fail |
|
mov a, #00fh |
movd p6, a |
cpl a |
movd a, p4 |
xrl a, #00fh |
jnz fail |
movd p6, a |
|
;; port 5 => port 7 |
mov a, #005h |
movd p5, a |
cpl a |
movd a, p7 |
xrl a, #005h |
jnz fail |
|
mov a, #00ah |
movd p5, a |
cpl a |
movd a, p7 |
xrl a, #00ah |
jnz fail |
movd a, p7 |
|
;; port 7 => port 5 |
mov a, #000h |
movd p7, a |
cpl a |
movd a, p5 |
xrl a, #000h |
jnz fail |
|
mov a, #00fh |
movd p7, a |
cpl a |
movd a, p5 |
xrl a, #00fh |
jnz fail |
movd p7, a |
|
|
jmp pass |
|
jmp fail |
pass: PASS |
|
fail: FAIL |
/anld/test.asm
0,0 → 1,106
;; ******************************************************************* |
;; $Id: test.asm,v 1.1 2006-07-11 23:37:31 arniml Exp $ |
;; |
;; Test ANLD. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
|
;; port 4 |
mov a, #00fh |
movd p4, a |
mov a, #00ch |
anld p4, a |
cpl a |
movd a, p6 |
xrl a, #00ch |
jnz fail |
movd a, p4 |
xrl a, #00ch |
jnz fail |
|
mov a, #003h |
anld p4, a |
movd a, p6 |
jnz fail |
movd a, p4 |
jnz fail |
|
;; port 5 |
mov a, #00fh |
movd p5, a |
mov a, #003h |
anld p5, a |
cpl a |
movd a, p7 |
xrl a, #003h |
jnz fail |
movd a, p5 |
xrl a, #003h |
jnz fail |
|
mov a, #009h |
anld p5, a |
movd a, p7 |
xrl a, #001h |
jnz fail |
movd a, p5 |
xrl a, #001h |
jnz fail |
|
;; port 6 |
mov a, #00fh |
movd p6, a |
mov a, #005h |
anld p6, a |
cpl a |
movd a, p4 |
xrl a, #005h |
jnz fail |
movd a, p6 |
xrl a, #005h |
jnz fail |
|
mov a, #00eh |
anld p6, a |
movd a, p4 |
xrl a, #004h |
jnz fail |
movd a, p6 |
xrl a, #004h |
jnz fail |
|
;; port 7 |
mov a, #00fh |
movd p7, a |
mov a, #00ah |
anld p7, a |
cpl a |
movd a, p5 |
xrl a, #00ah |
jnz fail |
movd a, p7 |
xrl a, #00ah |
jnz fail |
|
mov a, #00dh |
anld p7, a |
movd a, p5 |
xrl a, #008h |
jnz fail |
movd a, p7 |
xrl a, #008h |
jnz fail |
|
|
jmp pass |
|
jmp fail |
pass: PASS |
|
fail: FAIL |
/rb/misc/test.asm
0,0 → 1,142
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:18 arniml Exp $ |
;; |
;; Test several operations in conjunction with RB-switching. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
|
;; fill data memory with 0 |
clr a |
mov r0, a |
fill_loop: |
mov @r0, a |
djnz r0, fill_loop |
|
;; set up both register banks with indirect writes |
mov r0, #01FH |
mov r1, #008H |
fill_rb1_loop: |
mov a, r0 |
mov @r0, a |
dec r0 |
djnz r1, fill_rb1_loop |
|
mov r0, #007H |
fill_rb0_loop: |
mov a, r0 |
mov @r0, a |
djnz r0, fill_rb0_loop |
mov a, r0 |
mov @r0, a |
|
;; check RB0 |
call check_rb0 |
|
;; check RB1 |
sel rb1 |
call check_rb1 |
|
;; check RB0 again |
sel rb0 |
call check_rb0 |
|
;; check memory between RB0 and RB1 for 0 |
mov r0, #00EH ; check 14 bytes |
mov r1, #00AH ; starting from address A |
chk_loop1: |
mov a, @r1 |
jnz fail |
inc r1 |
djnz r0, chk_loop1 |
|
;; check memory above RB1 for 0 |
mov r0, #0100H - 0020H ; check 256-32 bytes |
mov r1, #020H ; starting from address 20H |
chk_loop2: |
mov a, @r1 |
jnz fail |
inc r1 |
djnz r0, chk_loop2 |
|
;; now use RB1 to indirect address register 0-7 |
mov r1, #001H ; restore r1 |
mov r0, #000H ; restore r0, set trap |
sel rb1 |
mov r0, #007H |
ind_chk_loop: |
mov a, @r0 |
cpl a |
add a, r0 |
cpl a |
jnz fail |
djnz r0, ind_chk_loop |
|
|
pass: PASS |
|
fail: FAIL |
|
|
|
ORG 0300H |
check_rb0: |
mov a, r0 |
jnz fail_p3 |
mov a,r1 |
add a, #0FFH |
jnz fail_p3 |
mov a,r2 |
add a, #0FEH |
jnz fail_p3 |
mov a,r3 |
add a, #0FDH |
jnz fail_p3 |
mov a,r4 |
add a, #0FCH |
jnz fail_p3 |
mov a,r5 |
add a, #0FBH |
jnz fail_p3 |
mov a,r6 |
add a, #0FAH |
jnz fail_p3 |
mov a,r7 |
add a, #0F9H |
jnz fail_p3 |
ret |
|
check_rb1: |
mov a, r0 |
add a, #0E8H |
jnz fail_p3 |
mov a,r1 |
add a, #0E7H |
jnz fail_p3 |
mov a,r2 |
add a, #0E6H |
jnz fail_p3 |
mov a,r3 |
add a, #0E5H |
jnz fail_p3 |
mov a,r4 |
add a, #0E4H |
jnz fail_p3 |
mov a,r5 |
add a, #0E3H |
jnz fail_p3 |
mov a,r6 |
add a, #0E2H |
jnz fail_p3 |
mov a,r7 |
add a, #0E1H |
jnz fail_p3 |
ret |
|
fail_p3: |
FAIL |
/rb/int/no_dump_compare
0,0 → 1,2
Reason why this cell is exluded from dump compare: |
Modelling accuracy of interrupts is not sufficient for 1:1 dump compare. |
/rb/int/test.asm
0,0 → 1,228
;; ******************************************************************* |
;; $Id: test.asm,v 1.2 2004-04-15 22:01:51 arniml Exp $ |
;; |
;; Test interrupts in conjunction with RB-switching. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
jmp start |
nop |
jmp interrupt |
jmp fail |
jmp fail |
jmp fail |
|
|
;; Start of test |
start: |
;; fill RB0 |
clr a |
call fill |
|
;; fill RB1 |
sel rb1 |
mov a, #010H |
call fill |
sel rb0 |
|
;; set up interrupt |
clr f1 |
;; sync on next interrupt |
call sync_on_int |
|
mov r0, #000H |
en i |
loop1: jf1 goon1 |
djnz r0, loop1 |
jmp fail |
|
goon1: |
dis i |
clr f1 |
|
;; check BS implicitely |
;; r0 must not be zero |
mov a, r0 |
jz fail |
|
;; check RB1 |
sel rb1 |
call check_0 |
|
;; check RB0 |
sel rb0 |
call check_rb0 |
|
pass: PASS |
|
fail: FAIL |
|
|
ORG 0200H |
interrupt: |
sel rb1 |
mov r0, a |
|
call check_rb1 |
|
clr a |
mov r1, a |
mov r2, a |
mov r3, a |
mov r4, a |
mov r5, a |
mov r6, a |
mov r7, a |
xch a, r0 |
|
cpl f1 |
|
retr |
|
|
ORG 0300H |
|
fill: add a, #0B0H |
mov r0, a |
inc a |
mov r1, a |
inc a |
mov r2, a |
inc a |
mov r3, a |
inc a |
mov r4, a |
inc a |
mov r5, a |
inc a |
mov r6, a |
inc a |
mov r7, a |
ret |
|
check_0: |
mov a, r0 |
jnz fail_p3 |
mov a, r1 |
jnz fail_p3 |
mov a, r2 |
jnz fail_p3 |
mov a, r3 |
jnz fail_p3 |
mov a, r4 |
jnz fail_p3 |
mov a, r5 |
jnz fail_p3 |
mov a, r6 |
jnz fail_p3 |
mov a, r7 |
jnz fail_p3 |
ret |
|
;; synchronize on interrupt |
;; use r7 for timeout detection |
sync_on_int: |
mov a, r7 ; save r7 |
mov r7, #000H |
wait_int1: |
jni sync_on_int2 |
djnz r7, wait_int1 |
jmp fail_p3 |
|
sync_on_int2: |
mov r7, #000H |
wait_int2: |
jni still_int |
mov r7, a ; restore r7 |
call clr_int |
retr |
still_int: |
djnz r7, wait_int2 |
jmp fail_p3 |
|
clr_int: |
;; clear latched interrupt request with RETR! |
retr |
|
check_rb1: |
mov a, #(~0C1H & 0FFH) |
add a, r1 |
cpl a |
jnz fail_p3 |
|
mov a, #(~0C2H & 0FFH) |
add a, r2 |
cpl a |
jnz fail_p3 |
|
mov a, #(~0C3H & 0FFH) |
add a, r3 |
cpl a |
jnz fail_p3 |
|
mov a, #(~0C4H & 0FFH) |
add a, r4 |
cpl a |
jnz fail_p3 |
|
mov a, #(~0C5H & 0FFH) |
add a, r5 |
cpl a |
jnz fail_p3 |
|
mov a, #(~0C6H & 0FFH) |
add a, r6 |
cpl a |
jnz fail_p3 |
|
mov a, #(~0C7H & 0FFH) |
add a, r7 |
cpl a |
jnz fail_p3 |
|
ret |
|
check_rb0: |
mov a, #(~0B1H & 0FFH) |
add a, r1 |
cpl a |
jnz fail_p3 |
|
mov a, #(~0B2H & 0FFH) |
add a, r2 |
cpl a |
jnz fail_p3 |
|
mov a, #(~0B3H & 0FFH) |
add a, r3 |
cpl a |
jnz fail_p3 |
|
mov a, #(~0B4H & 0FFH) |
add a, r4 |
cpl a |
jnz fail_p3 |
|
mov a, #(~0B5H & 0FFH) |
add a, r5 |
cpl a |
jnz fail_p3 |
|
mov a, #(~0B6H & 0FFH) |
add a, r6 |
cpl a |
jnz fail_p3 |
|
mov a, #(~0B7H & 0FFH) |
add a, r7 |
cpl a |
jnz fail_p3 |
|
ret |
|
fail_p3: |
FAIL |
/mov/ind_rr/test.asm
0,0 → 1,185
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:16 arniml Exp $ |
;; |
;; Test MOV @ Rr for RB0. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov r0, #0FFH |
fill_loop: |
mov a, r0 |
mov @r0, a |
djnz r0, fill_loop |
|
;; check memory |
mov a, r0 |
jnz fail |
mov r0, #0FFH |
check_loop1: |
mov a, @r1 |
add a, r0 |
jnz fail |
dec r0 |
inc r1 |
mov a, r1 |
jnz check_loop1 |
jmp test_2 |
|
fail: FAIL |
|
;; |
ALIGN 256 |
;; |
|
test_2: ;; test MOV @ Rr, data |
mov r0, #0C0H |
mov r1, #0E0H |
mov @r0, #000H |
mov @r1, #020H |
|
inc r0 |
inc r1 |
mov @r0, #001H |
mov @r1, #021H |
inc r0 |
inc r1 |
mov @r0, #002H |
mov @r1, #022H |
inc r0 |
inc r1 |
mov @r0, #003H |
mov @r1, #023H |
inc r0 |
inc r1 |
mov @r0, #004H |
mov @r1, #024H |
inc r0 |
inc r1 |
mov @r0, #005H |
mov @r1, #025H |
inc r0 |
inc r1 |
mov @r0, #006H |
mov @r1, #026H |
inc r0 |
inc r1 |
mov @r0, #007H |
mov @r1, #027H |
inc r0 |
inc r1 |
mov @r0, #008H |
mov @r1, #028H |
inc r0 |
inc r1 |
mov @r0, #009H |
mov @r1, #029H |
inc r0 |
inc r1 |
mov @r0, #00AH |
mov @r1, #02AH |
inc r0 |
inc r1 |
mov @r0, #00BH |
mov @r1, #02BH |
inc r0 |
inc r1 |
mov @r0, #00CH |
mov @r1, #02CH |
inc r0 |
inc r1 |
mov @r0, #00DH |
mov @r1, #02DH |
inc r0 |
inc r1 |
mov @r0, #00EH |
mov @r1, #02EH |
inc r0 |
inc r1 |
mov @r0, #00FH |
mov @r1, #02FH |
;; |
inc r0 |
inc r1 |
mov @r0, #010H |
mov @r1, #030H |
inc r0 |
inc r1 |
mov @r0, #011H |
mov @r1, #031H |
inc r0 |
inc r1 |
mov @r0, #012H |
mov @r1, #032H |
inc r0 |
inc r1 |
mov @r0, #013H |
mov @r1, #033H |
inc r0 |
inc r1 |
mov @r0, #014H |
mov @r1, #034H |
inc r0 |
inc r1 |
mov @r0, #015H |
mov @r1, #035H |
inc r0 |
inc r1 |
mov @r0, #016H |
mov @r1, #036H |
inc r0 |
inc r1 |
mov @r0, #017H |
mov @r1, #037H |
inc r0 |
inc r1 |
mov @r0, #018H |
mov @r1, #038H |
inc r0 |
inc r1 |
mov @r0, #019H |
mov @r1, #039H |
inc r0 |
inc r1 |
mov @r0, #01AH |
mov @r1, #03AH |
inc r0 |
inc r1 |
mov @r0, #01BH |
mov @r1, #03BH |
inc r0 |
inc r1 |
mov @r0, #01CH |
mov @r1, #03CH |
inc r0 |
inc r1 |
mov @r0, #01DH |
mov @r1, #03DH |
inc r0 |
inc r1 |
mov @r0, #01EH |
mov @r1, #03EH |
inc r0 |
inc r1 |
mov @r0, #01FH |
mov @r1, #03FH |
|
mov r0, #0FFH |
mov r1, #11000001B |
check_loop2: |
mov a, @r0 |
add a, r1 |
jnz fail2 |
inc r1 |
dec r0 |
mov a, #01000000B |
add a, r0 |
jnz check_loop2 |
|
pass2: PASS |
|
fail2: FAIL |
/mov/a_rr/data_00/test.asm
0,0 → 1,63
;; ******************************************************************* |
;; $Id: test.asm,v 1.2 2004-03-26 22:35:51 arniml Exp $ |
;; |
;; Test MOV A, Rr for RB0 with 0x00. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #055H |
mov r0, #000H |
mov r1, #0FFH |
mov r2, #0FFH |
mov r3, #0FFH |
mov r4, #0FFH |
mov r5, #0FFH |
mov r6, #0FFH |
mov r7, #0FFH |
|
mov a, r0 |
jnz fail |
|
mov r1, #000H |
mov r0, #0FFH |
mov a, r1 |
jnz fail |
|
mov r2, #000H |
mov r1, #0FFH |
mov a, r2 |
jnz fail |
|
mov r3, #000H |
mov r2, #0FFH |
mov a, r3 |
jnz fail |
|
mov r4, #000H |
mov r3, #0FFH |
mov a, r4 |
jnz fail |
|
mov r5, #000H |
mov r4, #0FFH |
mov a, r5 |
jnz fail |
|
mov r6, #000H |
mov r5, #0FFH |
mov a, r6 |
jnz fail |
|
mov r7, #000H |
mov r6, #0FFH |
mov a, r7 |
jnz fail |
|
pass: PASS |
|
fail: FAIL |
/mov/a_rr/data_num/test.asm
0,0 → 1,50
;; ******************************************************************* |
;; $Id: test.asm,v 1.2 2004-03-26 22:37:27 arniml Exp $ |
;; |
;; Test MOV A, Rr for RB0 with 2*r. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #000H |
mov r0, #0FEH |
mov r1, #0FDH |
mov r2, #0FBH |
mov r3, #0F7H |
mov r4, #0EFH |
mov r5, #0DFH |
mov r6, #0BFH |
mov r7, #07FH |
|
mov a, r0 |
jz fail |
jb0 fail |
|
mov a, r1 |
jb1 fail |
|
mov a, r2 |
jb2 fail |
|
mov a, r3 |
jb3 fail |
|
mov a, r4 |
jb4 fail |
|
mov a, r5 |
jb5 fail |
|
mov a, r6 |
jb6 fail |
|
mov a, r7 |
jb7 fail |
|
pass: PASS |
|
fail: FAIL |
/mov/mov_rr_a/data_00/test.asm
0,0 → 1,78
;; ******************************************************************* |
;; $Id: test.asm,v 1.2 2004-03-26 22:37:39 arniml Exp $ |
;; |
;; Test MOV Rr, A for RB0 with 0x00. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #00H |
mov r0, a |
mov a, #0FFH |
mov r1, a |
mov r2, a |
mov r3, a |
mov r4, a |
mov r5, a |
mov r6, a |
mov r7, a |
|
mov a, r0 |
jnz fail |
|
mov a, #000H |
mov r1, a |
mov a, #0FFH |
mov r0, a |
mov a, r1 |
jnz fail |
|
mov a, #000H |
mov r2, a |
mov a, #0FFH |
mov r1, a |
mov a, r2 |
jnz fail |
|
mov a, #000H |
mov r3, a |
mov a, #0FFH |
mov r2, a |
mov a, r3 |
jnz fail |
|
mov a, #000H |
mov r4, a |
mov a, #0FFH |
mov r3, a |
mov a, r4 |
jnz fail |
|
mov a, #000H |
mov r5, a |
mov a, #0FFH |
mov r4, a |
mov a, r5 |
jnz fail |
|
mov a, #000H |
mov r6, a |
mov a, #0FFH |
mov r5, a |
mov a, r6 |
jnz fail |
|
mov a, #000H |
mov r7, a |
mov a, #0FFH |
mov r6, a |
mov a, r7 |
jnz fail |
|
pass: PASS |
|
fail: FAIL |
/mov/mov_rr_a/data_num/test.asm
0,0 → 1,59
;; ******************************************************************* |
;; $Id: test.asm,v 1.2 2004-03-26 22:37:46 arniml Exp $ |
;; |
;; Test MOV Rr, A for RB0 with 2*r. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #0FEH |
mov r0, a |
mov a, #0FDH |
mov r1, a |
mov a, #0FBH |
mov r2, a |
mov a, #0F7H |
mov r3, a |
mov a, #0EFH |
mov r4, a |
mov a, #0DFH |
mov r5, a |
mov a, #0BFH |
mov r6, a |
mov a, #07FH |
mov r7, a |
|
mov a, #000H |
|
mov a, r0 |
jz fail |
jb0 fail |
|
mov a, r1 |
jb1 fail |
|
mov a, r2 |
jb2 fail |
|
mov a, r3 |
jb3 fail |
|
mov a, r4 |
jb4 fail |
|
mov a, r5 |
jb5 fail |
|
mov a, r6 |
jb6 fail |
|
mov a, r7 |
jb7 fail |
|
pass: PASS |
|
fail: FAIL |
/ins/test.asm
0,0 → 1,37
;; ******************************************************************* |
;; $Id: test.asm,v 1.2 2004-10-25 19:33:13 arniml Exp $ |
;; |
;; Test INS A, BUS. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
|
;; deselect external memory |
mov r0, #0FFH |
clr a |
movx @r0, a |
|
mov a, #055H |
outl bus, a |
|
clr a |
ins a, bus |
add a, #0ABH |
jnz fail |
|
mov a, #0AAH |
outl bus, a |
|
clr a |
ins a, bus |
add a, #056H |
jnz fail |
|
pass: PASS |
|
fail: FAIL |
/ins/no_dump_compare
0,0 → 1,2
Reason why this cell is exluded from dump compare: |
External ports not modelled in detail in i8039 emulator. |
/cnt/int/no_dump_compare
0,0 → 1,2
Reason why this cell is exluded from dump compare: |
Modelling accuracy of interrupts is not sufficient for 1:1 dump compare. |
/cnt/int/test.asm
0,0 → 1,113
;; ******************************************************************* |
;; $Id: test.asm,v 1.1 2004-05-16 16:25:14 arniml Exp $ |
;; |
;; Test Counter Interrupt. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
jmp start |
nop |
jmp fail |
jmp fail |
jmp counter_int |
jmp fail |
|
;; Start of test |
start: mov a, #0FEH |
mov t, a |
|
mov r0, #000H |
|
strt cnt |
en tcnti |
|
jtf fail |
|
;; apply falling edge on T1 -> T = 0FFH |
anl P1, #0FDH |
call check_cnt_idle |
mov a, t |
inc a |
jnz fail |
;; apply rising edge on T1 |
orl P1, #002H |
call check_cnt_idle |
mov a, t |
inc a |
jnz fail |
|
;; apply falling edge on T1 -> T = 000H |
anl P1, #0FDH |
jtf goon |
jmp fail |
goon: mov a, r0 |
inc a |
jnz fail |
mov r0, a |
jtf fail |
;; apply rising edge on T1 |
orl P1, #002H |
call check_cnt_idle |
|
;; apply falling edge on T1 -> T = 001H |
anl P1, #0FDH |
call check_cnt_idle |
mov a, t |
dec a |
jnz fail |
;; apply rising edge on T1 |
orl P1, #002H |
call check_cnt_idle |
mov a, t |
dec a |
jnz fail |
|
;; apply falling edge on T1 -> T = 002H |
anl P1, #0FDH |
call check_cnt_idle |
mov a, t |
dec a |
dec a |
jnz fail |
;; apply rising edge on T1 |
orl P1, #002H |
call check_cnt_idle |
mov a, t |
dec a |
dec a |
jnz fail |
|
;; disable interrupt and trigger overflow |
dis tcnti |
mov a, #0FFH |
mov t, a |
call check_cnt_idle |
|
;; apply falling edge on T1 -> T = 000H |
anl P1, #0FDH |
jtf goon2 |
jmp fail |
goon2: mov a, r0 |
jnz fail |
mov a, t |
jnz fail |
|
|
pass: PASS |
|
fail: FAIL |
|
|
check_cnt_idle: |
jtf fail |
mov a, r0 |
jnz fail |
ret |
|
|
counter_int: |
mov r0, #0FFH |
retr |
/cnt/cnt/test.asm
0,0 → 1,82
;; ******************************************************************* |
;; $Id: test.asm,v 1.2 2004-05-16 16:25:46 arniml Exp $ |
;; |
;; Test Counter. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #0FEH |
mov t, a |
|
strt cnt |
jtf fail |
|
;; apply falling edge on T1 |
anl P1, #0FDH |
jtf fail |
mov a, t |
cpl a |
add a, #0FFH |
cpl a |
jnz fail |
|
;; apply rising edge on T1 |
orl P1, #002H |
jtf fail |
|
;; apply falling edge on T1 |
anl P1, #0FDH |
jtf goon |
jmp fail |
goon: jtf fail |
mov a, t |
jnz fail |
|
;; apply rising edge on T1 |
orl P1, #002H |
jtf fail |
|
;; apply falling edge on T1 |
anl P1, #0FDH |
jtf fail |
mov a, t |
dec a |
jnz fail |
|
;; check inactivity of counter |
stop tcnt |
mov a, #0FFH |
mov t, a |
|
;; apply rising edge on T1 |
orl P1, #002H |
jtf fail |
;; apply falling edge on T1 |
anl P1, #0FDH |
jtf fail |
;; apply rising edge on T1 |
orl P1, #002H |
jtf fail |
;; apply falling edge on T1 |
anl P1, #0FDH |
jtf fail |
|
strt cnt |
;; apply rising edge on T1 |
orl P1, #002H |
jtf fail |
;; apply falling edge on T1 |
anl P1, #0FDH |
jtf goon2 |
jmp fail |
|
goon2: |
|
pass: PASS |
|
fail: FAIL |
/int/simple_int_retr/no_dump_compare
0,0 → 1,2
Reason why this cell is exluded from dump compare: |
Modelling accuracy of interrupts is not sufficient for 1:1 dump compare. |
/int/simple_int_retr/test.asm
0,0 → 1,48
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test simple interrupt/RETR requences. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
jmp start_user |
|
|
ORG 3 |
cpl f1 |
cpl f0 |
mov r1, #060H |
int_loop: |
djnz r1, int_loop |
jf1 int_goon |
jmp fail |
int_goon: |
dis i |
retr |
|
|
ORG 020H |
start_user: |
mov r0, #080H |
en i |
nop |
loop1: djnz r0, loop1 |
jf0 fail |
jf1 goon1 |
jmp fail |
|
goon1: mov r0, #080H |
cpl f1 |
en i |
loop2: djnz r0, loop2 |
jf0 fail |
jf1 pass |
|
fail: FAIL |
|
pass: PASS |
/int/jni/no_dump_compare
0,0 → 1,2
Reason why this cell is exluded from dump compare: |
Modelling accuracy of interrupts is not sufficient for 1:1 dump compare. |
/int/jni/test.asm
0,0 → 1,21
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test JNI. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
jni fail |
|
mov r0, #000H |
poll: jni pass |
djnz r0, poll |
|
fail: FAIL |
|
pass: PASS |
/int/simple_jump_to/test.asm
0,0 → 1,28
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test a simple jump to interrupt. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
jmp start_user |
|
|
ORG 3 |
jmp pass |
|
|
ORG 010H |
start_user: |
en i |
mov r0, #080H |
loop: djnz r0, loop |
|
fail: FAIL |
|
pass: PASS |
/orl/bus/no_dump_compare
0,0 → 1,2
Reason why this cell is exluded from dump compare: |
External ports not modelled in detail in i8039 emulator. |
/orl/bus/test.asm
0,0 → 1,29
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:18 arniml Exp $ |
;; |
;; Test ORL BUS, data. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #000H |
outl bus, a |
|
cpl a |
ins a, bus |
jnz fail |
|
orl bus, #0AAH |
jnz fail |
|
ins a, bus |
add a, #056H |
jnz fail |
|
pass: PASS |
|
fail: FAIL |
/orl/pp/test.asm
0,0 → 1,40
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:18 arniml Exp $ |
;; |
;; Test ORL Pp, data. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #000H |
outl p1, a |
outl p2, a |
|
cpl a |
in a, p1 |
jnz fail |
|
cpl a |
in a, p2 |
jnz fail |
|
orl P1, #0AAH |
jnz fail |
orl P2, #055H |
jnz fail |
|
in a, p1 |
add a, #056H |
jnz fail |
|
in a, p2 |
add a, #0ABH |
jnz fail |
|
pass: PASS |
|
fail: FAIL |
/orl/rr/test.asm
0,0 → 1,149
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:18 arniml Exp $ |
;; |
;; Test ORL A, Rr with RB0 and RB1. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
|
;; fill RB0 |
call fill |
|
;; check RB0 |
call check |
|
;; fill RB1 |
sel rb1 |
call fill |
sel rb0 |
|
;; clear RB0 |
call clr_rb0 |
|
;; check RB1 |
sel rb1 |
call check |
|
;; check RB0 for all 0 |
mov r0, #000H |
mov r1, #008H |
chk0_loop: |
mov a, @r0 |
jnz fail |
inc r0 |
djnz r1, chk0_loop |
|
pass: PASS |
|
fail: FAIL |
|
|
ORG 0300H |
|
fill: mov a, #0FEH |
mov r0, a |
mov a, #0FDH |
mov r1, a |
mov a, #0FBH |
mov r2, a |
mov a, #0F7H |
mov r3, a |
mov a, #0EFH |
mov r4, a |
mov a, #0DFH |
mov r5, a |
mov a, #0BFH |
mov r6, a |
mov a, #07FH |
mov r7, a |
ret |
|
clr_rb0: |
mov r0, #007H |
clr a |
clr_loop: |
mov @r0, a |
djnz r0, clr_loop |
ret |
|
check: mov a, #(1 << 0) |
orl a, r0 |
cpl a |
jnz fail_p3 |
clr a |
orl a, r0 |
add a, #(~(0FFH - (1 << 0)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, #(1 << 1) |
orl a, r1 |
cpl a |
jnz fail_p3 |
clr a |
orl a, r1 |
add a, #(~(0FFH - (1 << 1)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, #(1 << 2) |
orl a, r2 |
cpl a |
jnz fail_p3 |
clr a |
orl a, r2 |
add a, #(~(0FFH - (1 << 2)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, #(1 << 3) |
orl a, r3 |
cpl a |
jnz fail_p3 |
clr a |
orl a, r3 |
add a, #(~(0FFH - (1 << 3)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, #(1 << 4) |
orl a, r4 |
cpl a |
jnz fail_p3 |
clr a |
orl a, r4 |
add a, #(~(0FFH - (1 << 4)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, #(1 << 5) |
orl a, r5 |
cpl a |
jnz fail_p3 |
clr a |
orl a, r5 |
add a, #(~(0FFH - (1 << 5)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, #(1 << 6) |
orl a, r6 |
cpl a |
jnz fail_p3 |
clr a |
orl a, r6 |
add a, #(~(0FFH - (1 << 6)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, #(1 << 7) |
orl a, r7 |
cpl a |
jnz fail_p3 |
clr a |
orl a, r7 |
add a, #(~(0FFH - (1 << 7)) + 1) & 0FFH |
jnz fail_p3 |
|
ret |
|
fail_p3: |
FAIL |
/orl/a_data/test.asm
0,0 → 1,32
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:18 arniml Exp $ |
;; |
;; Test ORL A, data. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
clr a |
orl a, #0FFH |
jz fail |
orl a, #0FFH |
jz fail |
|
clr a |
orl a, #055H |
add a, #0ABH |
jnz fail |
|
clr a |
orl a, #023H |
orl a, #088H |
add a, #055H |
jnz fail |
|
pass: PASS |
|
fail: FAIL |
/orl/ind_rr/test.asm
0,0 → 1,92
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:18 arniml Exp $ |
;; |
;; Test ORL A, @ Rr. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
testR0R1 MACRO pos |
inc r0 |
inc r1 |
mov a, #(1 << pos) |
orl a, @r0 |
cpl a |
jnz fail |
clr a |
orl a, @r0 |
add a, #(~(0FFH - (1 << pos)) + 1) & 0FFH |
jnz fail |
mov a, #(1 << pos) |
orl a, @r1 |
cpl a |
jnz fail |
clr a |
orl a, @r1 |
add a, #(~(0FFH - (1 << pos)) + 1) & 0FFH |
jnz fail |
ENDM |
|
ORG 0 |
|
;; Start of test |
mov r0, #010H |
mov r1, #020H |
mov a, #0FEH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0FDH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0FBH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0F7H |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0EFH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0DFH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0BFH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #07FH |
mov @r0, a |
mov @r1, a |
|
jmp goon |
|
ORG 256 |
;; |
goon: mov r0, #00FH |
mov r1, #01FH |
testR0R1 0 |
testR0R1 1 |
testR0R1 2 |
testR0R1 3 |
testR0R1 4 |
testR0R1 5 |
testR0R1 6 |
testR0R1 7 |
|
pass: PASS |
|
fail: FAIL |
/expander/no_dump_compare
0,0 → 1,2
Reason why this cell is exluded from dump compare: |
External ports not modelled in detail for i8039 emulator. |
/expander/test.asm
0,0 → 1,88
;; ******************************************************************* |
;; $Id: test.asm,v 1.1 2004-05-01 11:56:57 arniml Exp $ |
;; |
;; Test Expander port functionality. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #00AH |
movd p4, a |
mov a, #005H |
movd p5, a |
mov a, #00BH |
movd p6, a |
mov a, #000H |
movd p7, a |
|
;; check P4 |
movd a, p4 |
orl a, #0F5H |
inc a |
;jnz fail |
mov a, #0F5H |
orld p4, a |
movd a, p4 |
inc a |
;jnz fail |
mov a, #0FEH |
anld p4, a |
movd a, p4 |
add a, #0F2H |
;jnz fail |
|
;; check P5 |
movd a, p5 |
orl a, #0FAH |
inc a |
;jnz fail |
mov a, #0FAH |
orld p5, a |
movd a, p5 |
inc a |
;jnz fail |
mov a, #0FDH |
anld p5, a |
movd a, p5 |
add a, #0F3H |
;jnz fail |
|
;; check P6 |
movd a, p6 |
orl a, #0F4H |
inc a |
;jnz fail |
mov a, #0F4H |
orld p6, a |
movd a, p6 |
inc a |
;jnz fail |
mov a, #0F8H |
anld p6, a |
movd a, p6 |
add a, #0F8H |
;jnz fail |
|
;; check P7 |
movd a, p7 |
orl a, #0FFH |
inc a |
;jnz fail |
mov a, #0FFH |
orld p7, a |
movd a, p7 |
inc a |
;jnz fail |
mov a, #0F7H |
anld p7, a |
movd a, p7 |
add a, #0F9H |
;jnz fail |
|
pass: PASS |
|
fail: FAIL |
/outl/bus/no_dump_compare
0,0 → 1,2
Reason why this cell is exluded from dump compare: |
External ports not modelled in detail in i8039 emulator. |
/outl/bus/test.asm
0,0 → 1,20
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test OUTL BUS, A |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #055H |
outl bus, a |
cpl a |
outl bus, a |
|
pass: PASS |
|
fail: FAIL |
/outl/pp/test.asm
0,0 → 1,20
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test OUTL Pp, A |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #055H |
outl p1, a |
mov a, #0AAH |
outl p2, a |
|
pass: PASS |
|
fail: FAIL |
/tim/int/no_dump_compare
0,0 → 1,2
Reason why this cell is exluded from dump compare: |
Modelling accuracy of interrupts is not sufficient for 1:1 dump compare. |
/tim/int/test.asm
0,0 → 1,41
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:18 arniml Exp $ |
;; |
;; Test Timer Interrupt. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
jmp start |
nop |
jmp fail |
jmp fail |
jmp timer_int |
jmp fail |
|
;; Start of test |
start: mov a, #0F8H |
mov t, a |
clr a |
mov r0, a |
mov r1, a |
|
en tcnti |
jtf fail |
|
strt t |
|
loop: mov a, r0 |
jnz pass |
djnz r1, loop |
|
fail: FAIL |
|
pass: PASS |
|
|
timer_int: |
mov r0, #0FFH |
retr |
/tim/t/test.asm
0,0 → 1,110
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:18 arniml Exp $ |
;; |
;; Test Timer. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #0F8H |
mov t, a |
|
strt t |
jtf fail |
|
mov r0, #000H |
poll1: jtf goon1 |
djnz r0, poll1 |
jmp fail |
|
goon1: mov a, t |
jnz fail |
mov r0, #000H |
poll2: mov a, t |
add a, #0FBH |
jz goon2 |
djnz r0, poll2 |
|
goon2: stop tcnt |
clr a |
mov t, a |
strt t |
|
mov a, t |
jnz fail |
|
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
|
mov a, t |
dec a |
jnz fail |
|
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
nop |
|
mov a, t |
dec a |
dec a |
jnz fail |
|
pass: PASS |
|
fail: FAIL |
/movx/no_dump_compare
0,0 → 1,2
Reason why this cell is exluded from dump compare: |
External RAM is not modelled in i8039 emulator. |
/movx/test.asm
0,0 → 1,60
;; ******************************************************************* |
;; $Id: test.asm,v 1.2 2004-05-17 14:42:09 arniml Exp $ |
;; |
;; Test MOVX A, @ Rr for RB0. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov r0, #0FEH |
fill_loop1: |
mov a, r0 |
movx @r0, a |
djnz r0, fill_loop1 |
|
;; check memory |
mov a, r0 |
jnz fail |
mov r0, #0FEH |
mov r1, #002H |
check_loop1: |
clr a |
movx a, @r1 |
add a, r0 |
jnz fail |
inc r1 |
dec r0 |
mov a, r0 |
dec a |
jnz check_loop1 |
|
|
|
mov r1, #0FEH |
mov a, #002H |
fill_loop2: |
movx @r1, a |
inc a |
djnz r1, fill_loop2 |
|
;; check memory |
mov a, r1 |
jnz fail |
mov r0, #0FEH |
check_loop2: |
clr a |
movx a, @r0 |
add a, r0 |
jnz fail |
dec r0 |
mov a, r0 |
dec a |
jnz check_loop2 |
|
pass: PASS |
|
fail: FAIL |
/anl/bus/no_dump_compare
0,0 → 1,2
Reason why this cell is exluded from dump compare: |
External ports not modelled in detail in i8039 emulator. |
/anl/bus/test.asm
0,0 → 1,30
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test ANL BUS, data. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #0FFH |
outl bus, a |
|
clr a |
ins a, bus |
inc a |
jnz fail |
|
anl bus, #0AAH |
jnz fail |
|
ins a, bus |
add a, #056H |
jnz fail |
|
pass: PASS |
|
fail: FAIL |
/anl/pp/test.asm
0,0 → 1,41
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test ANL Pp, data. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #0FFH |
outl p1, a |
outl p2, a |
|
clr a |
in a, p1 |
inc a |
jnz fail |
|
in a, p2 |
inc a |
jnz fail |
|
anl P1, #0AAH |
jnz fail |
anl P2, #055H |
jnz fail |
|
in a, p1 |
add a, #056H |
jnz fail |
|
in a, p2 |
add a, #0ABH |
jnz fail |
|
pass: PASS |
|
fail: FAIL |
/anl/rr/test.asm
0,0 → 1,140
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test ANL A, Rr for RB0 and RB1. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
|
;; fill RB0 |
call fill |
|
;; check RB0 |
call check |
|
;; fill RB1 |
sel rb1 |
call fill |
sel rb0 |
|
;; clear RB0 |
call clr_rb0 |
|
;; check RB1 |
sel rb1 |
call check |
|
;; check RB0 for all 0 |
mov r0, #000H |
mov r1, #008H |
chk0_loop: |
mov a, @r0 |
jnz fail |
inc r0 |
djnz r1, chk0_loop |
|
pass: PASS |
|
fail: FAIL |
|
|
ORG 0300H |
|
fill: mov a, #0FEH |
mov r0, a |
mov a, #0FDH |
mov r1, a |
mov a, #0FBH |
mov r2, a |
mov a, #0F7H |
mov r3, a |
mov a, #0EFH |
mov r4, a |
mov a, #0DFH |
mov r5, a |
mov a, #0BFH |
mov r6, a |
mov a, #07FH |
mov r7, a |
ret |
|
clr_rb0: |
mov r0, #007H |
clr a |
clr_loop: |
mov @r0, a |
djnz r0, clr_loop |
ret |
|
check: mov a, #(1 << 0) |
anl a, r0 |
jnz fail_p3 |
mov a, #0FFH |
anl a, r0 |
add a, #(~(0FFH - (1 << 0)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, #(1 << 1) |
anl a, r1 |
jnz fail_p3 |
mov a, #0FFH |
anl a, r1 |
add a, #(~(0FFH - (1 << 1)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, #(1 << 2) |
anl a, r2 |
jnz fail_p3 |
mov a, #0FFH |
anl a, r2 |
add a, #(~(0FFH - (1 << 2)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, #(1 << 3) |
anl a, r3 |
jnz fail_p3 |
mov a, #0FFH |
anl a, r3 |
add a, #(~(0FFH - (1 << 3)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, #(1 << 4) |
anl a, r4 |
jnz fail_p3 |
mov a, #0FFH |
anl a, r4 |
add a, #(~(0FFH - (1 << 4)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, #(1 << 5) |
anl a, r5 |
jnz fail_p3 |
mov a, #0FFH |
anl a, r5 |
add a, #(~(0FFH - (1 << 5)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, #(1 << 6) |
anl a, r6 |
jnz fail_p3 |
mov a, #0FFH |
anl a, r6 |
add a, #(~(0FFH - (1 << 6)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, #(1 << 7) |
anl a, r7 |
jnz fail_p3 |
mov a, #0FFH |
anl a, r7 |
add a, #(~(0FFH - (1 << 7)) + 1) & 0FFH |
jnz fail_p3 |
ret |
|
|
fail_p3: FAIL |
/anl/a_data/test.asm
0,0 → 1,32
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test ANL A, data. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #0FFH |
anl a, #000H |
jnz fail |
anl a, #000H |
jnz fail |
|
mov a, #0FFH |
anl a, #055H |
add a, #0ABH |
jnz fail |
|
mov a, #0FFH |
anl a, #0B6H |
anl a, #023H |
add a, #0DEH |
jnz fail |
|
pass: PASS |
|
fail: FAIL |
/anl/ind_rr/test.asm
0,0 → 1,90
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test ANL A, @ Rr. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
testR0R1 MACRO pos |
inc r0 |
inc r1 |
mov a, #(1 << pos) |
anl a, @r0 |
jnz fail |
mov a, #0FFH |
anl a, @r0 |
add a, #(~(0FFH - (1 << pos)) + 1) & 0FFH |
jnz fail |
mov a, #(1 << pos) |
anl a, @r1 |
jnz fail |
mov a, #0FFH |
anl a, @r1 |
add a, #(~(0FFH - (1 << pos)) + 1) & 0FFH |
jnz fail |
ENDM |
|
ORG 0 |
|
;; Start of test |
mov r0, #010H |
mov r1, #020H |
mov a, #0FEH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0FDH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0FBH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0F7H |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0EFH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0DFH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0BFH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #07FH |
mov @r0, a |
mov @r1, a |
|
jmp goon |
|
ORG 256 |
;; |
goon: mov r0, #00FH |
mov r1, #01FH |
testR0R1 0 |
testR0R1 1 |
testR0R1 2 |
testR0R1 3 |
testR0R1 4 |
testR0R1 5 |
testR0R1 6 |
testR0R1 7 |
|
pass: PASS |
|
fail: FAIL |
/mb/int/test.asm
0,0 → 1,62
;; ******************************************************************* |
;; $Id: test.asm,v 1.4 2004-07-03 14:35:11 arniml Exp $ |
;; |
;; Test Program Memory bank selector with interrupts. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
jmp start |
ORG 3 |
jmp interrupt & 07FFH |
|
ORG 7 |
jmp fail |
|
;; Start of test |
start: |
sel mb1 |
mov r0, #000H |
en i |
poll: jf1 goon1 |
djnz r0, poll |
jmp fail |
goon1: |
|
call test_mb1 & 07FFH |
|
pass: PASS |
|
fail: FAIL |
|
ORG 0232H |
jmp fail |
interrupt: |
call trick_mb |
cpl f1 |
retr |
|
ORG 0250H |
trick_mb: |
ret |
|
ORG 0260H |
jmp fail |
|
|
ORG 0A32H |
jmp fail_hi |
jmp fail_hi |
jmp fail_hi |
|
ORG 0A50H |
jmp fail_hi |
|
ORG 0A60H |
test_mb1: |
ret |
|
fail_hi: |
FAIL |
/mb/call_jmp/test.asm
0,0 → 1,125
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:18 arniml Exp $ |
;; |
;; Test Program Memory bank selector with CALL and JMP. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
sel mb1 |
call call1 & 07FFH |
sel mb1 |
jmp jmp1 & 07FFH |
;; trap |
nop |
jmp fail |
nop |
jmp fail |
;; |
jmp2: sel mb1 |
call call3 & 07FFH |
sel mb1 |
jmp jmp3 & 07FFH |
;; trap |
nop |
jmp fail |
nop |
jmp fail |
;; |
jmp4: sel mb1 |
call call5 & 07FFH |
sel mb1 |
jmp jmp5 & 07FFH |
;; trap |
nop |
jmp fail |
nop |
jmp fail |
jmp6: |
|
pass: PASS |
|
fail: FAIL |
|
ORG 0100H |
|
;; trap |
jmp fail |
;; |
call2: sel mb1 |
ret |
;; trap |
jmp fail |
;; |
call4: sel mb0 |
ret |
;; trap |
jmp fail |
;; |
call6: sel mb1 |
ret |
|
|
|
ORG 0800H |
|
;; trap |
nop |
jmp fail_hi |
nop |
jmp fail_hi |
;; |
jmp1: sel mb0 |
call call2 | 0800H |
sel mb0 |
jmp jmp2 | 0800H |
;; trap |
nop |
jmp fail_hi |
nop |
jmp fail_hi |
;; |
jmp3: sel mb0 |
call call4 | 0800H |
sel mb0 |
jmp jmp4 | 0800H |
;; trap |
nop |
jmp fail_hi |
nop |
jmp fail_hi |
;; |
jmp5: sel mb0 |
call call6 | 0800H |
sel mb0 |
jmp jmp6 | 0800H |
;; trap |
nop |
jmp fail_hi |
nop |
jmp fail_hi |
|
|
fail_hi: |
FAIL |
|
|
ORG 0900H |
call1: sel mb0 |
ret |
;; trap |
jmp fail_hi |
;; |
call3: sel mb1 |
ret |
;; trap |
jmp fail_hi |
;; |
call5: sel mb0 |
ret |
;; trap |
jmp fail_hi |
/da/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 |
/xchd/test.asm
0,0 → 1,121
;; ******************************************************************* |
;; $Id: test.asm,v 1.2 2004-04-06 18:12:57 arniml Exp $ |
;; |
;; Test XCHD A, @ Rr. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
testR0R1 MACRO pos |
inc r0 |
inc r1 |
mov a, @r0 |
cpl a |
add a, #((~((pos+7) # 8) << 4) & 0F0H) | (pos & 00FH) |
cpl a |
jnz fail |
mov a, @r1 |
cpl a |
add a, #((~((pos+7) # 8) << 4) & 0F0H) | (pos & 00FH) |
cpl a |
jnz fail |
ENDM |
|
ORG 0 |
|
;; Start of test |
mov r0, #010H |
mov r1, #020H |
mov a, #0F0H |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0E1H |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0D2H |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0C3H |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0B4H |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0A5H |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #096H |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #087H |
mov @r0, a |
mov @r1, a |
|
dec r0 |
xchd a, @r0 |
dec r0 |
xchd a, @r0 |
dec r0 |
xchd a, @r0 |
dec r0 |
xchd a, @r0 |
dec r0 |
xchd a, @r0 |
dec r0 |
xchd a, @r0 |
dec r0 |
xchd a, @r0 |
mov r0, #017H |
xchd a, @r0 |
|
mov a, @r1 |
dec r1 |
xchd a, @r1 |
dec r1 |
xchd a, @r1 |
dec r1 |
xchd a, @r1 |
dec r1 |
xchd a, @r1 |
dec r1 |
xchd a, @r1 |
dec r1 |
xchd a, @r1 |
dec r1 |
xchd a, @r1 |
mov r1, #027H |
xchd a, @r1 |
|
jmp goon |
|
ORG 256 |
;; |
goon: mov r0, #00FH |
mov r1, #01FH |
testR0R1 1 |
testR0R1 2 |
testR0R1 3 |
testR0R1 4 |
testR0R1 5 |
testR0R1 6 |
testR0R1 7 |
testR0R1 0 |
|
pass: PASS |
|
fail: FAIL |
/xch/ind_rr/test.asm
0,0 → 1,121
;; ******************************************************************* |
;; $Id: test.asm,v 1.2 2004-04-04 13:28:33 arniml Exp $ |
;; |
;; Test XCH A, @ Rr. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
testR0R1 MACRO pos |
inc r0 |
inc r1 |
mov a, @r0 |
cpl a |
add a, #~(1 << pos) & 0FFH |
cpl a |
jnz fail |
mov a, @r1 |
cpl a |
add a, #~(1 << pos) & 0FFH |
cpl a |
jnz fail |
ENDM |
|
ORG 0 |
|
;; Start of test |
mov r0, #010H |
mov r1, #020H |
mov a, #0FEH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0FDH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0FBH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0F7H |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0EFH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0DFH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0BFH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #07FH |
mov @r0, a |
mov @r1, a |
|
dec r0 |
xch a, @r0 |
dec r0 |
xch a, @r0 |
dec r0 |
xch a, @r0 |
dec r0 |
xch a, @r0 |
dec r0 |
xch a, @r0 |
dec r0 |
xch a, @r0 |
dec r0 |
xch a, @r0 |
mov r0, #017H |
xch a, @r0 |
|
mov a, @r1 |
dec r1 |
xch a, @r1 |
dec r1 |
xch a, @r1 |
dec r1 |
xch a, @r1 |
dec r1 |
xch a, @r1 |
dec r1 |
xch a, @r1 |
dec r1 |
xch a, @r1 |
dec r1 |
xch a, @r1 |
mov r1, #027H |
xch a, @r1 |
|
jmp goon |
|
ORG 256 |
;; |
goon: mov r0, #00FH |
mov r1, #01FH |
testR0R1 1 |
testR0R1 2 |
testR0R1 3 |
testR0R1 4 |
testR0R1 5 |
testR0R1 6 |
testR0R1 7 |
testR0R1 0 |
|
pass: PASS |
|
fail: FAIL |
/xch/rr/test.asm
0,0 → 1,119
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:18 arniml Exp $ |
;; |
;; Test XCH A, Rr for RB0 and RB1. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
|
;; fill RB0 |
call fill |
|
;; check RB0 |
call check |
|
;; fill RB1 |
sel rb1 |
call fill |
sel rb0 |
|
;; clear RB0 |
call clr_rb0 |
|
;; check RB1 |
sel rb1 |
call check |
|
;; check RB0 for all 0 |
mov r0, #000H |
mov r1, #008H |
chk0_loop: |
mov a, @r0 |
jnz fail |
inc r0 |
djnz r1, chk0_loop |
|
pass: PASS |
|
fail: FAIL |
|
|
ORG 0300H |
|
fill: mov a, #0FEH |
mov r0, a |
mov a, #0FDH |
mov r1, a |
mov a, #0FBH |
mov r2, a |
mov a, #0F7H |
mov r3, a |
mov a, #0EFH |
mov r4, a |
mov a, #0DFH |
mov r5, a |
mov a, #0BFH |
mov r6, a |
mov a, #07FH |
mov r7, a |
ret |
|
clr_rb0: |
mov r0, #007H |
clr a |
clr_loop: |
mov @r0, a |
djnz r0, clr_loop |
ret |
|
check: mov a, r7 |
xch a, r6 |
xch a, r5 |
xch a, r4 |
xch a, r3 |
xch a, r2 |
xch a, r1 |
xch a, r0 |
xch a, r7 |
|
mov a, r0 |
add a, #(~(0FFH - (1 << 1)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, r1 |
add a, #(~(0FFH - (1 << 2)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, r2 |
add a, #(~(0FFH - (1 << 3)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, r3 |
add a, #(~(0FFH - (1 << 4)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, r4 |
add a, #(~(0FFH - (1 << 5)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, r5 |
add a, #(~(0FFH - (1 << 6)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, r6 |
add a, #(~(0FFH - (1 << 7)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, r7 |
add a, #(~(0FFH - (1 << 0)) + 1) & 0FFH |
jnz fail_p3 |
|
ret |
|
fail_p3: |
FAIL |
/psw/test.asm
0,0 → 1,61
;; ******************************************************************* |
;; $Id: test.asm,v 1.2 2004-03-29 20:09:50 arniml Exp $ |
;; |
;; Test several commands related to PSW. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, psw |
anl a, #0F7H |
jnz fail |
|
dec a |
mov psw, a |
mov a, psw |
inc a |
jnz fail |
|
mov psw, a |
mov a, psw |
anl a, #0F7H |
jnz fail |
|
cpl f0 |
jf0 ok_1 |
jmp fail |
ok_1: mov a, psw |
anl a, #~040H ; mask AC, tested separately with DA |
add a, #(~028H + 1) & 0FFH |
jnz fail |
|
clr f0 |
jnc fail |
mov a, psw |
anl a, #~040H ; mask AC, tested separately with DA |
add a, #(~088H + 1) & 0FFH |
jnz fail |
|
clr c |
jc fail |
sel rb1 |
mov a, psw |
anl a, #~040H ; mask AC, tested separately with DA |
add a, #(~018H + 1) & 0FFH |
jnz fail |
|
cpl c |
jc fail |
sel rb0 |
mov a, psw |
anl a, #~040H ; mask AC, tested separately with DA |
add a, #(~08H + 1) & 0FFH |
jnz fail |
|
pass: PASS |
|
fail: FAIL |
/call/simple/test.asm
0,0 → 1,62
;; ******************************************************************* |
;; $Id: test.asm,v 1.2 2004-03-29 20:09:47 arniml Exp $ |
;; |
;; Test CALL addr with simple program. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, psw |
|
clr c |
call1: call goon1 |
|
jmp fail |
|
ORG 039FH |
|
goon1: mov a, psw |
anl a, #~040H ; mask AC, tested separately with DA |
add a, #~009H + 1 |
jnz fail |
|
call2: call goon2 |
|
jmp fail |
|
goon2: clr c |
mov a, psw |
anl a, #~040H ; mask AC, tested separately with DA |
add a, #~00AH + 1 |
jnz fail |
|
;; check stack contents |
mov r0, #008H |
mov a, @r0 |
add a, #(~(call1+2 & 0FFH) + 1) & 0FFH |
jnz fail |
|
inc r0 |
mov a, @r0 |
anl a, #~040H ; mask AC, tested separately with DA |
add a, #(~((call1+2) >> 8) + 1) & 0FFH |
jnz fail |
|
inc r0 |
mov a, @r0 |
add a, #(~(call2+2 & 0FFH) + 1) & 0FFH |
jnz fail |
|
inc r0 |
mov a, @r0 |
anl a, #~040H ; mask AC, tested separately with DA |
add a, #(~((call2+2) >> 8 | 080H) + 1) & 0FFH |
jnz fail |
|
pass: PASS |
|
fail: FAIL |
/call/call_ret/test.asm
0,0 → 1,104
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test CALL + RET(R) with simple program. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov r0, #008H |
call recursive |
|
call1: call sub1 |
jc fail |
jf0 fail |
jf1 ok_1 |
jmp fail |
ok_1: |
;; check stack contents |
mov r0, #008H |
mov a, @r0 |
add a, #(~(call1+2 & 0FFH) + 1) & 0FFH |
jnz fail |
|
inc r0 |
mov a, @r0 |
add a, #(~((call1+2) >> 8) + 1) & 0FFH |
jnz fail |
|
inc r0 |
mov a, @r0 |
add a, #(~(call2+2 & 0FFH) + 1) & 0FFH |
jnz fail |
|
inc r0 |
mov a, @r0 |
add a, #(~((call2+2) >> 8 | 0A0H) + 1) & 0FFH |
jnz fail |
|
|
clr c |
clr f0 |
clr f1 |
call sub3 |
jc fail |
jf0 fail |
|
pass: PASS |
|
fail: FAIL |
|
|
|
ORG 0156H |
recursive: |
dec r0 |
mov a, r0 |
jz rec_end |
call recursive |
rec_end: |
ret |
|
|
ORG 0245H |
|
sub1: cpl f0 |
cpl f1 |
cpl c |
call2: call sub2 |
jf0 sub1_1 |
jmp fail2 |
sub1_1: jnc fail2 |
retr |
|
sub2: jf0 sub2_1 |
jmp fail2 |
sub2_1: clr f0 |
jnc fail2 |
clr c |
retr |
|
fail2: FAIL |
|
|
ORG 0311H |
|
sub3: cpl f0 |
cpl c |
call sub4 |
jf0 fail3 |
jc fail3 |
ret |
|
sub4: jf0 sub4_1 |
jmp fail3 |
sub4_1: clr f0 |
jnc fail3 |
clr c |
ret |
|
fail3: FAIL |
/jnz/test.asm
0,0 → 1,49
;; ******************************************************************* |
;; $Id: test.asm,v 1.2 2004-03-26 22:37:12 arniml Exp $ |
;; |
;; Test JNZ instruction. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #000H |
jnz fail |
|
mov a, #001H |
jnz ok_01 |
jmp fail |
|
ok_01: mov a, #002H |
jnz ok_02 |
jmp fail |
|
ok_02: mov a, #004H |
jnz ok_04 |
jmp fail |
|
ok_04: mov a, #008H |
jnz ok_08 |
jmp fail |
|
ok_08: mov a, #010H |
jnz ok_10 |
jmp fail |
|
ok_10: mov a, #020H |
jnz ok_20 |
jmp fail |
|
ok_20: mov a, #040H |
jnz ok_40 |
jmp fail |
|
ok_40: mov a, #080H |
jnz pass |
|
fail: FAIL |
|
pass: PASS |
/jz/test.asm
0,0 → 1,43
;; ******************************************************************* |
;; $Id: test.asm,v 1.2 2004-03-26 22:34:14 arniml Exp $ |
;; |
;; Test JZ instruction. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #000H |
jz ok_0 |
jmp fail |
|
ok_0: mov a, #001H |
jz fail |
|
mov a, #002H |
jz fail |
|
mov a, #004H |
jz fail |
|
mov a, #008H |
jz fail |
|
mov a, #010H |
jz fail |
|
mov a, #020H |
jz fail |
|
mov a, #040H |
jz fail |
|
mov a, #080H |
jz fail |
|
pass: PASS |
|
fail: FAIL |
/addc/ind_rr/test.asm
0,0 → 1,99
;; ******************************************************************* |
;; $Id: test.asm,v 1.2 2004-03-26 22:33:30 arniml Exp $ |
;; |
;; Test ADDC A, @ Rr. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
testADDC MACRO val |
jmp goon |
ALIGN 040H |
goon: inc r0 |
inc r1 |
mov a, #val |
addc a, @r0 |
jnz fail |
jnc fail |
mov a, #val |
addc a, @r0 |
dec a |
jnz fail |
jnc fail |
clr c |
;; |
mov a, #val |
addc a, @r1 |
jnz fail |
jnc fail |
mov a, #val |
addc a, @r1 |
dec a |
jnz fail |
jnc fail |
clr c |
jmp pass |
;; |
fail: FAIL |
pass: |
ENDM |
|
ORG 0 |
|
;; Start of test |
mov r0, #010H |
mov r1, #020H |
mov a, #0FEH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0FDH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0FBH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0F7H |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0EFH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0DFH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0BFH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #07FH |
mov @r0, a |
mov @r1, a |
|
;; |
mov r0, #00FH |
mov r1, #01FH |
|
testADDC 002H |
testADDC 003H |
testADDC 005H |
testADDC 009H |
testADDC 011H |
testADDC 021H |
testADDC 041H |
testADDC 081H |
|
pass: PASS |
/addc/rr/test.asm
0,0 → 1,98
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test ADDC A, Rr with carry, RB0 and RB1. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
testADDC MACRO val,reg |
mov a, #val |
addc a, reg |
jnz fail_p3 |
jnc fail_p3 |
mov a, #val |
addc a, reg |
jz fail_p3 |
jnc fail_p3 |
dec a |
jnz fail_p3 |
clr c |
jc fail_p3 |
ENDM |
|
ORG 0 |
|
;; Start of test |
;; fill RB0 |
call fill |
|
;; check RB0 |
call check |
|
;; fill RB1 |
sel rb1 |
call fill |
sel rb0 |
|
;; clear RB0 |
call clr |
|
;; check RB1 |
sel rb1 |
call check |
|
;; check RB0 for all 0 |
mov r0, #000H |
mov r1, #008H |
chk0_loop: |
mov a, @r0 |
jnz fail |
inc r0 |
djnz r1, chk0_loop |
|
pass: PASS |
|
fail: FAIL |
|
|
ORG 0300H |
|
fill: mov a, #0FEH |
mov r0, a |
mov a, #0FDH |
mov r1, a |
mov a, #0FBH |
mov r2, a |
mov a, #0F7H |
mov r3, a |
mov a, #0EFH |
mov r4, a |
mov a, #0DFH |
mov r5, a |
mov a, #0BFH |
mov r6, a |
mov a, #07FH |
mov r7, a |
ret |
|
check: testADDC 002H, r0 |
testADDC 003H, r1 |
testADDC 005H, r2 |
testADDC 009H, r3 |
testADDC 011H, r4 |
testADDC 021H, r5 |
testADDC 041H, r6 |
testADDC 081H, r7 |
ret |
|
clr: mov r0, #007H |
clr a |
clr_loop: |
mov @r0, a |
djnz r0, clr_loop |
ret |
|
fail_p3: |
FAIL |
/addc/a_data/test.asm
0,0 → 1,30
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test ADDC A, data. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
jc fail |
mov a, #000H |
|
addc a, #055H |
jc fail |
addc a, #0ABH |
jnz fail |
jnc fail |
|
addc a, #000H |
jc fail |
addc a, #0FFH |
jnz fail |
jnc fail |
|
pass: PASS |
|
fail: FAIL |
/clr/a/test.asm
0,0 → 1,33
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test CLR A. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #0FFH |
jz fail |
clr a |
jnz fail |
|
inc a |
jb0 ok_1 |
jmp fail |
|
ok_1: add a, #0FFH |
jnz fail |
|
add a, #010H |
clr a |
dec a |
add a, #001H |
jnz fail |
|
pass: PASS |
|
fail: FAIL |
/clr/c/test.asm
0,0 → 1,29
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test CLR C. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
jc fail |
cpl c |
jnc fail |
clr c |
jc fail |
clr c |
jc fail |
|
mov a, #0FFH |
add a, #001H |
jnc fail |
clr c |
jc fail |
|
pass: PASS |
|
fail: FAIL |
/clr/f0/test.asm
0,0 → 1,23
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test CLR F0. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
jf0 fail |
cpl f0 |
jf0 ok_1 |
jmp fail |
|
ok_1: clr f0 |
jf0 fail |
|
pass: PASS |
|
fail: FAIL |
/clr/f1/test.asm
0,0 → 1,23
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test CLR F1. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
jf1 fail |
cpl f1 |
jf1 ok_1 |
jmp fail |
|
ok_1: clr f1 |
jf1 fail |
|
pass: PASS |
|
fail: FAIL |
/dec/a/test.asm
0,0 → 1,32
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test DEC A. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #001H |
dec a |
jnz fail |
|
dec a |
jb0 ok_0 |
jmp fail |
|
ok_0: inc a |
jnz fail |
|
mov a, #10100101B |
dec a |
add a, #01011101B |
dec a |
jnz fail |
|
pass: PASS |
|
fail: FAIL |
/dec/rr/test.asm
0,0 → 1,244
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test DECC Rr for RB0 and RB1. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
|
;; fill RB0 |
call fill |
|
;; check RB0 |
call check |
|
;; fill RB1 |
sel rb1 |
call fill |
sel rb0 |
|
;; clear RB0 |
call clr_rb0 |
|
;; check RB1 |
sel rb1 |
call check |
|
;; check RB0 for all 0 |
mov r0, #000H |
mov r1, #008H |
chk0_loop: |
mov a, @r0 |
jnz fail |
inc r0 |
djnz r1, chk0_loop |
|
pass: PASS |
|
fail: FAIL |
|
|
ORG 0300H |
|
fill: mov a, #000H |
mov r0, a |
mov r1, a |
mov r2, a |
mov r3, a |
mov r4, a |
mov r5, a |
mov r6, a |
mov r7, a |
ret |
|
clr_rb0: |
mov r0, #007H |
clr a |
clr_loop: |
mov @r0, a |
djnz r0, clr_loop |
ret |
|
check: mov a, #0FFH |
dec r0 |
jz fail_p3 |
mov a, r0 |
jz fail_p3 |
;; |
mov a, r1 |
jnz fail_p3 |
mov a, r2 |
jnz fail_p3 |
mov a, r3 |
jnz fail_p3 |
mov a, r4 |
jnz fail_p3 |
mov a, r5 |
jnz fail_p3 |
mov a, r6 |
jnz fail_p3 |
mov a, r7 |
jnz fail_p3 |
|
mov a, #0FFH |
dec r1 |
jz fail_p3 |
mov a, r1 |
jz fail_p3 |
;; |
mov a, r0 |
jz fail_p3 |
;; |
mov a, r2 |
jnz fail_p3 |
mov a, r3 |
jnz fail_p3 |
mov a, r4 |
jnz fail_p3 |
mov a, r5 |
jnz fail_p3 |
mov a, r6 |
jnz fail_p3 |
mov a, r7 |
jnz fail_p3 |
|
mov a, #0FFH |
dec r2 |
jz fail_p3 |
mov a, r2 |
jz fail_p3 |
;; |
mov a, r0 |
jz fail_p3 |
mov a, r1 |
jz fail_p3 |
;; |
mov a, r3 |
jnz fail_p3 |
mov a, r4 |
jnz fail_p3 |
mov a, r5 |
jnz fail_p3 |
mov a, r6 |
jnz fail_p3 |
mov a, r7 |
jnz fail_p3 |
|
mov a, #0FFH |
dec r3 |
jz fail_p3 |
mov a, r3 |
jz fail_p3 |
;; |
mov a, r0 |
jz fail_p3 |
mov a, r1 |
jz fail_p3 |
mov a, r2 |
jz fail_p3 |
;; |
mov a, r4 |
jnz fail_p3 |
mov a, r5 |
jnz fail_p3 |
mov a, r6 |
jnz fail_p3 |
mov a, r7 |
jnz fail_p3 |
|
mov a, #0FFH |
dec r4 |
jz fail_p3 |
mov a, r4 |
jz fail_p3 |
;; |
mov a, r0 |
jz fail_p3 |
mov a, r1 |
jz fail_p3 |
mov a, r2 |
jz fail_p3 |
mov a, r3 |
jz fail_p3 |
;; |
mov a, r5 |
jnz fail_p3 |
mov a, r6 |
jnz fail_p3 |
mov a, r7 |
jnz fail_p3 |
|
mov a, #0FFH |
dec r5 |
jz fail_p3 |
mov a, r5 |
jz fail_p3 |
;; |
mov a, r0 |
jz fail_p3 |
mov a, r1 |
jz fail_p3 |
mov a, r2 |
jz fail_p3 |
mov a, r3 |
jz fail_p3 |
mov a, r4 |
jz fail_p3 |
;; |
mov a, r6 |
jnz fail_p3 |
mov a, r7 |
jnz fail_p3 |
|
mov a, #0FFH |
dec r6 |
jz fail_p3 |
mov a, r6 |
jz fail_p3 |
;; |
mov a, r0 |
jz fail_p3 |
mov a, r1 |
jz fail_p3 |
mov a, r2 |
jz fail_p3 |
mov a, r3 |
jz fail_p3 |
mov a, r4 |
jz fail_p3 |
mov a, r5 |
jz fail_p3 |
;; |
mov a, r7 |
jnz fail_p3 |
|
mov a, #0FFH |
inc r7 |
jz fail_p3 |
mov a, r7 |
jz fail_p3 |
;; |
mov a, r0 |
jz fail_p3 |
mov a, r1 |
jz fail_p3 |
mov a, r2 |
jz fail_p3 |
mov a, r3 |
jz fail_p3 |
mov a, r4 |
jz fail_p3 |
mov a, r5 |
jz fail_p3 |
mov a, r6 |
jz fail_p3 |
ret |
|
|
fail_p3: |
FAIL |
/jc/test.asm
0,0 → 1,20
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test JC instruction. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
jc fail |
mov a, #0FFH |
add a, #001H |
jc pass |
|
fail: FAIL |
|
pass: PASS |
/rc/test.asm
0,0 → 1,107
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:18 arniml Exp $ |
;; |
;; Test RR(C) A. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #080H |
|
rr a |
jb7 fail |
jb6 ok1_1 |
jmp fail |
|
ok1_1: rr a |
jb6 fail |
jb5 ok1_2 |
jmp fail |
|
ok1_2: rr a |
jb5 fail |
jb4 ok1_3 |
jmp fail |
|
ok1_3: rr a |
jb4 fail |
jb3 ok1_4 |
jmp fail |
|
ok1_4: rr a |
jb3 fail |
jb2 ok1_5 |
jmp fail |
|
ok1_5: rr a |
jb2 fail |
jb1 ok1_6 |
jmp fail |
|
ok1_6: rr a |
jb1 fail |
jb0 ok1_7 |
jmp fail |
|
ok1_7: rr a |
jb0 fail |
jb7 ok2 |
jmp fail |
|
|
ok2: mov a, #07FH |
cpl c |
|
rrc a |
jb7 ok2_1 |
jmp fail |
ok2_1: jb6 fail |
|
rrc a |
jb6 ok2_2 |
jmp fail |
ok2_2: jb5 fail |
|
rrc a |
jb5 ok2_3 |
jmp fail |
ok2_3: jb4 fail |
|
rrc a |
jb4 ok2_4 |
jmp fail |
ok2_4: jb3 fail |
|
rrc a |
jb3 ok2_5 |
jmp fail |
ok2_5: jb2 fail |
|
rrc a |
jb2 ok2_6 |
jmp fail |
ok2_6: jb1 fail |
|
rrc a |
jb1 ok2_7 |
jmp fail |
ok2_7: jb0 fail |
jnc fail |
|
rrc a |
jb0 ok2_8 |
jmp fail |
ok2_8: jc fail |
|
rrc a |
jc ok2_9 |
jmp fail |
ok2_9: jb7 fail |
|
pass: PASS |
|
fail: FAIL |
/xrl/rr/test.asm
0,0 → 1,157
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:18 arniml Exp $ |
;; |
;; Test XRL A, Rr for RB0 and RB1 |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
|
;; fill RB0 |
call fill |
|
;; check RB0 |
call check |
|
;; fill RB1 |
sel rb1 |
call fill |
sel rb0 |
|
;; clear RB0 |
call clr_rb0 |
|
;; check RB1 |
sel rb1 |
call check |
|
;; check RB0 for all 0 |
mov r0, #000H |
mov r1, #008H |
chk0_loop: |
mov a, @r0 |
jnz fail |
inc r0 |
djnz r1, chk0_loop |
|
pass: PASS |
|
fail: FAIL |
|
|
ORG 0300H |
|
fill: mov a, #0FEH |
mov r0, a |
mov a, #0FDH |
mov r1, a |
mov a, #0FBH |
mov r2, a |
mov a, #0F7H |
mov r3, a |
mov a, #0EFH |
mov r4, a |
mov a, #0DFH |
mov r5, a |
mov a, #0BFH |
mov r6, a |
mov a, #07FH |
mov r7, a |
ret |
|
clr_rb0: |
mov r0, #007H |
clr a |
clr_loop: |
mov @r0, a |
djnz r0, clr_loop |
ret |
|
check: mov a, #(1 << 0) |
xrl a, r0 |
cpl a |
jnz fail_p3 |
dec a |
xrl a, r0 |
cpl a |
add a, #(~(0FFH - (1 << 0)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, #(1 << 1) |
xrl a, r1 |
cpl a |
jnz fail_p3 |
dec a |
xrl a, r1 |
cpl a |
add a, #(~(0FFH - (1 << 1)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, #(1 << 2) |
xrl a, r2 |
cpl a |
jnz fail_p3 |
dec a |
xrl a, r2 |
cpl a |
add a, #(~(0FFH - (1 << 2)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, #(1 << 3) |
xrl a, r3 |
cpl a |
jnz fail_p3 |
dec a |
xrl a, r3 |
cpl a |
add a, #(~(0FFH - (1 << 3)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, #(1 << 4) |
xrl a, r4 |
cpl a |
jnz fail_p3 |
dec a |
xrl a, r4 |
cpl a |
add a, #(~(0FFH - (1 << 4)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, #(1 << 5) |
xrl a, r5 |
cpl a |
jnz fail_p3 |
dec a |
xrl a, r5 |
cpl a |
add a, #(~(0FFH - (1 << 5)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, #(1 << 6) |
xrl a, r6 |
cpl a |
jnz fail_p3 |
dec a |
xrl a, r6 |
cpl a |
add a, #(~(0FFH - (1 << 6)) + 1) & 0FFH |
jnz fail_p3 |
|
mov a, #(1 << 7) |
xrl a, r7 |
cpl a |
jnz fail_p3 |
dec a |
xrl a, r7 |
cpl a |
add a, #(~(0FFH - (1 << 7)) + 1) & 0FFH |
jnz fail_p3 |
|
ret |
|
fail_p3: |
FAIL |
/xrl/a_data/test.asm
0,0 → 1,32
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:18 arniml Exp $ |
;; |
;; Test XRL A, data. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
clr a |
xrl a, #0FFH |
jz fail |
xrl a, #0FFH |
jnz fail |
|
clr a |
xrl a, #055H |
add a, #0ABH |
jnz fail |
|
clr a |
xrl a, #023H |
xrl a, #0A9H |
add a, #076H |
jnz fail |
|
pass: PASS |
|
fail: FAIL |
/xrl/ind_rr/test.asm
0,0 → 1,92
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:18 arniml Exp $ |
;; |
;; Test XRL A, @ Rr. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
testR0R1 MACRO pos |
inc r0 |
inc r1 |
mov a, #(1 << pos) |
cpl a |
xrl a, @r0 |
jnz fail |
clr a |
xrl a, @r0 |
add a, #(~(0FFH - (1 << pos)) + 1) & 0FFH |
jnz fail |
mov a, #(1 << pos) |
cpl a |
xrl a, @r1 |
jnz fail |
clr a |
xrl a, @r1 |
add a, #(~(0FFH - (1 << pos)) + 1) & 0FFH |
jnz fail |
ENDM |
|
ORG 0 |
|
;; Start of test |
mov r0, #010H |
mov r1, #020H |
mov a, #0FEH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0FDH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0FBH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0F7H |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0EFH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0DFH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0BFH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #07FH |
mov @r0, a |
mov @r1, a |
|
jmp goon |
|
ORG 256 |
;; |
goon: mov r0, #00FH |
mov r1, #01FH |
testR0R1 0 |
testR0R1 1 |
testR0R1 2 |
testR0R1 3 |
testR0R1 4 |
testR0R1 5 |
testR0R1 6 |
testR0R1 7 |
|
pass: PASS |
|
fail: FAIL |
/rl/test.asm
0,0 → 1,108
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:18 arniml Exp $ |
;; |
;; Test RL(C) A. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #001H |
|
rl a |
jb0 fail |
jb1 ok1_1 |
jmp fail |
|
ok1_1: rl a |
jb1 fail |
jb2 ok1_2 |
jmp fail |
|
ok1_2: rl a |
jb2 fail |
jb3 ok1_3 |
jmp fail |
|
ok1_3: rl a |
jb3 fail |
jb4 ok1_4 |
jmp fail |
|
ok1_4: rl a |
jb4 fail |
jb5 ok1_5 |
jmp fail |
|
ok1_5: rl a |
jb5 fail |
jb6 ok1_6 |
jmp fail |
|
ok1_6: rl a |
jb6 fail |
jb7 ok1_7 |
jmp fail |
|
ok1_7: rl a |
jb7 fail |
jb0 ok2 |
jmp fail |
|
|
ok2: mov a, #0FEH |
cpl c |
|
rlc a |
jb0 ok2_1 |
jmp fail |
ok2_1: jb1 fail |
|
rlc a |
jb1 ok2_2 |
jmp fail |
ok2_2: jb2 fail |
|
rlc a |
jb2 ok2_3 |
jmp fail |
ok2_3: jb3 fail |
|
rlc a |
jb3 ok2_4 |
jmp fail |
ok2_4: jb4 fail |
|
rlc a |
jb4 ok2_5 |
jmp fail |
ok2_5: jb5 fail |
|
rlc a |
jb5 ok2_6 |
jmp fail |
ok2_6: jb6 fail |
|
rlc a |
jb6 ok2_7 |
jmp fail |
ok2_7: jb7 fail |
jnc fail |
|
rlc a |
jb7 ok2_8 |
jmp fail |
ok2_8: jc fail |
|
rlc a |
jc ok2_9 |
jmp fail |
ok2_9: jb0 fail |
|
|
pass: PASS |
|
fail: FAIL |
/movp/test.asm
0,0 → 1,67
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:18 arniml Exp $ |
;; |
;; Test MOVP A, @ A and MOVP3 A, @ A. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
table MACRO data |
DB data & 0FFH |
ENDM |
|
ORG 0 |
|
;; Start of test |
mov r1, #008H |
|
loop: mov a, r1 |
dec a |
call fetch_table1 |
mov r0, a |
|
mov a, r1 |
dec a |
call fetch_table3 |
|
add a, r0 |
cpl a |
jnz fail |
|
djnz r1, loop |
|
|
pass: PASS |
|
fail: FAIL |
|
|
ORG 0100H |
|
db 0AFH |
db 033H |
db 0C0H |
db 012H |
db 055H |
db 061H |
db 02BH |
db 0F4H |
fetch_table1: |
movp a, @a |
ret |
fetch_table3: |
movp3 a, @a |
ret |
|
|
ORG 0300H |
|
db 050H |
db 0CCH |
db 03FH |
db 0EDH |
db 0AAH |
db 09EH |
db 0D4H |
db 00BH |
/jmp/test.asm
0,0 → 1,11
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
jmp pass |
FAIL |
|
pass: PASS |
/add/rr/test.asm
0,0 → 1,106
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:16 arniml Exp $ |
;; |
;; Test ADD A, Rr without carry, RB0 and RB1. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
;; fill RB0 |
call fill |
|
;; check RB0 |
sel rb0 |
call check |
|
;; fill RB1 |
sel rb1 |
call fill |
sel rb0 |
|
;; clear RB0 |
mov r0, #007H |
clr a |
clr_loop: |
mov @r0, a |
djnz r0, clr_loop |
|
;; check RB1 |
sel rb1 |
call check |
|
;; check RB0 for all 0 |
mov r0, #000H |
mov r1, #008H |
chk0_loop: |
mov a, @r0 |
jnz fail |
inc r0 |
djnz r1, chk0_loop |
|
pass: PASS |
|
fail: FAIL |
|
|
ORG 0300H |
fill: mov a, #0FEH |
mov r0, a |
mov a, #0FDH |
mov r1, a |
mov a, #0FBH |
mov r2, a |
mov a, #0F7H |
mov r3, a |
mov a, #0EFH |
mov r4, a |
mov a, #0DFH |
mov r5, a |
mov a, #0BFH |
mov r6, a |
mov a, #07FH |
mov r7, a |
ret |
|
|
check: mov a, #002H |
add a, r0 |
jnz fail_p3 |
|
mov a, #003H |
add a, r1 |
jnz fail_p3 |
|
mov a, #005H |
add a, r2 |
jnz fail_p3 |
|
mov a, #009H |
add a, r3 |
jnz fail_p3 |
|
mov a, #011H |
add a, r4 |
jnz fail_p3 |
|
mov a, #021H |
add a, r5 |
jnz fail_p3 |
|
mov a, #041H |
add a, r6 |
jnz fail_p3 |
|
mov a, #081H |
add a, r7 |
jnz fail_p3 |
|
ret |
|
|
fail_p3: |
FAIL |
/add/a_data/test.asm
0,0 → 1,82
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:16 arniml Exp $ |
;; |
;; Test ADD A, data without carry. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #000H |
|
add a, #055H |
jz fail |
;; exact check for 055H |
jb0 ok_1 |
jmp fail |
|
ok_1: jb1 fail |
|
jb2 ok_2 |
jmp fail |
|
ok_2: jb3 fail |
|
jb4 ok_4 |
jmp fail |
|
ok_4: jb5 fail |
|
jb6 ok_6 |
jmp fail |
|
ok_6: jb7 fail |
|
add a, #0AAH |
jz fail |
add a, #001H |
jnz fail |
|
add a, #011111110B |
jb0 fail |
|
add a, #011111111B |
jb1 fail |
jb0 ko_1 |
jmp fail |
|
ko_1: add a, #011111110B |
jb2 fail |
jb1 ko_2 |
jmp fail |
|
ko_2: add a, #011111100B |
jb3 fail |
jb2 ko_3 |
jmp fail |
|
ko_3: add a, #011111000B |
jb4 fail |
jb3 ko_4 |
jmp fail |
|
ko_4: add a, #011110000B |
jb5 fail |
jb4 ko_5 |
jmp fail |
|
ko_5: add a, #011100000B |
jb6 fail |
jb5 ko_6 |
jmp fail |
|
ko_6: add a, #011000000B |
jb7 fail |
jb6 pass |
|
fail: FAIL |
|
pass: PASS |
/add/ind_rr/test.asm
0,0 → 1,129
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:16 arniml Exp $ |
;; |
;; Test ADD A, @ Rr without carry. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov r0, #010H |
mov r1, #020H |
mov a, #0FEH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0FDH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0FBH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0F7H |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0EFH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0DFH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #0BFH |
mov @r0, a |
mov @r1, a |
inc r0 |
inc r1 |
mov a, #07FH |
mov @r0, a |
mov @r1, a |
|
;; |
mov r0, #010H |
mov r1, #020H |
mov a, #002H |
add a, @r0 |
jnz fail |
mov a, #002H |
add a, @r1 |
jnz fail |
|
inc r0 |
inc r1 |
mov a, #003H |
add a, @r0 |
jnz fail |
mov a, #003H |
add a, @r1 |
jnz fail |
|
inc r0 |
inc r1 |
mov a, #005H |
add a, @r0 |
jnz fail |
mov a, #005H |
add a, @r1 |
jnz fail |
|
inc r0 |
inc r1 |
mov a, #009H |
add a, @r0 |
jnz fail |
mov a, #009H |
add a, @r1 |
jnz fail |
|
inc r0 |
inc r1 |
mov a, #011H |
add a, @r0 |
jnz fail |
mov a, #011H |
add a, @r1 |
jnz fail |
|
inc r0 |
inc r1 |
mov a, #021H |
add a, @r0 |
jnz fail |
mov a, #021H |
add a, @r1 |
jnz fail |
|
inc r0 |
inc r1 |
mov a, #041H |
add a, @r0 |
jnz fail |
mov a, #041H |
add a, @r1 |
jnz fail |
|
inc r0 |
inc r1 |
mov a, #081H |
add a, @r0 |
jnz fail |
mov a, #081H |
add a, @r1 |
jnz fail |
|
pass: PASS |
|
fail: FAIL |
/tx/t0/ent0_clk/test.asm
0,0 → 1,15
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:18 arniml Exp $ |
;; |
;; Execute ENT0 CLK. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
ent0 clk |
|
pass: PASS |
/tx/t0/t0/test.asm
0,0 → 1,21
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:18 arniml Exp $ |
;; |
;; Test J(N)T0 addr. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
jnt0 fail |
anl P1, #0FEH |
jt0 fail |
orl P1, #001H |
jt0 pass |
|
fail: FAIL |
|
pass: PASS |
/tx/t1/test.asm
0,0 → 1,21
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:18 arniml Exp $ |
;; |
;; Test J(N)T1 addr. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
jnt1 fail |
anl P1, #0FDH |
jt1 fail |
orl P1, #002H |
jt1 pass |
|
fail: FAIL |
|
pass: PASS |
/jbb/jbb_all_0/test.asm
0,0 → 1,20
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #000H |
jb0 fail |
jb1 fail |
jb2 fail |
jb3 fail |
jb4 fail |
jb5 fail |
jb6 fail |
jb7 fail |
|
pass: PASS |
|
fail: FAIL |
/jbb/jbb_all_1/test.asm
0,0 → 1,34
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #0FFH |
jb0 ok_0 |
jmp fail |
|
ok_0: jb1 ok_1 |
jmp fail |
|
ok_1: jb2 ok_2 |
jmp fail |
|
ok_2: jb3 ok_3 |
jmp fail |
|
ok_3: jb4 ok_4 |
jmp fail |
|
ok_4: jb5 ok_5 |
jmp fail |
|
ok_5: jb6 ok_6 |
jmp fail |
|
ok_6: jb7 pass |
|
fail: FAIL |
|
pass: PASS |
/jbb/jbb_55/test.asm
0,0 → 1,36
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:16 arniml Exp $ |
;; |
;; Test the JBb instruction on 055H. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #055H |
jb0 ok_0 |
jmp fail |
|
ok_0: jb1 fail |
|
jb2 ok_2 |
jmp fail |
|
ok_2: jb3 fail |
|
jb4 ok_4 |
jmp fail |
|
ok_4: jb5 fail |
|
jb6 ok_6 |
jmp fail |
|
ok_6: jb7 fail |
|
pass: PASS |
|
fail: FAIL |
/jbb/jbb_aa/test.asm
0,0 → 1,35
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:16 arniml Exp $ |
;; |
;; Test the JBb instruction on 0AAH. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #0AAH |
jb0 fail |
|
jb1 ok_1 |
jmp fail |
|
ok_1: jb2 fail |
|
jb3 ok_3 |
jmp fail |
|
ok_3: jb4 fail |
|
jb5 ok_5 |
jmp fail |
|
ok_5: jb6 fail |
|
jb7 pass |
|
fail: FAIL |
|
pass: PASS |
/djnz/test.asm
0,0 → 1,54
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test DJNZ Rr, addr |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov r0, #003H |
mov a, #000H |
djnz r0, r0_2 |
jmp fail |
|
r0_2: djnz r0, r0_1 |
jmp fail |
r0_1: mov a, #0FFH |
djnz r0, fail |
|
|
mov r1, #000H |
mov r2, #000H |
r1_loop: |
mov a, r2 |
add a, r1 |
jnz fail |
inc r2 |
djnz r1, r1_loop |
|
mov a, r1 |
jnz fail |
|
|
mov a, #002H |
mov r3, a |
mov r4, a |
mov r5, a |
djnz r5, ok_r5 |
jmp fail |
ok_r5: djnz r4, ok_r4 |
jmp fail |
ok_r4: djnz r3, ok_r3 |
jmp fail |
|
ok_r3: djnz r3, fail |
djnz r4, fail |
djnz r5, fail |
|
pass: PASS |
|
fail: FAIL |
/jmpp/test.asm
0,0 → 1,490
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test JMPP. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
table MACRO data |
DB data & 0FFH |
ENDM |
|
ORG 0 |
|
;; Start of test |
mov a, #000H |
jmp table1 |
|
fail: FAIL |
|
pass: PASS |
|
|
;; ******************************************************************* |
ORG 0100H |
;; |
table t1_e00 |
table t1_e01 |
table t1_e02 |
table t1_e03 |
table t1_e04 |
table t1_e05 |
table t1_e06 |
table t1_e07 |
table t1_e08 |
table t1_e09 |
table t1_e0a |
table t1_e0b |
table t1_e0c |
table t1_e0d |
table t1_e0e |
table t1_e0f |
table t1_e10 |
table t1_e11 |
table t1_e12 |
table t1_e13 |
table t1_e14 |
table t1_e15 |
table t1_e16 |
table t1_e17 |
table t1_e18 |
table t1_e19 |
table t1_e1a |
table t1_e1b |
table t1_e1c |
table t1_e1d |
table t1_e1e |
table t1_e1f |
;; |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
;; |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
;; |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
;; |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
;; |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
;; |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
table t1_e01 |
|
jmp fail |
table1: jmpp @a |
jmp fail |
|
t1_e00: mov a, #007H |
jmp table2 |
;; |
t1_e01: jmp fail |
jmp fail |
;; |
t1_e02: mov a, #005H |
jmp table2 |
;; |
t1_e03: jmp fail |
jmp fail |
;; |
t1_e04: mov a, #003H |
jmp table2 |
;; |
t1_e05: jmp fail |
jmp fail |
;; |
t1_e06: mov a, #001H |
jmp table2 |
;; |
t1_e07: jmp fail |
jmp fail |
;; |
t1_e08: jmp fail |
jmp fail |
;; |
t1_e09: jmp fail |
jmp fail |
;; |
t1_e0a: jmp fail |
jmp fail |
;; |
t1_e0b: jmp fail |
jmp fail |
;; |
t1_e0c: jmp fail |
jmp fail |
;; |
t1_e0d: jmp fail |
jmp fail |
;; |
t1_e0e: jmp fail |
jmp fail |
;; |
t1_e0f: jmp fail |
jmp fail |
;; |
t1_e10: mov a, #018H |
jmp table2 |
;; |
t1_e11: jmp fail |
jmp fail |
;; |
t1_e12: jmp fail |
jmp fail |
;; |
t1_e13: jmp fail |
jmp fail |
;; |
t1_e14: jmp fail |
jmp fail |
;; |
t1_e15: jmp fail |
jmp fail |
;; |
t1_e16: jmp fail |
jmp fail |
;; |
t1_e17: jmp fail |
jmp fail |
;; |
t1_e18: jmp fail |
jmp fail |
;; |
t1_e19: jmp fail |
jmp fail |
;; |
t1_e1a: jmp fail |
jmp fail |
;; |
t1_e1b: jmp fail |
jmp fail |
;; |
t1_e1c: jmp fail |
jmp fail |
;; |
t1_e1d: jmp fail |
jmp fail |
;; |
t1_e1e: jmp fail |
jmp fail |
;; |
t1_e1f: jmp pass |
jmp fail |
|
|
;; ******************************************************************* |
ORG 512 |
;; |
table t2_e00 |
table t2_e01 |
table t2_e02 |
table t2_e03 |
table t2_e04 |
table t2_e05 |
table t2_e06 |
table t2_e07 |
table t2_e08 |
table t2_e09 |
table t2_e0a |
table t2_e0b |
table t2_e0c |
table t2_e0d |
table t2_e0e |
table t2_e0f |
table t2_e10 |
table t2_e11 |
table t2_e12 |
table t2_e13 |
table t2_e14 |
table t2_e15 |
table t2_e16 |
table t2_e17 |
table t2_e18 |
table t2_e19 |
table t2_e1a |
table t2_e1b |
table t2_e1c |
table t2_e1d |
table t2_e1e |
table t2_e1f |
;; |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
;; |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
;; |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
;; |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
;; |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
;; |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
table t2_e01 |
|
jmp fail |
table2: jmpp @a |
jmp fail |
|
t2_e00: jmp fail |
jmp fail |
;; |
t2_e01: mov a, #010H |
jmp table1 |
;; |
t2_e02: jmp fail |
jmp fail |
;; |
t2_e03: mov a, #006H |
jmp table1 |
;; |
t2_e04: jmp fail |
jmp fail |
;; |
t2_e05: mov a, #004H |
jmp table1 |
;; |
t2_e06: jmp fail |
jmp fail |
;; |
t2_e07: mov a, #002H |
jmp table1 |
;; |
t2_e08: jmp fail |
jmp fail |
;; |
t2_e09: jmp fail |
jmp fail |
;; |
t2_e0a: jmp fail |
jmp fail |
;; |
t2_e0b: jmp fail |
jmp fail |
;; |
t2_e0c: jmp fail |
jmp fail |
;; |
t2_e0d: jmp fail |
jmp fail |
;; |
t2_e0e: jmp fail |
jmp fail |
;; |
t2_e0f: jmp fail |
jmp fail |
;; |
t2_e10: jmp fail |
jmp fail |
;; |
t2_e11: jmp fail |
jmp fail |
;; |
t2_e12: jmp fail |
jmp fail |
;; |
t2_e13: jmp fail |
jmp fail |
;; |
t2_e14: jmp fail |
jmp fail |
;; |
t2_e15: jmp fail |
jmp fail |
;; |
t2_e16: jmp fail |
jmp fail |
;; |
t2_e17: jmp fail |
jmp fail |
;; |
t2_e18: mov a, #01FH |
jmp table1 |
;; |
t2_e19: jmp fail |
jmp fail |
;; |
t2_e1a: jmp fail |
jmp fail |
;; |
t2_e1b: jmp fail |
jmp fail |
;; |
t2_e1c: jmp fail |
jmp fail |
;; |
t2_e1d: jmp fail |
jmp fail |
;; |
t2_e1e: jmp fail |
jmp fail |
;; |
t2_e1f: jmp fail |
jmp fail |
/in/test.asm
0,0 → 1,29
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:18 arniml Exp $ |
;; |
;; Test IN A, Pp. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #055H |
outl p1, a |
mov a, #0AAH |
outl p2, a |
|
clr a |
in a, p1 |
add a, #0ABH |
jnz fail |
|
in a, p2 |
add a, #056H |
jnz fail |
|
pass: PASS |
|
fail: FAIL |
/inc/a/test.asm
0,0 → 1,34
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:16 arniml Exp $ |
;; |
;; Test INC A. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #000H |
inc a |
add a, #0FFH |
jnz fail |
|
inc a |
jb0 ok_0 |
jmp fail |
|
ok_0: mov a, #0FFH |
inc a |
jnz fail |
|
mov a, #010100101B |
inc a |
add a, #001011001B |
inc a |
jnz fail |
|
pass: PASS |
|
fail: FAIL |
/inc/rr/test.asm
0,0 → 1,243
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:16 arniml Exp $ |
;; |
;; Test INC Rr for RB0 and RB1. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
|
;; fill RB0 |
call fill |
|
;; check RB0 |
call check |
|
;; fill RB1 |
sel rb1 |
call fill |
sel rb0 |
|
;; clear RB0 |
call clr_rb0 |
|
;; check RB1 |
sel rb1 |
call check |
|
;; check RB0 for all 0 |
mov r0, #000H |
mov r1, #008H |
chk0_loop: |
mov a, @r0 |
jnz fail |
inc r0 |
djnz r1, chk0_loop |
|
|
pass: PASS |
|
fail: FAIL |
|
|
ORG 0300H |
fill: mov a, #0FFH |
mov r0, a |
mov r1, a |
mov r2, a |
mov r3, a |
mov r4, a |
mov r5, a |
mov r6, a |
mov r7, a |
ret |
|
clr_rb0: |
mov r0, #007H |
clr a |
clr_loop: |
mov @r0, a |
djnz r0, clr_loop |
ret |
|
check: mov a, #000H |
inc r0 |
jnz fail_p3 |
mov a, r0 |
jnz fail_p3 |
;; |
mov a, r1 |
jz fail_p3 |
mov a, r2 |
jz fail_p3 |
mov a, r3 |
jz fail_p3 |
mov a, r4 |
jz fail_p3 |
mov a, r5 |
jz fail_p3 |
mov a, r6 |
jz fail_p3 |
mov a, r7 |
jz fail_p3 |
|
mov a, #000H |
inc r1 |
jnz fail_p3 |
mov a, r1 |
jnz fail_p3 |
;; |
mov a, r0 |
jnz fail_p3 |
;; |
mov a, r2 |
jz fail_p3 |
mov a, r3 |
jz fail_p3 |
mov a, r4 |
jz fail_p3 |
mov a, r5 |
jz fail_p3 |
mov a, r6 |
jz fail_p3 |
mov a, r7 |
jz fail_p3 |
|
mov a, #000H |
inc r2 |
jnz fail_p3 |
mov a, r2 |
jnz fail_p3 |
;; |
mov a, r0 |
jnz fail_p3 |
mov a, r1 |
jnz fail_p3 |
;; |
mov a, r3 |
jz fail_p3 |
mov a, r4 |
jz fail_p3 |
mov a, r5 |
jz fail_p3 |
mov a, r6 |
jz fail_p3 |
mov a, r7 |
jz fail_p3 |
|
mov a, #000H |
inc r3 |
jnz fail_p3 |
mov a, r3 |
jnz fail_p3 |
;; |
mov a, r0 |
jnz fail_p3 |
mov a, r1 |
jnz fail_p3 |
mov a, r2 |
jnz fail_p3 |
;; |
mov a, r4 |
jz fail_p3 |
mov a, r5 |
jz fail_p3 |
mov a, r6 |
jz fail_p3 |
mov a, r7 |
jz fail_p3 |
|
mov a, #000H |
inc r4 |
jnz fail_p3 |
mov a, r4 |
jnz fail_p3 |
;; |
mov a, r0 |
jnz fail_p3 |
mov a, r1 |
jnz fail_p3 |
mov a, r2 |
jnz fail_p3 |
mov a, r3 |
jnz fail_p3 |
;; |
mov a, r5 |
jz fail_p3 |
mov a, r6 |
jz fail_p3 |
mov a, r7 |
jz fail_p3 |
|
mov a, #000H |
inc r5 |
jnz fail_p3 |
mov a, r5 |
jnz fail_p3 |
;; |
mov a, r0 |
jnz fail_p3 |
mov a, r1 |
jnz fail_p3 |
mov a, r2 |
jnz fail_p3 |
mov a, r3 |
jnz fail_p3 |
mov a, r4 |
jnz fail_p3 |
;; |
mov a, r6 |
jz fail_p3 |
mov a, r7 |
jz fail_p3 |
|
mov a, #000H |
inc r6 |
jnz fail_p3 |
mov a, r6 |
jnz fail_p3 |
;; |
mov a, r0 |
jnz fail_p3 |
mov a, r1 |
jnz fail_p3 |
mov a, r2 |
jnz fail_p3 |
mov a, r3 |
jnz fail_p3 |
mov a, r4 |
jnz fail_p3 |
mov a, r5 |
jnz fail_p3 |
;; |
mov a, r7 |
jz fail_p3 |
|
mov a, #000H |
inc r7 |
jnz fail_p3 |
mov a, r7 |
jnz fail_p3 |
;; |
mov a, r0 |
jnz fail_p3 |
mov a, r1 |
jnz fail_p3 |
mov a, r2 |
jnz fail_p3 |
mov a, r3 |
jnz fail_p3 |
mov a, r4 |
jnz fail_p3 |
mov a, r5 |
jnz fail_p3 |
mov a, r6 |
jnz fail_p3 |
ret |
|
fail_p3: |
FAIL |
/inc/ind_rr/test.asm
0,0 → 1,345
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:16 arniml Exp $ |
;; |
;; Test INC @ Rr for RB0. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #0FFH |
mov r1, a |
mov r2, a |
mov r3, a |
mov r4, a |
mov r5, a |
mov r6, a |
mov r7, a |
|
mov r0, #001H |
mov a, #000H |
inc @r0 |
jnz fail |
mov a, r1 |
jnz fail |
;; |
mov a, r2 |
jz fail |
mov a, r3 |
jz fail |
mov a, r4 |
jz fail |
mov a, r5 |
jz fail |
mov a, r6 |
jz fail |
mov a, r7 |
jz fail |
|
mov a, #000H |
inc r0 |
jnz fail |
inc @r0 |
jnz fail |
mov a, r2 |
jnz fail |
;; |
mov a, r1 |
jnz fail |
;; |
mov a, r3 |
jz fail |
mov a, r4 |
jz fail |
mov a, r5 |
jz fail |
mov a, r6 |
jz fail |
mov a, r7 |
jz fail |
|
mov a, #000H |
inc r0 |
jnz fail |
inc @r0 |
jnz fail |
mov a, r3 |
jnz fail |
;; |
mov a, r1 |
jnz fail |
mov a, r2 |
jnz fail |
;; |
mov a, r4 |
jz fail |
mov a, r5 |
jz fail |
mov a, r6 |
jz fail |
mov a, r7 |
jz fail |
|
mov a, #000H |
inc r0 |
jnz fail |
inc @r0 |
jnz fail |
mov a, r4 |
jnz fail |
;; |
mov a, r1 |
jnz fail |
mov a, r2 |
jnz fail |
mov a, r3 |
jnz fail |
;; |
mov a, r5 |
jz fail |
mov a, r6 |
jz fail |
mov a, r7 |
jz fail |
|
mov a, #000H |
inc r0 |
jnz fail |
inc @r0 |
jnz fail |
mov a, r5 |
jnz fail |
;; |
mov a, r1 |
jnz fail |
mov a, r2 |
jnz fail |
mov a, r3 |
jnz fail |
mov a, r4 |
jnz fail |
;; |
mov a, r6 |
jz fail |
mov a, r7 |
jz fail |
|
mov a, #000H |
inc r0 |
jnz fail |
inc @r0 |
jnz fail |
mov a, r6 |
jnz fail |
;; |
mov a, r1 |
jnz fail |
mov a, r2 |
jnz fail |
mov a, r3 |
jnz fail |
mov a, r4 |
jnz fail |
mov a, r5 |
jnz fail |
;; |
mov a, r7 |
jz fail |
|
mov a, #000H |
inc r0 |
jnz fail |
inc @r0 |
jnz fail |
mov a, r7 |
jnz fail |
;; |
mov a, r1 |
jnz fail |
mov a, r2 |
jnz fail |
mov a, r3 |
jnz fail |
mov a, r4 |
jnz fail |
mov a, r5 |
jnz fail |
mov a, r6 |
jnz fail |
|
jmp test_r1 |
|
fail: FAIL |
|
;; |
ALIGN 256 |
;; |
|
test_r1: |
mov a, #0FFH |
mov r0, a |
mov r2, a |
mov r3, a |
mov r4, a |
mov r5, a |
mov r6, a |
mov r7, a |
|
mov r1, #000H |
mov a, #000H |
inc @r1 |
jnz fail2 |
mov a, r0 |
jnz fail2 |
;; |
mov a, r2 |
jz fail2 |
mov a, r3 |
jz fail2 |
mov a, r4 |
jz fail2 |
mov a, r5 |
jz fail2 |
mov a, r6 |
jz fail2 |
mov a, r7 |
jz fail2 |
|
mov a, #000H |
inc r1 |
inc r1 |
jnz fail2 |
inc @r1 |
jnz fail2 |
mov a, r2 |
jnz fail2 |
;; |
mov a, r0 |
jnz fail2 |
;; |
mov a, r3 |
jz fail2 |
mov a, r4 |
jz fail2 |
mov a, r5 |
jz fail2 |
mov a, r6 |
jz fail2 |
mov a, r7 |
jz fail2 |
|
mov a, #000H |
inc r1 |
jnz fail2 |
inc @r1 |
jnz fail2 |
mov a, r3 |
jnz fail2 |
;; |
mov a, r0 |
jnz fail2 |
mov a, r2 |
jnz fail2 |
;; |
mov a, r4 |
jz fail2 |
mov a, r5 |
jz fail2 |
mov a, r6 |
jz fail2 |
mov a, r7 |
jz fail2 |
|
mov a, #000H |
inc r1 |
jnz fail2 |
inc @r1 |
jnz fail2 |
mov a, r4 |
jnz fail2 |
;; |
mov a, r0 |
jnz fail2 |
mov a, r2 |
jnz fail2 |
mov a, r3 |
jnz fail2 |
;; |
mov a, r5 |
jz fail2 |
mov a, r6 |
jz fail2 |
mov a, r7 |
jz fail2 |
|
mov a, #000H |
inc r1 |
jnz fail2 |
inc @r1 |
jnz fail2 |
mov a, r5 |
jnz fail2 |
;; |
mov a, r0 |
jnz fail2 |
mov a, r2 |
jnz fail2 |
mov a, r3 |
jnz fail2 |
mov a, r4 |
jnz fail2 |
;; |
mov a, r6 |
jz fail2 |
mov a, r7 |
jz fail2 |
|
mov a, #000H |
inc r1 |
jnz fail2 |
inc @r1 |
jnz fail2 |
mov a, r6 |
jnz fail2 |
;; |
mov a, r0 |
jnz fail2 |
mov a, r2 |
jnz fail2 |
mov a, r3 |
jnz fail2 |
mov a, r4 |
jnz fail2 |
mov a, r5 |
jnz fail2 |
;; |
mov a, r7 |
jz fail2 |
|
mov a, #000H |
inc r1 |
jnz fail2 |
inc @r1 |
jnz fail2 |
mov a, r7 |
jnz fail2 |
;; |
mov a, r0 |
jnz fail2 |
mov a, r2 |
jnz fail2 |
mov a, r3 |
jnz fail2 |
mov a, r4 |
jnz fail2 |
mov a, r5 |
jnz fail2 |
mov a, r6 |
jnz fail2 |
|
pass: PASS |
|
fail2: FAIL |
/jnc/test.asm
0,0 → 1,22
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test JNC instruction. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
jnc ok_1 |
jmp fail |
|
ok_1: mov a, #0FFH |
add a, #001H |
jnc fail |
|
pass: PASS |
|
fail: FAIL |
/swap/test.asm
0,0 → 1,25
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test SWAP A. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #05AH |
swap a |
add a, #05BH |
jnz fail |
|
mov a, #0C8H |
swap a |
add a, #074H |
jnz fail |
|
pass: PASS |
|
fail: FAIL |
/cpl/a/test.asm
0,0 → 1,28
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test CPL A. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
mov a, #0FFH |
cpl a |
jnz fail |
|
cpl a |
inc a |
jnz fail |
|
mov a, #055H |
cpl a |
add a, #01010110B |
jnz fail |
|
pass: PASS |
|
fail: FAIL |
/cpl/c/test.asm
0,0 → 1,31
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test CPL C. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
jc fail |
|
cpl c |
jnc fail |
|
mov a, #0FEH |
add a, #001H |
jc fail |
cpl c |
jnc fail |
|
add a, #001H |
jnc fail |
cpl c |
jc fail |
|
pass: PASS |
|
fail: FAIL |
/cpl/f0/test.asm
0,0 → 1,23
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test CPL F0. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
jf0 fail |
cpl f0 |
jf0 ok_1 |
jmp fail |
|
ok_1: cpl f0 |
jf0 fail |
|
pass: PASS |
|
fail: FAIL |
/cpl/f1/test.asm
0,0 → 1,23
;; ******************************************************************* |
;; $Id: test.asm,v 1.1.1.1 2004-03-25 22:29:17 arniml Exp $ |
;; |
;; Test CPL F1. |
;; ******************************************************************* |
|
INCLUDE "cpu.inc" |
INCLUDE "pass_fail.inc" |
|
ORG 0 |
|
;; Start of test |
jf1 fail |
cpl f1 |
jf1 ok_1 |
jmp fail |
|
ok_1: cpl f1 |
jf1 fail |
|
pass: PASS |
|
fail: FAIL |