|
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»