1
2; ===============================================================
3; Nov 2013
4; ===============================================================
5;
6; int abs(int j)
7;
8; Return absolute value of j.
9;
10; ===============================================================
11
12SECTION code_clib
13SECTION code_stdlib
14
15PUBLIC asm_abs
16
17EXTERN l_neg_hl
18
19asm_abs:
20
21   ; enter : hl = int j
22   ;
23   ; exit  : hl = abs(j)
24   ;
25   ; uses  : af, hl, carry unaffected (not 808x)
26IF __CPU_INTEL__
27   ld a,h
28   rla
29   ret nc
30ELSE
31   bit 7,h
32   ret z
33ENDIF
34
35   jp l_neg_hl
36