summaryrefslogtreecommitdiff
path: root/frontends/calculator/CEdev/lib/shared/bremu.src
blob: 758e765067c68478f9d1d79b54ce6cf14d7dd525 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
; (c) Copyright 2007-2008 Zilog, Inc.
;-------------------------------------------------------------------------
; Unsigned Byte Modulus
; Input:
;	Operand1: 
;                 A : 8 bit dividend (numerator)
;
;	Operand2: 
;                 C : 8 bit divisor (denominator)
;
; Output:
;	Result:   A : 8 bit modulus
; Registers Used:
;	none
;-------------------------------------------------------------------------
	.def __bremu
	.assume adl=1

__bremu:
	push	bc
	push	hl
	ld	h,a
	xor	a,a
	ld	b,8
loop:
	sla	h
	rla
	jr	c,over
	cp	a,c
	jr	c,under
over:
	sub	a,c
	inc	h
under:
	djnz	loop
	pop	hl
	pop	bc
	ret