Steve Tell fixed a nested for-loop bug in the PIC Port
[fw/sdcc] / src / regression / inline.c
1 #define __16F873
2 #include "p16f873.h"
3 unsigned char success=0;
4 unsigned char failures=0;
5 unsigned char dummy=0;
6
7 unsigned char test_tris=0;
8
9 #define PORTA_ADR  5
10 #define PORTB_ADR  6
11 #define TRISA_ADR  0x85
12 #define TRISB_ADR  0x86
13
14 data at TRISA_ADR unsigned char  TRISA;
15
16 void done(void)
17 {
18
19   dummy++;
20
21 }
22
23 void
24 delay_1ms(void)
25 {
26   unsigned char cnt1m = 2;
27   unsigned char cnt500u = 249;
28
29   do {
30     do {
31       _asm
32         nop
33         nop
34       _endasm;
35     } while (--cnt500u > 0);
36   } while (--cnt1m > 0);
37 }
38
39
40 void main(void)
41 {
42   dummy = 0;
43
44   TRISA = 0x0f;
45
46   _asm
47     BSF   STATUS,RP0
48     MOVF  TRISA,W
49     BCF   STATUS,RP0
50     MOVWF _test_tris
51   _endasm;
52
53   if(test_tris != 0x0f)
54     failures++;
55
56   success = failures;
57   done();
58 }