|
|
DataMuseum.dkPresents historical artifacts from the history of: RC3500 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC3500 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 26112 (0x6600)
Types: TextFileVerbose
Names: »fefpalst«
└─⟦a41ae585a⟧ Bits:30001842 SW-save af projekt 1000, Alarm-system
└─⟦72244f0ef⟧
└─⟦this⟧ »fefpalst«
\f
fefpalst 81.05.13. 13.10. page 1
10 1 PROCESS fpadriver(
20 2 VAR sem : ! ts_pointer; level, blocktime : integer; rec: boolean;
30 3 op : sempointer);
40 4
50 5 CONST
60 6 version = "vers 1.01 /";
70 7 polltime =156; pollexp=6; (* 9.984sec *)
80 8
90 9 sensecom = 0;
100 10 resetcom = 4;
110 11 autocom = 8;
120 12 timeransw = 5;
130 13 readcom = 1;
140 14 writecom = 2;
150 15 writereadcom= 3;
160 16
170 17 ok_result = 0;
180 18 rejected = 1;
190 19 soft_error= 2;
200 20 (* *) parity = 8;
210 21 (* *) timeout =16;
220 22 (* *) combined_write =32;
230 23 (* *) blocklength_error =64;
240 24 (* *) receiver_not_ready=128;
250 25 hard_error= 3;
260 26 (* *) disconnected = 8;
270 27 (* *) reset =16;
280 28 (* *)(*combined_write =32*)
290 29 (* *) autoload =64;
300 30 unintelligible= 4;
310 31 (* *) bad_message = 8;
320 32 (* *)(*combined_write =32*)
330 33
340 34 small_size=08;
350 35 medium_size= 2*64(*messbufsize*) - 6(*fi,la,ne*);
360 36 large_size= 2*120(*testbufsize*) - 6(*fi,la,ne*);
370 37 max_size =2*large_size;;
380 38 small_max =small_size + 5;
390 39 medium_max=medium_size+ 5;
400 40 large_max =large_size + 5;
410 41
420 42 TYPE
430 43 priority_table=PACKED ARRAY(ok_result..unintelligible) OF 0..7;
440 44 stype=PACKED RECORD
450 45 ! uu1: 0..1023;
460 46 ! ctmo,uu2: 0..1;
\f
fefpalst 81.05.13. 13.10. page 2
470 47 ! stp:0..7;
480 48 ! prty: 0..1;
490 49 END;
500 50
510 51 smallbuf=RECORD first,last,next: integer;
520 52 ! c: PACKED ARRAY (6..small_max) OF byte;
530 53 END;
540 54
550 55 mediumbuf= RECORD first,last,next: integer;
560 56 ! c: PACKED ARRAY (6..medium_max) OF byte;
570 57 END;
580 58
590 59 largebuf= RECORD first,last,next: integer;
600 60 ! c: PACKED ARRAY (6..large_max) OF byte;
610 61 END;
620 62
630 63
640 64 CONST
650 65
660 66 reset_dev = 0;
670 67 auto = 1;
680 68 repint = 2;
690 69 startread = 3;
700 70
710 71 small_top = small_max + 1 ;
720 72 medium_top = medium_max + 1;
730 73 large_top = large_max + 1;
740 74 min_data = 3;
750 75 small_data = small_size DIV 2 + min_data;
760 76 medium_data= medium_size DIV 2+ min_data;
770 77 large_data = large_size DIV 2 + min_data;
780 78 max_data = max_size DIV 2 + min_data;
790 79
800 80 priority = priority_table(0,6,3,4,5);
810 81
820 82 VAR
830 83 w, result, result_modif : integer;
840 84 dev,msg,mw,m: reference;
850 85 s: stype;
860 86 resetmode: boolean:=true;
870 87
880 88 headpool: pool 1;
890 89 z : zone;
900 90
910 91 PROCEDURE readram(VAR w: byte;i: integer); EXTERNAL;
920 92 PROCEDURE writeram(i,w: integer); EXTERNAL;
\f
fefpalst 81.05.13. 13.10. page 3
930 93 PROCEDURE outwordclr(w: integer; VAR dev: reference); EXTERNAL;
940 94 PROCEDURE controlclr(w: integer; VAR dev: reference); EXTERNAL;
950 95 PROCEDURE control(w: integer; VAR dev: reference); EXTERNAL;
960 96 PROCEDURE inword(VAR w: integer; VAR dev: reference); EXTERNAL;
970 97 PROCEDURE sense(VAR s: stype; w: integer; VAR dev: reference); EXTERNAL;
980 98
990 99 PROCEDURE set_result(res, modif : integer);
1000 100 VAR p1, p2 : integer;
1010 101 BEGIN
1020 102 1 ! p1 := priority(res);
1030 103 2 ! p2 := priority(result);
1040 104 3 ! IF res = hard_error THEN resetmode := true;
1050 105 4 ! IF p1 > p2 THEN
1060 106 5 ! BEGIN
1070 107 6 ! ! result := res;
1080 108 7 ! ! result_modif := modif;
1090 109 8 ! END ELSE
1100 110 9 ! IF p1 = p2 THEN
1110 111 10 ! IF modif > 0 THEN
1120 112 11 ! IF (result_modif DIV modif) MOD 2 = 0 THEN
1130 113 12 ! result_modif := result_modif + modif;
1140 114 13 END (* procedure to set actual result of operation *) ;
1150 115
1160 116 PROCEDURE write(b: boolean);
1170 117 VAR size, r : integer;
1180 118 data : boolean;
1190 119 BEGIN
1200 120 1 ! w := msg^.u3;
1210 121 2 ! size:= msg^.size;
1220 122 3 ! r := ok_result;
1230 123 4 ! WHILE (size>0) AND (r=ok_result) DO
1240 124 5 ! BEGIN
1250 125 6 ! ! IF size >= small_data THEN
1260 126 7 ! ! BEGIN
1270 127 8 ! ! ! IF size < medium_data THEN
1280 128 9 ! ! ! LOCK msg AS d: smallbuf DO WITH d DO
1290 129 10 ! ! ! BEGIN
1300 130 11 ! ! ! ! IF b THEN next:=last+1;
1310 131 12 ! ! ! ! IF next>first THEN
1320 132 13 ! ! ! ! IF (first>=6) AND (next<=small_top) THEN
1330 133 14 ! ! ! ! BEGIN
1340 134 15 ! ! ! ! ! outwordclr(w,dev); w:=c(next-1);
1350 135 16 ! ! ! ! ! outbyteblock(next,first,next-2,msg,dev);
1360 136 17 ! ! ! ! END ELSE r:=unintelligible;
1370 137 18 ! ! ! END ELSE
1380 138 19 ! ! ! IF size < large_data THEN
\f
fefpalst 81.05.13. 13.10. page 4
1390 139 20 ! ! ! LOCK msg AS d: mediumbuf DO WITH d DO
1400 140 21 ! ! ! BEGIN
1410 141 22 ! ! ! ! IF b THEN next:=last+1;
1420 142 23 ! ! ! ! IF next>first THEN
1430 143 24 ! ! ! ! IF (first>=6) AND (next<=medium_top) THEN
1440 144 25 ! ! ! ! BEGIN
1450 145 26 ! ! ! ! ! outwordclr(w,dev); w:=c(next-1);
1460 146 27 ! ! ! ! ! outbyteblock(next,first,next-2,msg,dev);
1470 147 28 ! ! ! ! END ELSE r:=unintelligible;
1480 148 29 ! ! ! END ELSE
1490 149 30 ! ! ! IF size <= max_data THEN
1500 150 31 ! ! ! LOCK msg AS d: largebuf DO WITH d DO
1510 151 32 ! ! ! BEGIN
1520 152 33 ! ! ! ! IF b THEN next:=last+1;
1530 153 34 ! ! ! ! IF next>first THEN
1540 154 35 ! ! ! ! IF (first>=6) AND (next<=large_top) THEN
1550 155 36 ! ! ! ! BEGIN
1560 156 37 ! ! ! ! ! outwordclr(w,dev); w:=c(next-1);
1570 157 38 ! ! ! ! ! outbyteblock(next,first,next-2,msg,dev);
1580 158 39 ! ! ! ! END ELSE r:=unintelligible;
1590 159 40 ! ! ! END ELSE r := unintelligible;
1600 160 41 ! ! END ELSE r := unintelligible;
1610 161 42 ! ! REPEAT pop(m,msg); data:=m^.size<>0; push(m,mw) UNTIL data;
1620 162 43 ! ! IF nil(msg) THEN size := 0 ELSE size := msg^.size;
1630 163 44 ! END;
1640 164 45 ! WHILE NOT nil(mw) DO BEGIN pop(m,mw); push(m,msg) END;
1650 165 46 ! outwordclr(256+w,dev); controlclr(repint,dev);
1660 166 47 ! IF r <> ok_result THEN set_result(r,0);
1670 167 48 END;
1680 168
1690 169 PROCEDURE read;
1700 170 VAR size, r : integer;
1710 171 data : boolean;
1720 172 BEGIN
1730 173 1 ! controlclr(startread,dev);
1740 174 2 ! IF own.timer>0 THEN
1750 175 3 ! BEGIN
1760 176 4 ! ! inword(w, dev);
1770 177 5 ! ! msg^.u3 := w MOD 256;
1780 178 6 ! ! size := msg^.size;
1790 179 7 ! ! r := ok_result;
1800 180 8 ! ! WHILE (size>0) AND (r=ok_result) DO
1810 181 9 ! ! BEGIN
1820 182 10 ! ! ! IF size >= small_data THEN
1830 183 11 ! ! ! BEGIN
1840 184 12 ! ! ! ! IF size < medium_data THEN
\f
fefpalst 81.05.13. 13.10. page 5
1850 185 13 ! ! ! ! LOCK msg AS d: smallbuf DO WITH d DO
1860 186 14 ! ! ! ! IF (last>=first) AND NOT eoi THEN
1870 187 15 ! ! ! ! BEGIN
1880 188 16 ! ! ! ! ! IF (first>=6) AND (last<=small_max) THEN
1890 189 17 ! ! ! ! ! BEGIN
1900 190 18 ! ! ! ! ! ! controlclr(repint,dev); inbyteblock(next,first,last,msg,dev);
1910 191 19 ! ! ! ! ! END;
1920 192 20 ! ! ! ! END ELSE next:=first ELSE
1930 193 21 ! ! ! ! IF size < large_data THEN
1940 194 22 ! ! ! ! LOCK msg AS d: mediumbuf DO WITH d DO
1950 195 23 ! ! ! ! IF (last>=first) AND NOT eoi THEN
1960 196 24 ! ! ! ! BEGIN
1970 197 25 ! ! ! ! ! IF (first>=6) AND (last<=medium_max) THEN
1980 198 26 ! ! ! ! ! BEGIN
1990 199 27 ! ! ! ! ! ! controlclr(repint,dev); inbyteblock(next,first,last,msg,dev);
2000 200 28 ! ! ! ! ! END;
2010 201 29 ! ! ! ! END ELSE next:=first ELSE
2020 202 30 ! ! ! ! IF size <= max_size THEN
2030 203 31 ! ! ! ! LOCK msg AS d: largebuf DO WITH d DO
2040 204 32 ! ! ! ! IF (last>=first) AND NOT eoi THEN
2050 205 33 ! ! ! ! BEGIN
2060 206 34 ! ! ! ! ! IF (first>=6) AND (last<=large_max) THEN
2070 207 35 ! ! ! ! ! BEGIN
2080 208 36 ! ! ! ! ! ! controlclr(repint,dev); inbyteblock(next,first,last,msg,dev);
2090 209 37 ! ! ! ! ! END;
2100 210 38 ! ! ! ! END ELSE next:=first ELSE r := unintelligible;
2110 211 39 ! ! ! END ELSE r := unintelligible;
2120 212 40 ! ! ! REPEAT pop(m,msg); data:=m^.size<>0; push(m,mw) UNTIL data;
2130 213 41 ! ! ! IF nil(msg) THEN size := 0 ELSE size := msg^.size;
2140 214 42 ! ! END;
2150 215 43 ! ! IF r<>ok_result THEN
2160 216 44 ! ! BEGIN
2170 217 45 ! ! ! set_result(r,0);
2180 218 46 ! ! END ELSE
2190 219 47 ! ! IF NOT eoi THEN
2200 220 48 ! ! BEGIN
2210 221 49 ! ! ! controlclr(repint,dev);
2220 222 50 ! ! ! set_result(soft_error, blocklength_error);
2230 223 51 ! ! END;
2240 224 52 ! ! WHILE NOT nil(mw) DO BEGIN pop(m,mw); push(m,msg) END;
2250 225 53 ! END;
2260 226 54 ! IF own.timer=0 THEN set_result(soft_error, timeout);
2270 227 55 END;
2280 228
2290 229
2300 230 PROCEDURE status_test;
\f
fefpalst 81.05.13. 13.10. page 6
2310 231 VAR switch : byte;
2320 232 r : integer;
2330 233 BEGIN
2340 234 1 ! CASE s.stp OF
2350 235 2 ! ! 2,3,6,7: set_result(hard_error, disconnected);
2360 236 3 ! ! 4,5: BEGIN
2370 237 4 ! ! ! readram(switch,10);
2380 238 5 ! ! ! IF switch>=128 THEN BEGIN writeram(6,0); writeram(5,1); WHILE true DO END;
2390 239 6 ! ! ! set_result(hard_error, autoload); s.stp:=s.stp-4; status_test;
2400 240 7 ! ! END;
2410 241 8 ! ! 1: set_result(hard_error, reset);
2420 242 9 ! ! 0: BEGIN
2430 243 10 ! ! ! r := s.prty+2*s.ctmo;
2440 244 11 ! ! ! IF r <> 0 THEN
2450 245 12 ! ! ! BEGIN
2460 246 13 ! ! ! ! IF r >= 2 THEN
2470 247 14 ! ! ! ! BEGIN
2480 248 15 ! ! ! ! ! r := r - 2;
2490 249 16 ! ! ! ! ! set_result(soft_error, receiver_not_ready);
2500 250 17 ! ! ! ! END;
2510 251 18 ! ! ! ! IF r = 1 THEN set_result(soft_error, parity);
2520 252 19 ! ! ! END;
2530 253 20 ! ! END;
2540 254 21 ! END;
2550 255 22 END (* procedure test of fpa-status *) ;
2560 256
2570 257 BEGIN
2580 258 1 ! testopen(z,own.incname,op);
2590 259 2 ! testout( z, version, fe_env_version );
2600 260 3 !
2610 261 4 ! result:=reservech(dev,level,-1);
2620 262 5 ! IF result<>0 THEN exception(4*16+result);
2630 263 6 ! IF rec THEN
2640 264 7 ! BEGIN
2650 265 8 ! ! alloc(msg,headpool,sem.s^);
2660 266 9 ! ! WITH msg^ DO BEGIN u1:=timeransw; u3:=polltime; u4:=pollexp END;
2670 267 10 ! ! sendtimer(msg);
2680 268 11 ! END;
2690 269 12 ! definetimer(true);
2700 270 13 !
2710 271 14 ! REPEAT
2720 272 15 ! ! wait(msg,sem.w^);
2730 273 16 ! ! result := ok_result; result_modif := 0;
2740 274 17 ! ! IF resetmode THEN CASE msg^.u1 OF
2750 275 18 ! ! ! sensecom,resetcom,autocom: resetmode:=false;
2760 276 19 ! ! ! timeransw: ;
\f
fefpalst 81.05.13. 13.10. page 7
2770 277 20 ! ! ! OTHERWISE set_result(rejected, 0);
2780 278 21 ! ! END;
2790 279 22 ! ! IF NOT resetmode THEN
2800 280 23 ! ! BEGIN
2810 281 24 ! ! ! own.timer:=50;
2820 282 25 ! ! ! CASE msg^.u1 OF
2830 283 26 ! ! ! ! sensecom: ;
2840 284 27 ! ! ! ! readcom: CHANNEL dev DO read;
2850 285 28 ! ! ! ! writecom: CHANNEL dev DO write(true);
2860 286 29 ! ! ! ! writereadcom: CHANNEL dev DO
2870 287 30 ! ! ! ! BEGIN
2880 288 31 ! ! ! ! ! write(false);
2890 289 32 ! ! ! ! ! sense(s,0,dev); status_test;
2900 290 33 ! ! ! ! ! IF result=ok_result
2910 291 34 ! ! ! ! ! THEN read ELSE set_result(result, combined_write);
2920 292 35 ! ! ! ! END;
2930 293 36 ! ! ! ! resetcom: control(reset_dev,dev);
2940 294 37 ! ! ! ! autocom: control(auto,dev);
2950 295 38 ! ! ! ! timeransw: ;
2960 296 39 ! ! ! ! OTHERWISE set_result(unintelligible, bad_message);
2970 297 40 ! ! ! END;
2980 298 41 ! ! END;
2990 299 42 ! ! sense(s,0,dev);
3000 300 43 ! ! status_test;
3010 301 44 ! ! WITH msg^ DO IF u1=timeransw THEN
3020 302 45 ! ! BEGIN
3030 303 46 ! ! ! u3:=polltime; u4:=pollexp; sendtimer(msg);
3040 304 47 ! ! END ELSE
3050 305 48 ! ! BEGIN
3060 306 49 ! ! ! u2:=result + result_modif; return(msg);
3070 307 50 ! ! END
3080 308 51 ! UNTIL false;
3090 309 52 END
3100 310 .
3110 311
\f
fefpalst 81.05.13. 13.10. page 8
0 9* 17* 43* 45* 46* 47* 48* 66* 80* 111 112 123 161 162 166
174 180 212 213 217 226 238 242: 244 262 273 277 289 299
1 13* 18* 46* 48* 67* 71* 72* 73* 88* 130 134 141 145 152 156
238 241: 251 261
2 14* 19* 35* 36* 37* 68* 75* 76* 77* 78* 112 135 146 157 235:
243 246 248
3 15* 25* 69* 74* 80* 235:
4 10* 30* 80* 236: 239 262
5 12* 38* 39* 40* 80* 236: 238
6 7* 35* 36* 52* 56* 60* 80* 132 143 154 188 197 206 235: 238
7 43* 47* 235:
8 11* 20* 26* 31*
08 34*
10 237
16 21* 27* 262
32 22*
50 281
64 23* 29* 35*
120 36*
128 24* 238
156 7*
256 165 177
1023 45*
alloc 265
as 128: 139: 150: 185: 194: 203:
auto 67* 294
autocom 11* 275: 294:
autoload 29* 239
b 116* 130 141 152
bad_message 31* 296
blocklength_error <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
23* 222
blocktime 2*
boolean 2* 86* 116* 118* 171*
byte 52* 56* 60* 91* 231*
c 52* 56* 60* 134 145 156
channel 284 285 286
combined_write <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
22* 291
control 95* 293 294
controlclr 94* 165 173 190 199 208 221
ctmo 46* 243
d 128: 128 139: 139 150: 150 185: 185 194: 194 203: 203
data 118* 161= 161 171* 212= 212
\f
fefpalst 81.05.13. 13.10. page 9
definetimer 269
dev 84* 93* 94* 95* 96* 97* 134 135 145 146 156 157 165 165 173
176 190 190 199 199 208 208 221 261 284 285 286 289 293 294
299
disconnected 26* 235
eoi 186 195 204 219
exception 262
external 91* 92* 93* 94* 95* 96* 97*
false 275 288 308
fe_env_version <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
259
first 51* 55* 59* 131 132 135 142 143 146 153 154 157 186 188 190
192 195 197 199 201 204 206 208 210
fpadriver 1*
hard_error 25* 104 235 239 241
headpool 88* 265
i 91* 92*
inbyteblock 190 199 208
incname 258
integer 2* 51* 55* 59* 83* 91* 92* 93* 94* 95* 96* 97* 99* 100* 117*
170* 232*
inword 96* 176
largebuf 59* 150 203
large_data 77* 138 193
large_max 40* 60* 73* 206
large_size 36* 37* 40* 77*
large_top 73* 154
last 51* 55* 59* 130 141 152 186 188 190 195 197 199 204 206 208
level 2* 261
lock 128: 139: 150: 185: 194: 203:
m 84* 161 161 161 164 164 212 212 212 224 224
max_data 78* 149
max_size 37* 78* 202
mediumbuf 55* 139 194
medium_data 76* 127 184
medium_max 39* 56* 72* 197
medium_size 35* 39* 76*
medium_top 72* 143
min_data 74* 75* 76* 77* 78*
modif 99* 108 111 112 113
msg 84* 120 121 128: 135 139: 146 150: 157 161 162 162 164 177 178
185: 190 194: 199 203: 208 212 213 213 224 265 266 267 272 274
282 301 303 306
mw 84* 161 164 164 212 224 224
\f
fefpalst 81.05.13. 13.10. page 10
next 51* 55* 59* 130= 131 132 134 135 135 141= 142 143 145 146 146
152= 153 154 156 157 157 190 192= 199 201= 208 210=
ok_result 17* 43* 122 123 166 179 180 215 273 290
op 3* 258
outbyteblock 135 146 157
outwordclr 93* 134 145 156 165
own 174 226 258 281
p1 100* 102= 105 110
p2 100* 103= 105 110
parity 20* 251
pollexp 7* 266 303
polltime 7* 266 303
pool 88*
pop 161 164 212 224
priority 80* 102 103
priority_table <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
43* 80*
process 1*
prty 48* 243
push 161 164 212 224
r 117* 122= 123 136= 147= 158= 159= 160= 166 166 170* 179= 180 210= 211=
215 217 232* 243= 244 246 248= 248 251
read 169* 284 291
readcom 13* 284:
readram 91* 237
rec 2* 263
receiver_not_ready <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
24* 249
reference 84* 93* 94* 95* 96* 97*
rejected 18* 277
repint 68* 165 190 199 208 221
res 99* 102 104 107
reservech 261
reset 27* 241
resetcom 10* 275: 293:
resetmode 86* 104= 274 275= 279
reset_dev 66* 293
result 83* 103 107= 261= 262 262 273= 290 291 306
result_modif 83* 108= 112 113= 113 273= 306
return 306
s 85* 97* 234 239 239 243 243 265 289 299
sem 2* 265 272
sempointer 3*
sendtimer 267 303
\f
fefpalst 81.05.13. 13.10. page 11
sense 97* 289 299
sensecom 9* 275: 283:
set_result 99* 166 217 222 226 235 239 241 249 251 277 291 296
size 117* 121= 121 123 125 127 138 149 161 162= 162= 162 170* 178= 178
180 182 184 193 202 212 213= 213= 213
smallbuf 51* 128 185
small_data 75* 125 182
small_max 38* 52* 71* 188
small_size 34* 38* 75*
small_top 71* 132
soft_error 19* 222 226 249 251
startread 69* 173
status_test 230* 239 289 300
stp 47* 234 239= 239
stype 44* 85* 97*
switch 231* 237 238
testopen 258
testout 259
timeout 21* 226
timer 174 226 281=
timeransw 12* 266 276: 295: 301
true 86* 104 238 269 285
ts_pointer 2*
u1 266= 274 282 301
u2 306=
u3 120 177= 266= 303=
u4 266= 303=
unintelligible <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
30* 43* 136 147 158 159 160 210 211 296
uu1 45*
uu2 46*
version 6* 259
w 83* 91* 92* 93* 94* 95* 96* 97* 120= 134 134= 145 145= 156 156=
165 176 177 272
wait 272
write 116* 285 288
writecom 14* 285:
writeram 92* 238 238
writereadcom 15* 286:
z 89* 258 259
zone 89*
\f
fefpalst 81.05.13. 13.10. page 12
AND 11
ARRAY 4
BEGIN 38
CASE 3
CONST 2
DIV 5
DO 22
ELSE 20
END 45
IF 45
MOD 2
NIL 4
NOT 7
OF 7
OTHERWISE 2
PACKED 5
PROCEDURE 11
RECORD 4
REPEAT 3
THEN 45
TYPE 1
UNTIL 3
VAR 14
WHILE 5
WITH 8
\f
jg7 1981.05.13 13.10
fefpa program
81.05.13. 13.10. pascal80 version 1981.04.01
name headline beginline endline appetite(words)
set_result 100 102 114 : 7
write 117 120 167 : 15
read 170 173 227 : 16
status_test 231 235 255 : 12
fpadriver 6 258 310 : 115
code: 1 . 138 = 3138 bytes
end of PASCAL80 compilation
end
blocksread = 53
«eof»