|
|
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: 13824 (0x3600)
Types: TextFileVerbose
Names: »osiflst«
└─⟦a41ae585a⟧ Bits:30001842 SW-save af projekt 1000, Alarm-system
└─⟦72244f0ef⟧
└─⟦this⟧ »osiflst«
\f
osiflst 81.05.14. 12.31. page 1
10 1
20 2 PROCESS osif (
30 3 op_sem : sempointer;
40 4 VAR input_sem : !ts_pointer;
50 5 VAR stream_sem,
60 6 lam_sem : !sempointer;
70 7 stream_no,
80 8 no_stream_bufs,
90 9 no_tty_bufs,
100 10 portno : byte );
110 11
120 12 CONST
130 13 version = "vers 1.07 /";
140 14
150 15 tty_read = 1; (* rutes of bufs , u4 *)
160 16 tty_write = 2;
170 17 stream_read = 3;
180 18 stream_write= 4;
190 19 stream_buf = 5;
200 20 tty_buf = 6;
210 21 txt_max = 24;
220 22
230 23 TYPE
240 24 transmit_buf = RECORD
250 25 ! fi, la, ne : integer;
260 26 ! fix : alarmlabel;
270 27 ! data : ARRAY ( 1..256 ) OF char;
280 28 END;
290 29 error_txt = ARRAY(0..txt_max) OF char;
300 30 CONST
310 31 discon = error_txt
320 32 ("d","i","s","c","o","n","n","e","c","t","e","d",11***" ",cr,nl);
330 33 VAR
340 34 i,j : integer;
350 35 msg : reference;
360 36 opzone : zone;
370 37 no_trans_bufs : integer := 6;
380 38 trans_pool : pool 6 OF transmit_buf;
390 39 base : integer;
400 40
\f
osiflst 81.05.14. 12.31. page 2
1010 41 PROCEDURE send_read_tty;
1020 42 BEGIN
1030 43 1 ! LOCK msg AS buf : transmit_buf DO
1040 44 2 ! WITH msg^, buf DO
1050 45 3 ! BEGIN
1060 46 4 ! ! u1:= read_tty;
1070 47 5 ! ! u2:= tty_port;
1080 48 6 ! ! u3:= 19;
1090 49 7 ! ! u4:= tty_read;
1100 50 8 ! ! fi:= 3 + label_size;
1110 51 9 ! ! la:= tty_length;
1120 52 10 ! ! ne:= 3 + label_size;
1130 53 11 ! END;
1140 54 12 ! signal( msg, lam_sem^ );
1150 55 13 END;
1160 56
1170 57 PROCEDURE send_read_stream;
1180 58 BEGIN
1190 59 1 ! LOCK msg AS buf : transmit_buf DO
1200 60 2 ! WITH msg^, buf DO
1210 61 3 ! BEGIN
1220 62 4 ! ! u1:= read_stream;
1230 63 5 ! ! u2:= 0;
1240 64 6 ! ! u3:= stream_no;
1250 65 7 ! ! u4:= stream_read;
1260 66 8 ! ! fi:= 6;
1270 67 9 ! ! la:= 239;
1280 68 10 ! ! ne:= 6;
1290 69 11 ! END;
1300 70 12 ! signal( msg, stream_sem^ );
1310 71 13 END;
1320 72
\f
osiflst 81.05.14. 12.31. page 3
2010 73 PROCEDURE tty_to_stream;
2020 74 BEGIN
2030 75 1 ! LOCK msg AS buf : transmit_buf DO
2040 76 2 ! WITH msg^, buf DO
2050 77 3 ! BEGIN
2060 78 4 ! ! u1:= write_stream;
2070 79 5 ! ! fix.result:= u2;
2080 80 6 ! ! u3:= stream_no;
2090 81 7 ! ! IF u4=tty_write THEN
2100 82 8 ! ! u4:= stream_buf ELSE
2110 83 9 ! ! u4:= stream_write;
2120 84 10 ! ! fi:= 6;
2130 85 11 ! ! la:= tty_length+6;
2140 86 12 ! ! ne:= ne + 6;
2150 87 13 ! END;
2160 88 14 ! signal( msg, stream_sem^ );
2170 89 15 END;
2180 90
2190 91 PROCEDURE stream_to_tty;
2200 92 BEGIN
2210 93 1 ! LOCK msg AS buf : transmit_buf DO
2220 94 2 ! WITH msg^, buf DO
2230 95 3 ! BEGIN
2240 96 4 ! ! i:= u2;
2250 97 5 ! ! u1:= write_tty;
2260 98 6 ! ! u2:= tty_port;
2270 99 7 ! ! u3:= 20;
2280 100 8 ! ! IF u4=stream_write THEN
2290 101 9 ! ! u4:= tty_buf ELSE
2300 102 10 ! ! u4:= tty_write;
2310 103 11 ! ! fi:= 3 + label_size;
2320 104 12 ! ! la:= fi + fix.no_of_by - 14(*label*) - 1;
2330 105 13 ! ! ne:= 3 + label_size;
2340 106 14 ! ! IF i<>ok_result THEN
2350 107 15 ! ! BEGIN
2360 108 16 ! ! ! la:= fi+txt_max;
2370 109 17 ! ! ! FOR j:=0 TO txt_max DO
2380 110 18 ! ! ! data(1+j):= discon(j);
2390 111 19 ! ! ! IF u4=tty_buf THEN
2400 112 20 ! ! ! data(14):= "X" ELSE
2410 113 21 ! ! ! data(14):= "R";
2420 114 22 ! ! ! base:= 128;
2430 115 23 ! ! ! FOR j:=0 TO 7 DO
2440 116 24 ! ! ! BEGIN
2450 117 25 ! ! ! ! IF (base AND i) = base THEN
2460 118 26 ! ! ! ! data(16+j):= "1" ELSE
\f
osiflst 81.05.14. 12.31. page 4
2470 119 27 ! ! ! ! data(16+j):= "0";
2480 120 28 ! ! ! ! base:= base DIV 2;
2490 121 29 ! ! ! END;
2500 122 30 ! ! END;
2510 123 31 ! END;
2520 124 32 ! signal( msg, lam_sem^ );
2530 125 33 END;
2540 126
\f
osiflst 81.05.14. 12.31. page 5
3010 127 (* main program *)
3020 128 BEGIN
3030 129 1 ! testopen( opzone, own.incname, op_sem );
3040 130 2 ! testout ( opzone, version, fe_env_version );
3050 131 3 ! alloc( msg, trans_pool, input_sem.s^ );
3060 132 4 ! REPEAT
3070 133 5 ! ! LOCK msg AS buf : create_shape DO
3080 134 6 ! ! WITH msg^, buf DO
3090 135 7 ! ! BEGIN
3100 136 8 ! ! ! u1:= create_tty_ch;
3110 137 9 ! ! ! u2:= tty_port;
3120 138 10 ! ! ! u3:= 33; (* <>0 *)
3130 139 11 ! ! ! contr:= tty_control;
3140 140 12 ! ! ! timer:= 60;
3150 141 13 ! ! END;
3160 142 14 ! ! signal( msg, lam_sem^ );
3170 143 15 ! ! wait( msg, input_sem.w^ );
3180 144 16 ! UNTIL msg^.u2 = 0;
3190 145 17 ! release( msg );
3200 146 18 ! FOR i:=1 TO no_trans_bufs DO
3210 147 19 ! BEGIN
3220 148 20 ! ! alloc( msg, trans_pool, input_sem.s^ );
3230 149 21 ! ! IF i<=no_tty_bufs THEN
3240 150 22 ! ! send_read_tty ELSE
3250 151 23 ! ! send_read_stream;
3260 152 24 ! END;
3270 153 25 ! REPEAT (* forever *)
3280 154 26 ! ! wait( msg, input_sem.w^ );
3290 155 27 ! ! WITH msg^ DO
3300 156 28 ! ! CASE u4 OF
3310 157 29 ! ! ! tty_read : (* data from tty *)
3320 158 30 ! ! ! IF u2<>timeout_err THEN tty_to_stream
3330 159 31 ! ! ! ELSE send_read_tty;
3340 160 32 ! ! ! tty_write : (* result from write tty *)
3350 161 33 ! ! ! IF u2=ok_result THEN send_read_stream
3360 162 34 ! ! ! ELSE tty_to_stream;
3370 163 35 ! ! ! stream_read : (* data from streamer *)
3380 164 36 ! ! ! stream_to_tty;
3390 165 37 ! ! ! stream_write : (* result from write stream *)
3400 166 38 ! ! ! IF u2=ok_result THEN send_read_tty
3410 167 39 ! ! ! ELSE stream_to_tty;
3420 168 40 ! ! ! tty_buf : send_read_tty;
3430 169 41 ! ! ! stream_buf : send_read_stream;
3440 170 42 ! ! ! OTHERWISE return( msg )
3450 171 43 ! ! !
3460 172 44 ! ! END (* case u4 *)
\f
osiflst 81.05.14. 12.31. page 6
3470 173 45 ! UNTIL false
3480 174 46 END. (* process osif *)
3490 175
\f
osiflst 81.05.14. 12.31. page 7
0 29* 63 109 115 144
1 15* 27* 104 110 146
2 16* 120
3 17* 50 52 103 105
4 18*
5 19*
6 20* 37* 38* 66 68 84 85 86
7 115
11 32*
14 104 112 113
16 118 119
19 48
20 99
24 21*
33 138
60 140
128 114
239 67
256 27*
alarmlabel 26*
alloc 131 148
as 43: 59: 75: 93: 133:
base 39* 114= 117 117 120= 120
buf 43: 44 59: 60 75: 76 93: 94 133: 134
byte 10*
char 27* 29*
contr 139=
cr 32*
create_shape 133
create_tty_ch <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
136
data 27* 110= 112= 113= 118= 119=
discon 31* 110
error_txt 29* 31*
false 173
fe_env_version <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
130
fi 25* 50= 66= 84= 103= 104 108
fix 26* 79 104
i 34* 96= 106 117 146= 149
incname 129
input_sem 4* 131 143 148 154
integer 25* 34* 37* 39*
j 34* 109= 110 110 115= 118 119
\f
osiflst 81.05.14. 12.31. page 8
la 25* 51= 67= 85= 104= 108=
label_size 50 52 103 105
lam_sem 6* 54 124 142
lock 43: 59: 75: 93: 133:
msg 35* 43: 44 54 59: 60 70 75: 76 88 93: 94 124 131 133:
134 142 143 144 145 148 154 155 170
ne 25* 52= 68= 86= 86 105=
nl 32*
no_of_by 104
no_stream_bufs <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
8*
no_trans_bufs <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
37* 146
no_tty_bufs 9* 149
ok_result 106 161 166
opzone 36* 129 130
op_sem 3* 129
osif 2*
own 129
pool 38*
portno 10*
process 2*
read_stream 62
read_tty 46
reference 35*
release 145
result 79=
return 170
s 131 148
sempointer 3* 6*
send_read_stream <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
57* 151 161 169
send_read_tty <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
41* 150 159 166 168
signal 54 70 88 124 142
stream_buf 19* 82 169:
stream_no 7* 64 80
stream_read 17* 65 163:
stream_sem 5* 70 88
stream_to_tty <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
91* 164 167
stream_write 18* 83 100 165:
testopen 129
testout 130
\f
osiflst 81.05.14. 12.31. page 9
timeout_err 158
timer 140=
transmit_buf 24* 38* 43 59 75 93
trans_pool 38* 131 148
ts_pointer 4*
tty_buf 20* 101 111 168:
tty_control 139
tty_length 51 85
tty_port 47 98 137
tty_read 15* 49 157:
tty_to_stream <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
73* 158 162
tty_write 16* 81 102 160:
txt_max 21* 29* 108 109
u1 46= 62= 78= 97= 136=
u2 47= 63= 79 96 98= 137= 144 158 161 166
u3 48= 64= 80= 99= 138=
u4 49= 65= 81 82= 83= 100 101= 102= 111 156
version 13* 130
w 143 154
wait 143 154
write_stream 78
write_tty 97
zone 36*
\f
osiflst 81.05.14. 12.31. page 10
AND 1
ARRAY 2
BEGIN 13
CASE 1
CONST 2
DIV 1
DO 14
ELSE 8
END 15
FOR 3
IF 9
OF 4
OTHERWISE 1
PROCEDURE 4
RECORD 1
REPEAT 2
THEN 9
TO 3
TYPE 1
UNTIL 2
VAR 3
WITH 6
\f
jg4 1981.05.14 12.30
osif program
81.05.14. 12.31. pascal80 version 1981.04.01
name headline beginline endline appetite(words)
send_read_tt 42 43 55 : 9
send_read_st 58 59 71 : 11
tty_to_strea 74 75 89 : 11
stream_to_tt 92 93 125 : 16
osif 13 129 174 : 109
code: 0 . 1744 = 1744 bytes
end of PASCAL80 compilation
end
blocksread = 52
«eof»