Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.naic.edu/~phil/hardware/vertex/sharemegsvertex/lcu/pcr/user/v2_0/SCHREIB.LST
Дата изменения: Tue Mar 6 22:36:27 2001
Дата индексирования: Thu Jan 15 14:02:25 2009
Кодировка:

Поисковые слова: m 63


CP581 PAGE 1
schreib 09-08-97
17:10:03

Line# Source Line Microsoft C Compiler Version 6.00A

1 /******************************************************************/
2 /* */
3 /* VERTEX ANTENNENTECHNIK GMBH, DUISBURG, GERMANY */
4 /* */
5 /* NAME: L. VAN DER HORST */
6 /* DATE: 28.05.1997 */
7 /* VERSION: 1.5 */
8 /* */
9 /******************************************************************/
10 /* */
11 /* SCHREIB.C */
12 /* WRITES DATA INTO THE VIRTUAl RAM (PLC-CP581) */
13 /* */
14 /******************************************************************/
15 #include /* HEADER-DATEI aus MICROSOFT C */
16 #include /* HEADER-DATEI aus MICROSOFT C */
17 #include /* HEADER-DATEI aus MICROSOFT C */
18 #include /* HEADER-DATEI aus MICROSOFT C */
19 #include /* HEADER-DATEI aus MICROSOFT C */
20 #include /* HEADER-DATEI aus MICROSOFT C */
21 #include /* HEADER-DATEI aus MICROSOFT C */
22 #include "netzwerk.h"
23 #include "prog.h"
24 void schreib(int nr)
25 {
26 #include"file.h"
27 #include"extern.c"
28 extern int mil;
29 int watchdog,i,dummy[10];
30 long l;
31 /* FROM CP581 --> CPU */
32 int_flag = 1;
33 switch(nr)
34 {
35 case 1: watchdog = 0x1400;
36 fseek(datei2,2L,0);
37 fwrite(&time_ms,sizeof(time_ms),1,datei2);
38 fwrite(&watchdog,sizeof(watchdog),1,datei2);
39 fseek(datei2,2L,0);
40 break;
41
42 case 2: fseek(datei2,14L,0);
43 fwrite(&time_off,sizeof(time_off),1,datei2);
44 fseek(datei2,6L,0);
45 break;
46
47 case 3: pt_count = 0;
48 prtr_time = 0xffffffff;
49 prtr_s1 = 0xe0b1ffff;
50 prtr_s2 = 0xe0b1ffff;
51 prtr_s3 = 0xe0b1ffff;
52 fseek(datei3,0L,0);
53 i = 0;
54 pt_watch = 0;
55 prtr_z = 0;
56 n_ist = 0;


CP581 PAGE 2
schreib 09-08-97
17:10:03

Line# Source Line Microsoft C Compiler Version 6.00A

57 l1:
58 fwrite(&prtr_time,sizeof(prtr_time),1,datei3);
59 fwrite(&prtr_s1,sizeof(prtr_s1),1,datei3);
60 fwrite(&prtr_s2,sizeof(prtr_s2),1,datei3);
61 fwrite(&prtr_s3,sizeof(prtr_s3),1,datei3);
62 if (i < 512) { i = i + 4; goto l1;}
63 cl_stack = 0x0100;
64 fseek(datei2,10L,0);
65 fwrite(&cl_stack,sizeof(cl_stack),1,datei2);
66 fseek(datei3,0L,0);
67 break;
68
69 case 4: fseek(datei2,12L,0);
70 fwrite(&command,sizeof(command),1,datei2);
71 fseek(datei2,12L,0);
72 break;
73 case 5: mil = 200;
74 fseek(datei2,20L,0);
75 fwrite(mode_sel,sizeof(mode_sel[0]),6,datei2);
76 fwrite(dummy,sizeof(dummy[0]),4,datei2);
77 fwrite(com_rate,sizeof(com_rate[0]),3,datei2);
78 fwrite(dummy,sizeof(dummy[0]),1,datei2);
79 fwrite(com_pos,sizeof(com_pos[0]),3,datei2);
80 fseek(datei2,18L,0);
81 //fwrite(dummy,sizeof(dummy[0]),1,datei2);
82 //printf("%x",mode_sel[0]);
83 //waitl(3);
84 break;
85
86 case 6: i = prtrst;
87 dreh2((char*)&i);
88 if (pt_count > 127 && i == 0)
89 { cmd_status = 0x0600; putmcs(1); break;}
90 /* Rejected, command out of range */
91
92 if (pt_count > 127 && i > 0)
93 { pt_count = 0; pt_watch= 1;}
94 if (pt_count > i) pt_watch = 0;
95
96 if (pt_watch == 1 && pt_count >=i )
97 { cmd_status = 0x0600; putmcs(1); break;}
98 /* Rejected, command out of range */
99
100 putmcs(1);
101 l = pt_count * 16;
102 fseek(datei3,l,0);
103 fwrite(&prtr_time,sizeof(prtr_time),1,datei3);
104 fwrite(&prtr_s1,sizeof(prtr_s1),1,datei3);
105 fwrite(&prtr_s2,sizeof(prtr_s2),1,datei3);
106 fwrite(&prtr_s3,sizeof(prtr_s3),1,datei3);
107 pt_count = pt_count+1;
108
109 /*******************************************************************/
110 /* Buffer for Program Track evaluation */
111 ptt[prtr_z] = prtr_time;
112 pta[prtr_z] = prtr_s1;


CP581 PAGE 3
schreib 09-08-97
17:10:03

Line# Source Line Microsoft C Compiler Version 6.00A

113 ptg[prtr_z] = prtr_s2;
114 ptc[prtr_z] = prtr_s3;
115 prtr_z = prtr_z +1;
116 if (prtr_z > 249) prtr_z = 249;
117 /*******************************************************************/
118
119 if (pt_count == 0 && i == 0) pt_count = 1;
120 fseek(datei3,l,0);
121 break;
122 case 7: fseek(datei2,20L,0);
123 fwrite(mode_sel,sizeof(mode_sel[0]),6,datei2);
124 fseek(datei2,60L,0);
125 fwrite(offset,sizeof(offset[0]),3,datei2);
126 fseek(datei2,60L,0);
127 break;
128 case 8: watchdog = 0x2800;
129 fseek(datei2,2L,0);
130 fwrite(&time_ms,sizeof(time_ms),1,datei2);
131 fwrite(&watchdog,sizeof(watchdog),1,datei2);
132 fseek(datei2,2L,0);
133 break;
134
135 }
136
137 return;
138 }


schreib Local Symbols

Name Class Type Size Offset Register

dummy . . . . . . . . . . auto -001c
l . . . . . . . . . . . . auto -0008
i . . . . . . . . . . . . auto -0004
watchdog. . . . . . . . . auto -0002
nr. . . . . . . . . . . . param 0006
prtr_s1 . . . . . . . . . extern long 4 ***
prtr_s2 . . . . . . . . . extern long 4 ***
prtr_s3 . . . . . . . . . extern long 4 ***
pt_count. . . . . . . . . extern int 2 ***
pt_watch. . . . . . . . . extern int 2 ***
mil . . . . . . . . . . . extern int 2 ***
time_ms . . . . . . . . . extern long 4 ***
int_flag. . . . . . . . . extern unsigned char 1 ***
time_off. . . . . . . . . extern long 4 ***
com_rate. . . . . . . . . extern struct/array 6 ***
mode_sel. . . . . . . . . extern struct/array 12 ***
command . . . . . . . . . extern int 2 ***
prtrst. . . . . . . . . . extern int 2 ***
prtr_z. . . . . . . . . . extern int 2 ***
n_ist . . . . . . . . . . extern int 2 ***
com_pos . . . . . . . . . extern struct/array 12 ***
datei2. . . . . . . . . . extern far pointer 4 ***
datei3. . . . . . . . . . extern far pointer 4 ***
offset. . . . . . . . . . extern struct/array 12 ***


CP581 PAGE 4
schreib 09-08-97
17:10:03

Microsoft C Compiler Version 6.00A


schreib Local Symbols

Name Class Type Size Offset Register

ptt . . . . . . . . . . . extern struct/array 1000 ***
pta . . . . . . . . . . . extern struct/array 1000 ***
ptg . . . . . . . . . . . extern struct/array 1000 ***
cmd_status. . . . . . . . extern unsigned int 2 ***
ptc . . . . . . . . . . . extern struct/array 1000 ***
cl_stack. . . . . . . . . extern int 2 ***
prtr_time . . . . . . . . extern long 4 ***


Global Symbols

Name Class Type Size Offset

ad. . . . . . . . . . . . common struct/array 10 ***
alarm . . . . . . . . . . common int 2 ***
buffer. . . . . . . . . . common far pointer 4 ***
dreh2 . . . . . . . . . . extern far function *** ***
fseek . . . . . . . . . . extern far function *** ***
fwrite. . . . . . . . . . extern far function *** ***
lese. . . . . . . . . . . common struct/array 526 ***
putmcs. . . . . . . . . . extern far function *** ***
schreib . . . . . . . . . global far function *** 0000

Code size = 0642 (1602)
Data size = 0026 (38)
Bss size = 0000 (0)

No errors detected