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

Subversion Repositories t48

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /t48/tags/rel_1_1/sw/verif/black_box
    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

powered by: WebSVN 2.1.0

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