]> rtime.felk.cvut.cz Git - sysless.git/blob - arch/mcs51/generic/libs/ulan/ul_drv_fnc.c
93085c7f1ff560c690683579ac0ab059d55e4587
[sysless.git] / arch / mcs51 / generic / libs / ulan / ul_drv_fnc.c
1 #include <cpu_def.h>
2 #include "ul_drv_fnc.h"
3
4 #ifdef SDCC
5 #ifndef SDCC_MODEL_LARGE
6 __data uchar ul_dy_len;
7 #endif /* SDCC_MODEL_LARGE */
8 #endif /* SDCC */
9
10 #ifdef SDCC
11 unsigned long ul_drv_get_sn() 
12 {
13   __asm
14         mov  dptr,#ser_num
15         movx a,@dptr
16         mov  r2,a
17         inc  dptr
18         movx a,@dptr
19         mov  r3,a
20         inc  dptr
21         movx a,@dptr
22         mov  b,a
23         inc  dptr
24         movx a,@dptr
25         mov  dpl,r2
26         mov  dph,r3
27   __endasm;
28 }
29 #else
30 #error "unsuported compiler!"
31 #endif
32
33 #ifdef SDCC
34 void ul_drv_set_sn(unsigned long sn) 
35 {
36   __asm
37         mov  r2,a
38         mov  r3,dpl
39         mov  r4,dph
40         mov  dptr,#ser_num
41         mov  a,r3
42         movx @dptr,a
43         inc  dptr
44         mov  a,r4
45         movx @dptr,a
46         inc  dptr
47         mov  a,b
48         movx @dptr,a
49         inc  dptr
50         mov  a,r2
51         movx @dptr,a
52   __endasm;
53 }
54 #else
55 #error "unsuported compiler!"
56 #endif
57
58
59 #ifdef SDCC
60 ul_idstr_t *ul_drv_get_idstr() 
61 {
62   __asm
63         mov  dptr,#_ul_idstr
64         mov  b,#0x80
65   __endasm;
66 }
67 #else
68 #error "unsuported compiler!"
69 #endif
70
71 #ifdef SDCC
72 unsigned char ul_drv_get_adr()
73 {
74   __asm
75         mov  dptr,#ul_adr
76         movx a,@dptr
77         mov  dpl,a
78   __endasm;
79 }
80 #else
81 #error "unsuported compiler!"
82 #endif
83
84 #ifdef SDCC
85 unsigned char ul_drv_get_dysa()
86 {
87   __asm
88         mov  dptr,#ud_dysa
89         movx a,@dptr
90         mov  dpl,a
91   __endasm;
92 }
93 #else
94 #error "unsuported compiler!"
95 #endif
96
97 #ifdef SDCC
98 char ul_drv_rqa() UL_FNC_NAKED
99
100   __asm
101         .globl ul_t_rqa
102         lcall ul_t_rqa
103         mov   dpl,a
104     #ifdef UL_WITH_NAKED
105         ret
106     #endif /*UL_WITH_NAKED*/
107   __endasm;
108 }
109 #else
110 #error "unsuported compiler!"
111 #endif
112
113 #ifdef SDCC
114 void ul_drv_clr_rq() 
115
116   __asm
117         mov  a,ul_fld
118         anl  a,#0xF8
119         mov  ul_fld,a
120   __endasm;
121 }
122 #else
123 #error "unsuported compiler!"
124 #endif
125
126 #ifdef SDCC
127 #ifndef SDCC_MODEL_LARGE
128 void ul_drv_set_status(uchar UL_ARGPTRTYPE *status,uchar len) 
129 {
130   ul_dy_len=len;
131   __asm
132         mov  r2,dpl
133         mov  r3,dph
134         mov  dptr,#ud_stad
135         mov  a,r2
136         movx @dptr,a
137         inc  dptr
138         mov  a,r3
139         movx @dptr,a
140         inc  dptr
141         mov  a,_ul_dy_len
142         movx @dptr,a   
143   __endasm;
144 }
145 #else
146 void ul_drv_set_status(uchar UL_ARGPTRTYPE *status,uchar len) UL_FNC_REENTRANT UL_FNC_NAKED
147 {
148   __asm
149         mov  a,sp
150     #ifdef UL_WITH_NAKED
151         add  a,#-3
152     #else /*UL_WITH_NAKED*/
153         add  a,#-4
154     #endif /*UL_WITH_NAKED*/
155         mov  r0,a
156         mov  a,@r0
157         mov  r4,a
158         mov  r2,dpl
159         mov  r3,dph
160         mov  dptr,#ud_stad
161         mov  a,r2
162         movx @dptr,a
163         inc  dptr
164         mov  a,r3
165         movx @dptr,a
166         inc  dptr
167         mov  a,r4
168         movx @dptr,a
169     #ifdef UL_WITH_NAKED
170         ret
171     #endif /*UL_WITH_NAKED*/
172   __endasm;
173 }
174 #endif /* SDCC_MODEL_LARGE */
175 #else
176 #error "unsuported compiler!"
177 #endif