📄 sony_servo.lst
字号:
C51 COMPILER V6.12 SONY_SERVO 02/22/2002 15:21:29 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE SONY_SERVO
OBJECT MODULE PLACED IN E:\CDMP3\Design\sony_servo\sony_servo.OBJ
COMPILER INVOKED BY: C:\C51\C51\BIN\C51.EXE E:\CDMP3\Design\sony_servo\sony_servo.c
stmt level source
1 //#include "enable_debug.h"
2 #include "debug.h"
*** ERROR 318 IN LINE 2 OF E:\CDMP3\Design\sony_servo\sony_servo.c: can't open file 'debug.h'
3
4 #include "hst.h"
*** ERROR 318 IN LINE 4 OF E:\CDMP3\Design\sony_servo\sony_servo.c: can't open file 'hst.h'
5 #include "dbgio.h"
*** ERROR 318 IN LINE 5 OF E:\CDMP3\Design\sony_servo\sony_servo.c: can't open file 'dbgio.h'
6
7 #if (SONY_SERVO == 1)
*** WARNING 322 IN LINE 7 OF E:\CDMP3\Design\sony_servo\sony_servo.c: unknown identifier
#include "sony_servo.h"
#elif (PANA_SERVO == 1)
*** WARNING 322 IN LINE 9 OF E:\CDMP3\Design\sony_servo\sony_servo.c: unknown identifier
#endif
11 #include "hst_dsa.h"
*** ERROR 318 IN LINE 11 OF E:\CDMP3\Design\sony_servo\sony_servo.c: can't open file 'hst_dsa.h'
12 #include "hst_cdm.h"
*** ERROR 318 IN LINE 12 OF E:\CDMP3\Design\sony_servo\sony_servo.c: can't open file 'hst_cdm.h'
13
14 #ifdef ENABLE_MP3
#include "mp3_mainloop.h"
#endif
17
18 #ifdef SLAVE_MODE
#include "hst_slave.h"
#endif
21
22 /************************************************************************
23 * Local defines. *
24 ************************************************************************/
25 #define SERVO_QCODENUM 80 /* Number of bits for each Q-code */
26
27 #define OPEN_M 0x00
28 #define STOP_M 0x01
29 #define CUE_M 0x02(FF/REV)
30 #define PLAY_M 0x03
31 #define OPEN_00 0x00
32 #define OPEN_10 1
33 #define UNLD_10 2
34 #define LOAD_10 3
35 #define SLED_10 4
36 #define STOP_10 5
37 #define STOP_20 6
38 #define STOP_30 7
39 #define STOP_40 8
40 #define STOP_100 9
41 #define STOP_110 10
42 #define STOP_120 11
43 #define STOP_200 12
44 #define STOP_210 13
45 #define STOP_220 14
46 #define STOP_230 15
47 #define FOCUS_10 16
48 #define FOCUS_20 17
C51 COMPILER V6.12 SONY_SERVO 02/22/2002 15:21:29 PAGE 2
49 #define FOCUS_30 18
50 #define FOCUS_40 19
51 #define FOCUS_50 20
52 #define FOCUS_60 21
53 #define EFV_10 22
54 #define FBIAS_10 23
55 #define FBIAS_20 24
56 #define AGC_10 25
57 #define AGC_20 26
58 #define TOC_10 27
59 #define ACES_10 28
60 #define ACES_20 29
61 #define ACES_30 30
62 #define ACES_40 31
63 #define CUE_10 32
64 #define CUE_20 33
65 #define CUE_30 34
66 #define CUE_40 35
67 #define PLAY_10 36
68 #define RUN_10 37
69 #define EMR_10 38
70 #define EMR_20 39
71 #define FB_SPL 60
72 #define FB_STP 0x20
73 #define FB_R_LIMIT 0x60
74 #define FB_L_LIMIT (-0x60)
75 #define FB_ABT 03
76 #define F_OFF 0x00
77 #define FCSDWN 0x02
78 #define AS_OFF 0x11
79 #define TG_NOR 0x19
80 #define TG_UP 0x17
81 #define TOFF_SOFF 0x20
82 #define TOFF_SFWD 0x22
83 #define TOFF_SREV 0x23
84 #define TON_SOFF 0x24
85 #define TON_SON 0x25
86 #define A_CANCEL 0x4000
87 #define AGC_CANCEL 0x38148e
88 #define A_FOCUS 0x4700
89 #define A_1TJF 0x48
90 #define A_1TJR 0x49
91 #define A_10TJF 0x4A
92 #define A_10TJR 0x4B
93 #define A_2NTJF 0x4C
94 #define A_2NTJR 0x4D
95 #define A_NTMF 0x4E
96 #define A_NTMR 0x4F
97 #define SET_B1 0x59
98 #define B_1TJF 0x53
99 #define B_1TJR 0x53
100 #define B_10TJF 0x58
101 #define B_10TJR 0x58
102 #define B_30TJF 0x5B
103 #define B_30TJR 0x5B
104 #define B_100TJF 0x5B
105 #define B_100TJR 0x5B
106 #define B_NTMF 0x5B
107 #define B_NTMR 0x5B
108 #define D_30TJF 0x62
109 #define D_30TJR 0x62
110 #define D_100TJF 0x62
C51 COMPILER V6.12 SONY_SERVO 02/22/2002 15:21:29 PAGE 3
111 #define D_100TJR 0x62
112 #define CLV_STOP 0xE0
113 #define CLV_KICK 0xE8
114 #define CLV_BRK 0xEA
115 #define CLV_A 0xE6
116 #define T2WMAX 0x01
117
118 #define dsc_subq_ctl 0x20 /* 3217 family */
119 #define dsc_subq_ctlm 0x21
120 #define dsc_subq_bcnt 0x22 /* 3217 family */
121 #define dsc_subq_bcntm 0x23
122 #define dsc_subq_data 0x24 /* 3217 family */
123 #define dsc_subq_datam 0x25
124 #define dsc_sys_status 0x2c /* 3217 family */
125 #define dsc_sys_statusm 0x2d
126 #define dsc_aux_mode 0x00 /* 3217 family */
127 #define dsc_aux_modem 0x01
128
129 #define TIMER1_INTERVAL 10 /* 10ms */
130 #define T15SECOND (15000/TIMER1_INTERVAL)
131 #define T12SECOND (12000/TIMER1_INTERVAL)
132 #define T10SECOND (10000/TIMER1_INTERVAL)
133 #define T4SECOND (4000/TIMER1_INTERVAL)
134 #define T3SECOND (3000/TIMER1_INTERVAL)
135 #define T2SECOND (2000/TIMER1_INTERVAL)
136 #define T1SECOND (1000/TIMER1_INTERVAL)
137 #define T500MS (500/TIMER1_INTERVAL)
138 #define T300MS (300/TIMER1_INTERVAL)
139 #define T250MS (250/TIMER1_INTERVAL)
140 #define T200MS (200/TIMER1_INTERVAL)
141 #define T150MS (150/TIMER1_INTERVAL)
142 #define T100MS (100/TIMER1_INTERVAL)
143 #define T80MS (80/TIMER1_INTERVAL)
144 #define T30MS (30/TIMER1_INTERVAL)
145 #define T10MS (10/TIMER1_INTERVAL) // sz 8/18
146 #define T32MS (32/TIMER1_INTERVAL)
147 #define T460MS (460/TIMER1_INTERVAL)
148
149 #define FOK_TIMEOUT T100MS
150 #define GFSMUTE_TIMEOUT T30MS
151 #define GFS_TIMEOUT T4SECOND
152 #define SUBQ_TIMEOUT T4SECOND
153
154 #define SERVO_TRK_SLD_OFF SERVO_send_command(2, TOFF_SOFF)
155 #ifdef USE_SONY_3068 // sz 8/18
#define SERVO_TRK_SLD_ON { SERVO_send_command(6,0x38140e);SERVO_delay_n_ms(2);SERVO_send_command(2, TON_SO
-N);}
#else
158 #define SERVO_TRK_SLD_ON SERVO_send_command(2, TON_SON)
159 #endif
160 #define SERVO_FOCUS_OFF SERVO_send_command(2, F_OFF)
161 #define SERVO_FOCUS_DOWN SERVO_send_command(2, FCSDWN)
162 #define SERVO_AGC_CANCEL SERVO_send_command(6, AGC_CANCEL)
163 #define SERVO_AUTOSEQ_CANCEL { SERVO_send_command(4, A_CANCEL); \
164 SERVO_short_delay(20); }
165 #define SERVO_ANTISHOCK_OFF SERVO_send_command(2, AS_OFF)
166 #ifdef USE_SONY_3068 // sz 8/18
#define SERVO_AUTO_FOCUS { SERVO_send_command(6,0x38148a); SERVO_delay_n_ms(2); SERVO_send_command(4, A_FO
-CUS); }
#else
169 #define SERVO_AUTO_FOCUS SERVO_send_command(4, A_FOCUS)
170 #endif
C51 COMPILER V6.12 SONY_SERVO 02/22/2002 15:21:29 PAGE 4
171 #define SERVO_CLV_KICK { SERVO_send_command(6, 0xe80000); }
172 #define SERVO_CLV_STOP { SERVO_send_command(6, 0xe00000); }
173 #define SERVO_CLV_BRK { SERVO_send_command(6, 0xea0000); }
174 #define SERVO_CLV_A { SERVO_send_command(6, 0xe60000); kickfg = 1; }
175
176
177
178
179 /************************************************************************
180 * semi local variables
181 * NOTE: due to interrupt, keep most globals as volatile
182 ************************************************************************/
183
184 unsigned int SERVO_cdtime; /* Absolute CD time */
185 unsigned char SERVO_Qarray_new[SUBQ_LEN]; /* Q subcode array */
*** ERROR C202 IN LINE 185 OF E:\CDMP3\DESIGN\SONY_SERVO\SONY_SERVO.C: 'SUBQ_LEN': undefined identifier
*** ERROR C136 IN LINE 185 OF E:\CDMP3\DESIGN\SONY_SERVO\SONY_SERVO.C: invalid dimension size: [0]
186 unsigned char SERVO_Qarray_current[SUBQ_LEN]; /* Q subcode array */
*** ERROR C202 IN LINE 186 OF E:\CDMP3\DESIGN\SONY_SERVO\SONY_SERVO.C: 'SUBQ_LEN': undefined identifier
*** ERROR C136 IN LINE 186 OF E:\CDMP3\DESIGN\SONY_SERVO\SONY_SERVO.C: invalid dimension size: [0]
187 volatile char SERVO_new_Qcode = 0; /* Indicating s0s1 interrupt */
188 volatile char servo_focus_on;
189 volatile int target_min, target_sec, target_frame;
190 extern volatile char pause_min,pause_sec,pause_frame;
191 extern unsigned char qcode_ir_state;//henrywo12/3
192 extern unsigned char ir_count;//henrywo12/3
193 volatile int open_delay;
194 volatile char SERVO_mode = 0xff;
195 volatile char SERVO_update_track;
196 volatile char SERVO_update_second;
197 volatile char kickfg;
198
199 volatile int enable_interrupt = 0;
200 volatile int glbTimer; /* NOW IN 10ms, was about 6 ms */
201 unsigned int servo_info;
202 unsigned int track_ready;
203 unsigned int good_subq;
204
205 int focus_flag;
206 bit cd_ab_flag=0; /* Wenxin -- indicate CD in AB mode */
207 CDINFO CDinfo;
*** ERROR C129 IN LINE 207 OF E:\CDMP3\DESIGN\SONY_SERVO\SONY_SERVO.C: missing ';' before 'CDinfo'
208 extern void handle_open();
209 int focus_ready=0;
210
211 /************************************************************************
212 * Local variables *
213 ************************************************************************/
214
215 unsigned char SERVO_Qarray[SUBQ_LEN]; /* Q subcode array */
216
217 volatile char focus_retry, check_focus_fail, search_flag;
218 volatile char servo_focus_drop, servo_gfs_drop, servo_subq_drop;
219 volatile short servo_gfs_timer, servo_gfsmute_timer,
220 servo_fok_timer, servo_sys_timer, servo_subq_timer;
221 volatile short servo_fbias;
222 volatile unsigned char servo_mute_on;
223 volatile unsigned char servo_pres_m, servo_next_m = STOP_M;
224 volatile unsigned int servo_per_ave;
225 volatile char servo_fb_ok, servo_EF_balance_ok, servo_AGF_ok, servo_AGT_ok;
226 volatile unsigned char servo_sbqemr, mutecmd;
227 int stop_flag;
C51 COMPILER V6.12 SONY_SERVO 02/22/2002 15:21:29 PAGE 5
228
229 #ifdef USE_SONY_3068 // sz 8/18
volatile int shutter_flag = 0;
#endif
232 const unsigned short abs2trk[] = {
233 0, 452, 891, 1319, 1737,
234 2145, 2543, 2933, 3315, 3690,
235 4057, 4418, 4772, 5120, 5462,
236 5799, 6131, 6458, 6780, 7097,
237 7410, 7719, 8024, 8325, 8622,
238 8916, 9206, 9492, 9776, 10056,
239 10334, 10608, 10880, 11149, 11415,
240 11678, 11940, 12198, 12454, 12708,
241 12960, 13209, 13457, 13702, 13945,
242 14186, 14426, 14663, 14899, 15132,
243 15364, 15595, 15823, 16050, 16275,
244 16499, 16721, 16942, 17161, 17379,
245 17595, 17810, 18024, 18236, 18447,
246 18656, 18864, 19071, 19277, 19482,
247 19685, 19888, 20089, 20289, 20487,
248 20685, 20882, 21078, 21272, 21466,
249 21658
250 };
251
252 /* Lookup table to convert HEX to BCD */
253 const unsigned short CVhex2bcd[] = {
254 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, /* 00-09 */
255 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, /* 10-19 */
256 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, /* 20-29 */
257 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, /* 30-39 */
258 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, /* 40-49 */
259 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, /* 50-59 */
260 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, /* 60-69 */
261 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, /* 70-79 */
262 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, /* 80-89 */
263 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, /* 90-99 */
264 };
265
266 /* Lookup table to convert BCD to HEX */
267 const unsigned short CVbcd2hex[] = {
268 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, /* 00-09 */
269 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, 0, 0, 0, 0, /* 10-19 */
270 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 0, 0, 0, 0, 0, 0, /* 20-29 */
271 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, /* 30-39 */
272 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 0, 0, 0, 0, 0, 0, /* 40-49 */
273 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 0, 0, 0, 0, 0, 0, /* 50-59 */
274 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, /* 60-69 */
275 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 0, 0, 0, 0, 0, 0, /* 70-79 */
276 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 0, 0, 0, 0, 0, 0, /* 80-89 */
277 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 0, 0, 0, 0, 0, 0, /* 90-99 */
278 };
279
280
281
282 /************************************************************************
283 * EXTERNAL FUNCTIONS *
284 ************************************************************************/
285
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -