]> rtime.felk.cvut.cz Git - can-usb1.git/blob - ulan/embedded/arch/mcs51/generic/libs/misc/vect_fnc.asm
Initializing repo
[can-usb1.git] / ulan / embedded / arch / mcs51 / generic / libs / misc / vect_fnc.asm
1 $INCLUDE(cf_vect.inc)\r
2
3 %IF(%TGT_MSC1210)THEN(
4 EICON   DATA  0D8H
5 AIE     DATA  0A6H
6 EIE     DATA  0E8H
7 PDCON   DATA  0F1H
8 EWU     DATA  0C6H
9 )FI
10
11 %IF(%TGT_T89C51RD2)THEN(
12 FCON    DATA  0D1H
13 AUXR1   DATA  0A2H
14 )FI
15
16 PUBLIC  VEC_SET,VEC_USR,VEC_GET
17 EXTRN CODE(_SETUP_BOARD)
18
19 %IF(%FOR_SDCC)THEN(
20 PUBLIC __SDCC_EXTERNAL_STARTUP
21 )ELSE(
22 EXTRN CODE(?C_START)
23 PUBLIC ?C_STARTUP
24 ?STACK__I SEGMENT IDATA
25         RSEG    ?STACK__I
26         DS      1
27 )FI
28
29 C51START__C SEGMENT CODE
30
31         RSEG    C51START__C
32
33 %IF(%FOR_BOOTLOADER)THEN(
34 CSEG AT 0000H
35         JMP   080H        ;  BOOTLOADER STARTUP CODE
36         JMP   VEC_CAR+03H ;  EXTI0
37         JMP   VEC_CAR+06H ;  SYS_FNC
38         DS    2
39         JMP   VEC_CAR+0BH ;  TIMER0
40         JMP   VEC_CAR+0EH ;
41         DS    2
42         JMP   VEC_CAR+13H ;  EXTI1
43         JMP   VEC_CAR+16H ;
44         DS    2
45         JMP   VEC_CAR+1BH ;  TIMER1
46         JMP   VEC_CAR+1EH ;  V_uL_ADD
47         DS    2
48         JMP   VEC_CAR+23H ;  SINT
49         JMP   VEC_CAR+26H ;  V_uL_FNC
50         DS    2
51         JMP   VEC_CAR+2BH ;  SIIC
52         JMP   VEC_CAR+2EH ;
53         DS    2
54         JMP   VEC_CAR+33H ;  T2CAP0
55         JMP   VEC_CAR+36H ;
56         DS    2
57         JMP   VEC_CAR+3BH ;  T2CAP1
58         JMP   VEC_CAR+3EH ;
59         DS    2
60         JMP   VEC_CAR+43H ;  T2CAP2
61         JMP   VEC_CAR+46H ;
62         DS    2
63         JMP   VEC_CAR+4BH ;  T2CAP3
64         JMP   VEC_CAR+4EH ;
65         DS    2
66         JMP   VEC_CAR+53H ;  ADCINT
67         JMP   VEC_CAR+56H ;
68         DS    2
69         JMP   VEC_CAR+5BH ;  T2CMP0
70         JMP   VEC_CAR+5EH ;
71         DS    2
72         JMP   VEC_CAR+63H ;  T2CMP1
73         JMP   VEC_CAR+66H ;
74         DS    2
75         JMP   VEC_CAR+6BH ;  T2CMP2
76         JMP   VEC_CAR+6EH ;
77         DS    2
78         JMP   VEC_CAR+73H ;  TIMER2
79         JMP   VEC_CAR+76H ;
80         DS    2
81 ;       JMP   VEC_CAR+7BH ;
82         JMP   VEC_ABEG ;
83
84 CSEG AT VEC_ABEG
85 VEC_STL:JMP   VEC_STL
86
87 )FI
88
89 VECT__C SEGMENT CODE
90
91 RSEG    VECT__C
92
93 VEC_SET:MOV   A,R4
94         MOV   R4,DPL
95         MOV   R5,DPH
96     %IF(0)THEN(
97         MOV   DPTR,#VEC_ARR
98         CALL  ADDATDP
99     )ELSE(
100         ADD   A,#LOW VEC_ARR
101         MOV   DPL,A
102         CLR   A
103         ADDC  A,#HIGH VEC_ARR
104         MOV   DPH,A
105     )FI
106     %IF(%TGT_T89C51RD2)THEN(
107         CLR   A
108         MOVC  A,@A+DPTR
109         CJNE  A,#2,VEC_TE1
110         MOV   A,#1
111         MOVC  A,@A+DPTR
112         XRL   A,R5
113         JNZ   VEC_TE1
114         MOV   A,#2
115         MOVC  A,@A+DPTR
116         XRL   A,R4
117         JNZ   VEC_TE1
118         RET
119 VEC_TE1:
120         MOV   FCON,#08H       ; zapis do programove pameti
121     )FI
122 VEC_USR:MOV   A,#2
123         MOV   C,EA
124         CLR   EA
125         MOVX  @DPTR,A
126         INC   DPTR
127         MOVX  A,@DPTR
128         XCH   A,R5
129         MOVX  @DPTR,A
130         INC   DPTR
131         MOVX  A,@DPTR
132         XCH   A,R4
133         MOVX  @DPTR,A
134     %IF(%TGT_T89C51RD2)THEN(
135         MOV   FCON,#050H      ; zapisovaci sequence
136         MOV   FCON,#0A0H      ; zapisovaci sequence
137 S_WRM31:MOV   A,FCON          ; cekej na dozapsani
138         ANL   A,#01H
139         JNZ   S_WRM31
140     )FI
141         MOV   EA,C
142         RET
143
144 VEC_GET:MOV   DPL,R4
145         MOV   DPH,#HIGH VEC_ARR
146         INC   DPTR
147         MOVX  A,@DPTR
148         MOV   R5,A
149         INC   DPTR
150         MOVX  A,@DPTR
151         MOV   R4,A
152         RET
153
154 __SDCC_EXTERNAL_STARTUP:
155         MOV     IE,#0
156         MOV     PSW,#0
157         MOV     P0,#0FFH
158         MOV     P1,#0FFH
159         MOV     P2,#0FFH
160         MOV     P3,#0FFH
161 %IF(%TGT_MSC1210)THEN(
162         MOV     EICON,#040h
163         MOV     AIE,#0
164         MOV     EWU,#0
165 )FI
166         CALL    SRETI
167         CALL    SRETI
168         CALL    SRETI
169         CALL    SRETI
170         CALL    _SETUP_BOARD
171         MOV     DPL,#0
172         RET
173 SRETI:  RETI
174
175         END