head	1.3;
access;
symbols
	rel_19:1.3
	rel_12:1.3
	rel_2:1.3
	rel_1:1.2
	rel0:1.1.1.1
	simont:1.1.1;
locks; strict;
comment	@;; @;


1.3
date	2003.06.05.11.09.29;	author simont;	state Exp;
branches;
next	1.2;

1.2
date	2003.04.25.17.14.25;	author simont;	state Exp;
branches;
next	1.1;

1.1
date	2002.07.29.13.33.17;	author simont;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	2002.07.29.13.33.17;	author simont;	state Exp;
branches;
next	;


desc
@@


1.3
log
@add aditional tests.
@
text
@; r0: timer 0 owerflov counter
; r1: timer 1 owerflov counter
; r2: error code
; r3: timer high expected value
; r4: timer low expected value
; r5: owerflov counter expected value

	ajmp start;

	org 03h		;external interrupt 0
	reti;

	org 0bh		;t/c 0 interrupt
	inc r0;
	nop;
	nop;
	nop;
	nop;
	reti;

	org 13h		;external interrupt 1
	reti;

	org 1bh		;t/c 1 interrupt
	inc r1;
	nop;
	nop;
	nop;
	nop;
	reti;

	org 23h		;serial interface interrupt
	reti;


test0:
	mov a, th0	;
	subb a, r3	;
	jnz error	;
	inc r2		;
	mov a,tl0	;
	subb a, r4	;
	jnz error	;
	inc r2		;
	mov a, r0	;
	subb a, r5	;
	jnz error	;
	ret;

test1:
	mov a, th1	;
	subb a, r3	;
	jnz error	;
	inc r2		;
	mov a,tl1	;
	subb a, r4	;
	jnz error	;
	inc r2		;
	mov a, r1	;
	subb a, r5	;
	jnz error	;
	ret;


error:
	mov p0, r2;
	nop;
	ajmp error;

wait:
	dec a		; 1
	nop		; 1
	nop		; 1
	nop		; 1
	nop		; 1
	nop		; 1
	nop		; 1
	nop		; 1
	jnz wait	; 4
	ret		; 4


start:
	clr a;
	mov r0, a;
	mov r1, a;
	mov ie, #08ah	;enable interrupts
	clr c;

;
; timer 0 test
;
; mode 0
;
	mov tmod, #000h	;t/c 0 and t/c 1 in timer mode 0
	mov th0, #000h	;load timer 0
	mov tl0, #000h	;
	mov tcon, #010h	;start timer 0;

	mov a, #03h	; 1
	acall wait	; 3
	nop;
	nop;
	nop;


	clr tcon.4	;stop timer 0
	mov r2, #010h	;
	mov r3, #000h	;
	mov r4, #004h	;
	mov r5, #000h	;
	acall test0	;

	mov tl0, #01ch	; load timer 0
	setb tcon.4	;start timer 0;

	mov a, #04h	; 1
	acall wait	; 2
	nop;
	nop;
	nop;
	clr tcon.4	;stop timer 0;
	mov r2, #020h	;
	mov r3, #001h	;
	mov r4, #001h	;
	mov r5, #000h	;
	acall test0	;

	mov tl0, #01ch	;
	mov th0, #0ffh	;
	setb tcon.4	;start timer 0
	mov a, #05h	;
	acall wait	;
	nop;
	nop;
	nop;
	clr tcon.4	;stop timer 0
	mov r2, #030h	;
	mov r3, #000h	;
	mov r4, #003h	;
	mov r5, #001h	;
	acall test0	;
;
; mode 1
;
	mov tmod, #001h	; t/c 0 in mode 1
	mov th0, #000h	;load timer 0
	mov tl0, #000h	;
	setb tcon.4	;start timer 0;
	mov a, #03h	;
	acall wait	;
	nop;
	nop;
	nop;
	clr tcon.4	;stop timer 0
	mov r2, #040h	;
	mov r3, #000h	;
	mov r4, #004h	;
	mov r5, #001h	;
	acall test0	;

	mov tl0, #0fch	; load timer 0
	setb tcon.4	;start timer 0;
	mov a, #04h	;
	acall wait	;
	nop;
	nop;
	nop;
	clr tcon.4	;stop timer 0;
	mov r2, #050h	;
	mov r3, #001h	;
	mov r4, #001h	;
	mov r5, #001h	;
	acall test0	;

	mov tl0, #0fch	;
	mov th0, #0ffh	;
	setb tcon.4	;start timer 0
	mov a, #05h	;
	acall wait	;
	nop;
	nop;
	nop;
	clr tcon.4	;stop timer 0
	mov r2, #060h	;
	mov r3, #000h	;
	mov r4, #003h	;
	mov r5, #002h	;
	acall test0	;
;
; mode 2
;
	mov tmod, #002h	; t/c 0 in mode 2
	mov th0, #000h	;load timer 0
	mov tl0, #005h	;
	setb tcon.4	;start timer 0;
	mov a, #03h	;
	acall wait	;
	nop;
	nop;
	nop;
	clr tcon.4	;stop timer 0
	mov r2, #070h	;
	mov r3, #000h	;
	mov r4, #009h	;
	mov r5, #002h	;
	acall test0	;

	mov tl0, #0fch	; load timer 0
	mov th0, #050h	;
	setb tcon.4	;start timer 0;
	mov a, #05h	;
	acall wait	;
	nop;
	nop;
	nop;
	clr tcon.4	;stop timer 0;
	mov r2, #080h	;
	mov r3, #050h	;
	mov r4, #053h	;
	mov r5, #003h	;
	acall test0	;
;
; mode 3
;
	mov tmod, #003h	; t/c 0 in mode 3
	mov th0, #000h	;load timer 0
	mov tl0, #000h	;
	setb tcon.4	;start timer 0;
	mov a, #03h	;
	acall wait	;
	nop;
	nop;
	nop;
	clr tcon.4	;stop timer 0
	mov r2, #090h	;
	mov r3, #000h	;
	mov r4, #004h	;
	mov r5, #003h	;
	acall test0	;

	mov tl0, #0fch	; load timer 0
	mov th0, #000h	;
	setb tcon.4	;start timer 0
	mov a, #05h	;
	acall wait	;
	nop;
	nop;
	nop;
	clr tcon.4	;stop timer 0
	mov r2, #0a0h	;
	mov r3, #000h	;
	mov r4, #003h	;
	mov r5, #004h	;
	acall test0	;

	mov tl0, #000h	; load timer 0
	mov th0, #000h	;
	setb tcon.6	; start timer 1
	mov a, #03h	;
	acall wait	;
	nop;
	nop;
	nop;
	clr tcon.6	; stop timer 1
	mov r2, #0b0h	;
	mov r3, #004h	;
	mov r4, #000h	;
	mov r5, #004h	;
	acall test0	;

	mov tl0, #000h	; load timer 0
	mov th0, #0fch	;
	setb tcon.6	;start timer 1
	mov a, #05h	;
	acall wait	;
	nop;
	nop;
	nop;
	clr tcon.6	;stop timer 1
	mov r2, #0c0h	;
	mov r3, #003h	;
	mov r4, #000h	;
	mov r5, #001h	;
	mov r0, 01h	;
	acall test0	;

	mov p0, #001h	; test timer 0 done!
	mov r1, #000h	;

;
; timer 1 test
;
; mode 0
;
	mov tmod, #000h	;t/c 0 and t/c 1 in timer mode 0
	mov th1, #000h	;load timer 1
	mov tl1, #000h	;
	mov tcon, #040h	;start timer 1;
	mov a, #03h	;
	acall wait	;
	nop;
	nop;
	nop;
	clr tcon.6	;stop timer 1
	mov r2, #018h	;
	mov r3, #000h	;
	mov r4, #004h	;
	mov r5, #000h	;
	acall test1	;

	mov tl1, #01ch	; load timer 1
	setb tcon.6	;start timer 1
	mov a, #04h	;
	acall wait	;
	nop;
	nop;
	nop;
	clr tcon.6	;stop timer 1
	mov r2, #028h	;
	mov r3, #001h	;
	mov r4, #001h	;
	mov r5, #000h	;
	acall test1	;

	mov tl1, #01ch	;
	mov th1, #0ffh	;
	setb tcon.6	;start timer 1
	mov a, #05h	;
	acall wait	;
	nop;
	nop;
	nop;
	clr tcon.6	;stop timer 1
	mov r2, #038h	;
	mov r3, #000h	;
	mov r4, #003h	;
	mov r5, #001h	;
	acall test1	;
;
; mode 1
;
	mov tmod, #010h	; t/c 1 in mode 1
	mov th1, #000h	;load timer 1
	mov tl1, #000h	;
	setb tcon.6	;start timer 1
	mov a, #03h	;
	acall wait	;
	nop;
	nop;
	nop;
	clr tcon.6	;stop timer 1
	mov r2, #048h	;
	mov r3, #000h	;
	mov r4, #004h	;
	mov r5, #001h	;
	acall test1	;

	mov tl1, #0fch	; load timer 1
	setb tcon.6	; start timer 1
	mov a, #04h	;
	acall wait	;
	nop;
	nop;
	nop;
	clr tcon.6	;stop timer 1
	mov r2, #058h	;
	mov r3, #001h	;
	mov r4, #001h	;
	mov r5, #001h	;
	acall test1	;

	mov tl1, #0fch	;
	mov th1, #0ffh	;
	setb tcon.6	;start timer 1
	mov a, #05h	;
	acall wait	;
	nop;
	nop;
	nop;
	clr tcon.6	;stop timer 1
	mov r2, #068h	;
	mov r3, #000h	;
	mov r4, #004h	;
	mov r5, #002h	;
	acall test1	;
;
; mode 2
;
	mov tmod, #020h	; t/c 1 in mode 2
	mov th1, #000h	;load timer 1
	mov tl1, #005h	;
	setb tcon.6	;start timer 1
	mov a, #03h	;
	acall wait	;
	nop;
	nop;
	clr tcon.6	;stop timer 1
	mov r2, #078h	;
	mov r3, #000h	;
	mov r4, #009h	;
	mov r5, #002h	;
	acall test1	;

	mov tl1, #0fch	; load timer 1
	mov th1, #050h	;
	setb tcon.6	;start timer 1
	mov a, #04h	;
	acall wait	;
	nop;
	nop;
	nop;
	clr tcon.6	;stop timer 1
	mov r2, #088h	;
	mov r3, #050h	;
	mov r4, #052h	;
	mov r5, #003h	;
	acall test1	;
;
; mode 3
;
	mov tmod, #030h	; t/c 1 in mode 3
	mov th1, #000h	;load timer 1
	mov tl1, #000h	;
	setb tcon.6	;start timer 1
	mov a, #03h	;
	acall wait	;
	nop;
	nop;
	nop;
	clr tcon.6	;stop timer 1
	mov r2, #098h	;
	mov r3, #000h	;
	mov r4, #000h	;
	mov r5, #003h	;
	acall test1	;

	mov tl1, #0fch	; load timer 1
	mov th1, #0ffh	;
	setb tcon.6	;start timer 1
	mov a, #05h	;
	acall wait	;
	nop;
	nop;
	nop;
	clr tcon.6	;stop timer 1
	mov r2, #0a8h	;
	mov r3, #0ffh	;
	mov r4, #0fch	;
	mov r5, #003h	;
	acall test1	;

	mov p0, #002h	; test timer 1 done!

end

@


1.2
log
@prepare programs for new timing.
@
text
@d15 4
d26 4
d79 2
a80 4
	nop		; 1
	nop		; 1
	jnz wait	; 2
	reti		; 4
d101 1
a101 2
	acall wait	; 2
	nop;
a121 1
	nop;
a136 1
	nop;
d140 1
a140 1
	mov r4, #002h	;
a154 1
	nop;
a168 1
	nop;
a183 1
	nop;
d187 1
a187 1
	mov r4, #002h	;
a201 1
	nop;
a216 5
	nop;
;	nop		; tl0=fd
;	nop		; tl0=fe
;	nop		; tl0=ff
;	nop		; tl0=50
a234 1
	nop;
a249 1
	nop;
a264 1
	nop;
a279 1
	nop;
d282 1
a282 1
	mov r3, #002h	;
a304 1
	nop;
a318 1
	nop;
a333 1
	nop;
a351 1
	nop;
a365 1
	nop;
a380 1
	nop;
d384 1
a384 1
	mov r4, #003h	;
a397 2
	nop;
	nop;
a412 1
	nop;
d416 1
a416 1
	mov r4, #051h	;
a430 1
	nop;
a442 1
	nop;
@


1.1
log
@Initial revision
@
text
@d1 477
a477 409
; r0: timer 0 owerflov counter
; r1: timer 1 owerflov counter
; r2: error code
; r3: timer high expected value
; r4: timer low expected value
; r5: owerflov counter expected value

	ajmp start;

	.org 03h	;external interrupt 0
	reti;

	.org 0bh	;t/c 0 interrupt
	inc r0;
	reti;

	.org 13h	;external interrupt 1
	reti;

	.org 1bh	;t/c 1 interrupt
	inc r1;
	reti;

	.org 23h	;serial interface interrupt
	reti;


test0:
	mov a, th0	;
	subb a, r3	;
	jnz error	;
	inc r2		;
	mov a,tl0	;
	subb a, r4	;
	jnz error	;
	inc r2		;
	mov a, r0	;
	subb a, r5	;
	jnz error	;
	ret;

test1:
	mov a, th1	;
	subb a, r3	;
	jnz error	;
	inc r2		;
	mov a,tl1	;
	subb a, r4	;
	jnz error	;
	inc r2		;
	mov a, r1	;
	subb a, r5	;
	jnz error	;
	ret;


error:
	mov p0, r2;
	nop;
	ajmp error;


start:
	clr a;
	mov r0, a;
	mov r1, a;
	mov ie, #08ah	;enable interrupts
	clr c;

;
; timer 0 test
;
; mode 0
;
	mov tmod, #000h	;t/c 0 and t/c 1 in timer mode 0
	mov th0, #000h	;load timer 0
	mov tl0, #000h	;
	mov tcon, #010h	;start timer 0;
	nop;
	nop;
	nop;
	clr tcon.4	;stop timer 0
	mov r2, #010h	;
	mov r3, #000h	;
	mov r4, #004h	;
	mov r5, #000h	;
	acall test0	;

	mov tl0, #01ch	; load timer 0
	setb tcon.4	;start timer 0;
	nop;
	nop;
	nop;
	nop;
	clr tcon.4	;stop timer 0;
	mov r2, #020h	;
	mov r3, #001h	;
	mov r4, #001h	;
	mov r5, #000h	;
	acall test0	;

	mov tl0, #01ch	;
	mov th0, #0ffh	;
	setb tcon.4	;start timer 0
	nop;
	nop;
	nop;
	nop;
	nop;
	clr tcon.4	;stop timer 0
	mov r2, #030h	;
	mov r3, #000h	;
	mov r4, #002h	;
	mov r5, #001h	;
	acall test0	;
;
; mode 1
;
	mov tmod, #001h	; t/c 0 in mode 1
	mov th0, #000h	;load timer 0
	mov tl0, #000h	;
	setb tcon.4	;start timer 0;
	nop;
	nop;
	nop;
	clr tcon.4	;stop timer 0
	mov r2, #040h	;
	mov r3, #000h	;
	mov r4, #004h	;
	mov r5, #001h	;
	acall test0	;

	mov tl0, #0fch	; load timer 0
	setb tcon.4	;start timer 0;
	nop;
	nop;
	nop;
	nop;
	clr tcon.4	;stop timer 0;
	mov r2, #050h	;
	mov r3, #001h	;
	mov r4, #001h	;
	mov r5, #001h	;
	acall test0	;

	mov tl0, #0fch	;
	mov th0, #0ffh	;
	setb tcon.4	;start timer 0
	nop;
	nop;
	nop;
	nop;
	nop;
	clr tcon.4	;stop timer 0
	mov r2, #060h	;
	mov r3, #000h	;
	mov r4, #002h	;
	mov r5, #002h	;
	acall test0	;
;
; mode 2
;
	mov tmod, #002h	; t/c 0 in mode 2
	mov th0, #000h	;load timer 0
	mov tl0, #005h	;
	setb tcon.4	;start timer 0;
	nop;
	nop;
	nop;
	clr tcon.4	;stop timer 0
	mov r2, #070h	;
	mov r3, #000h	;
	mov r4, #009h	;
	mov r5, #002h	;
	acall test0	;

	mov tl0, #0fch	; load timer 0
	mov th0, #050h	;
	setb tcon.4	;start timer 0;
	nop		; tl0=fd
	nop		; tl0=fe
	nop		; tl0=ff
	nop		; tl0=50
	clr tcon.4	;stop timer 0;
	mov r2, #080h	;
	mov r3, #050h	;
	mov r4, #051h	;
	mov r5, #003h	;
	acall test0	;
;
; mode 3
;
	mov tmod, #003h	; t/c 0 in mode 3
	mov th0, #000h	;load timer 0
	mov tl0, #000h	;
	setb tcon.4	;start timer 0;
	nop;
	nop;
	nop;
	clr tcon.4	;stop timer 0
	mov r2, #090h	;
	mov r3, #000h	;
	mov r4, #004h	;
	mov r5, #003h	;
	acall test0	;

	mov tl0, #0fch	; load timer 0
	mov th0, #000h	;
	setb tcon.4	;start timer 0
	nop		; tl0=fd
	nop		; tl0=fe
	nop		; tl0=ff
	nop		; tl0=00
	nop		; tl0=01
	clr tcon.4	;stop timer 0
	mov r2, #0a0h	;
	mov r3, #000h	;
	mov r4, #002h	;
	mov r5, #004h	;
	acall test0	;

	mov tl0, #000h	; load timer 0
	mov th0, #000h	;
	setb tcon.6	; start timer 1
	nop		;
	nop		;
	nop		;
	clr tcon.6	; stop timer 1
	mov r2, #0b0h	;
	mov r3, #004h	;
	mov r4, #000h	;
	mov r5, #004h	;
	acall test0	;

	mov tl0, #000h	; load timer 0
	mov th0, #0fch	;
	setb tcon.6	;start timer 1
	nop		; th0=fd
	nop		; th0=fe
	nop		; th0=ff
	nop		; th0=00
	nop		; th0=01
	clr tcon.6	;stop timer 1
	mov r2, #0c0h	;
	mov r3, #002h	;
	mov r4, #000h	;
	mov r5, #001h	;
	mov r0, 01h	;
	acall test0	;

	mov p0, #001h	; test timer 0 done!
	mov r1, #000h	;

;
; timer 1 test
;
; mode 0
;
	mov tmod, #000h	;t/c 0 and t/c 1 in timer mode 0
	mov th1, #000h	;load timer 1
	mov tl1, #000h	;
	mov tcon, #040h	;start timer 1;
	nop;
	nop;
	nop;
	clr tcon.6	;stop timer 1
	mov r2, #018h	;
	mov r3, #000h	;
	mov r4, #004h	;
	mov r5, #000h	;
	acall test1	;

	mov tl1, #01ch	; load timer 1
	setb tcon.6	;start timer 1
	nop;
	nop;
	nop;
	nop;
	clr tcon.6	;stop timer 1
	mov r2, #028h	;
	mov r3, #001h	;
	mov r4, #001h	;
	mov r5, #000h	;
	acall test1	;

	mov tl1, #01ch	;
	mov th1, #0ffh	;
	setb tcon.6	;start timer 1
	nop;
	nop;
	nop;
	nop;
	nop;
	clr tcon.6	;stop timer 1
	mov r2, #038h	;
	mov r3, #000h	;
	mov r4, #002h	;
	mov r5, #001h	;
	acall test1	;
;
; mode 1
;
	mov tmod, #010h	; t/c 1 in mode 1
	mov th1, #000h	;load timer 1
	mov tl1, #000h	;
	setb tcon.6	;start timer 1
	nop;
	nop;
	nop;
	clr tcon.6	;stop timer 1
	mov r2, #048h	;
	mov r3, #000h	;
	mov r4, #004h	;
	mov r5, #001h	;
	acall test1	;

	mov tl1, #0fch	; load timer 1
	setb tcon.6	; start timer 1
	nop;
	nop;
	nop;
	nop;
	clr tcon.6	;stop timer 1
	mov r2, #058h	;
	mov r3, #001h	;
	mov r4, #001h	;
	mov r5, #001h	;
	acall test1	;

	mov tl1, #0fch	;
	mov th1, #0ffh	;
	setb tcon.6	;start timer 1
	nop;
	nop;
	nop;
	nop;
	nop;
	clr tcon.6	;stop timer 1
	mov r2, #068h	;
	mov r3, #000h	;
	mov r4, #002h	;
	mov r5, #002h	;
	acall test1	;
;
; mode 2
;
	mov tmod, #020h	; t/c 1 in mode 2
	mov th1, #000h	;load timer 1
	mov tl1, #005h	;
	setb tcon.6	;start timer 1
	nop;
	nop;
	nop;
	clr tcon.6	;stop timer 1
	mov r2, #078h	;
	mov r3, #000h	;
	mov r4, #009h	;
	mov r5, #002h	;
	acall test1	;

	mov tl1, #0fch	; load timer 1
	mov th1, #050h	;
	setb tcon.6	;start timer 1
	nop		; tl1=fd
	nop		; tl1=fe
	nop		; tl1=ff
	nop		; tl1=50
	clr tcon.6	;stop timer 1
	mov r2, #088h	;
	mov r3, #050h	;
	mov r4, #051h	;
	mov r5, #003h	;
	acall test1	;
;
; mode 3
;
	mov tmod, #030h	; t/c 1 in mode 3
	mov th1, #000h	;load timer 1
	mov tl1, #000h	;
	setb tcon.6	;start timer 1
	nop;
	nop;
	nop;
	clr tcon.6	;stop timer 1
	mov r2, #098h	;
	mov r3, #000h	;
	mov r4, #000h	;
	mov r5, #003h	;
	acall test1	;

	mov tl1, #0fch	; load timer 1
	mov th1, #0ffh	;
	setb tcon.6	;start timer 1
	nop		;
	nop		;
	nop		;
	nop		;
	nop		;
	clr tcon.6	;stop timer 1
	mov r2, #0a8h	;
	mov r3, #0ffh	;
	mov r4, #0fch	;
	mov r5, #003h	;
	acall test1	;

	mov p0, #002h	; test timer 1 done!



@


1.1.1.1
log
@Initial CVS import
@
text
@@
