DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦212213200⟧ TextFile

    Length: 115968 (0x1c500)
    Types: TextFile
    Names: »alaoslst«

Derivation

└─⟦a41ae585a⟧ Bits:30001842 SW-save af projekt 1000, Alarm-system
    └─⟦72244f0ef⟧ 
        └─⟦this⟧ »alaoslst« 

TextFile

\f

alaoslst    81.06.18.   14.12.                                                    page     1

   10    1          
   20    2          
   30    3           
\f

alaoslst    81.06.18.   14.12.                                                    page     2

 1010    4        PROCESS alarm_opsys(VAR semvector: system_vector;
 1020    5          VAR evavector: appl_vector );
 1030    6          
 1040    7            (***************************************************
 1050    8            *
 1060    9            * function:    the test module is used to initialise buffers,
 1070   10            *              signal them to semaphores, and to write their
 1080   11            *              contents, when they have been handled by another
 1090   12            *
 1100   13            * externals:   none
 1110   14            *
 1120   15            * var params:  none
 1130   16            *
 1140   17            * semaphores:  the module sends to the system semaphore
 1150   18            *              "operatorsem".
 1160   19            *
 1170   20            *
 1180   21            * programmed may 1980 by wib and stb
 1190   22            *
 1200   23            ***************************************************)
 1210   24          
 1220   25        CONST
 1230   26          version = "vers  6.05 /";
 1240   27          
 1250   28          
 1260   29           
\f

alaoslst    81.06.18.   14.12.                                                    page     3

 2010   30        CONST
 2020   31          opbufsize = 80; (* no. of bytes in buffers to the operator module *)
 2030   32            (***   bufs   ***)
 2040   33          messbufsize= 64; (*words*)
 2050   34          testbufsize= 120;
 2060   35          maxbufsize= 120;
 2070   36          minbufsize=  16;
 2080   37          noofmodules = 27;
 2090   38          noofsemaphores= ts_sem_total;
 2100   39          pu= 0; (* processing unit number *)
 2110   40          pr= -1; (* timeslicing priority *)
 2120   41          
 2130   42          valparam= "param val ";
 2140   43          noparam= " no param ";
 2150   44          alreadyexists= " already exists     ";
 2160   45          doesntexist= " doesn't exist      ";
 2170   46          illegalno= "illegal no";
 2180   47          createerror= "error in createcall ";
 2190   48          
 2200   49          linelength= 80;
 2210   50          firstindex= 6 + alfalength;
 2220   51          lastindex= firstindex + (linelength - 1);
 2230   52          ok= 0; (* result from operator *)
 2240   53          
 2250   54          
 2260   55        TYPE
 2270   56          
 2280   57            (*---- for alarmenv later  ------*)
 2290   58          
 2300   59          paxpooltype = pool no_pax_bufs OF min_rut_mess;
 2310   60          
 2320   61          opbuftype=
 2330   62          RECORD
 2340   63          !  first,
 2350   64          !  last,
 2360   65          !  next: integer;
 2370   66          !  name: alfa;
 2380   67          !  data: ARRAY (firstindex..lastindex) OF char
 2390   68          END;
 2400   69          
 2410   70            (***   bufs   ***)
 2420   71          messbuftype= ARRAY (1..messbufsize) OF integer;
 2430   72          testbuftype= ARRAY (1..testbufsize) OF integer;
 2440   73          minbuftype = ARRAY (1.. minbufsize) OF integer;
 2450   74          maxbuftype = ARRAY (1.. maxbufsize) OF integer;
 2460   75          
\f

alaoslst    81.06.18.   14.12.                                                    page     4

 2470   76          createchtype=
 2480   77          RECORD
 2490   78          !  controlinfo, timeout: byte
 2500   79          END;
 2510   80          
 2520   81          atbuffer= ARRAY (0..1) OF byte;
 2530   82          
 2540   83          
 2550   84          alfa10= ARRAY (1..10) OF char;
 2560   85          alfa20= ARRAY (1..20) OF char;
 2570   86          
 2580   87            (* type necessary to compare sempointers *)
 2590   88          point_rec = RECORD
 2600   89                      !  a: sempointer;
 2610   90                      END;
 2620   91          
 2630   92        VAR
 2640   93            (*********  pools  *********)
 2650   94          opbufpool: pool 3 OF opbuftype;
 2660   95            (***   bufs   ***)
 2670   96          testbufpool: pool 12 OF testbuftype;
 2680   97          messbufpool: pool no_listen OF messbuftype;
 2690   98          paxbufpool : paxpooltype;
 2700   99          
 2710  100            (**********  semaphores  **********)
 2720  101          spool_sem,
 2730  102          countsem,    (* used by "t"-command *)
 2740  103          wsem,        (* buffers written by the operatormodule is
 2750  104                       returned here *)
 2760  105          wrsem        (* buffers with content read by the operator
 2770  106                       module is returned here *)
 2780  107          : semaphore;
 2790  108          ts_sem : ARRAY (1..ts_sem_total) OF semaphore;
 2800  109          
 2810  110            (**********  references  **********)
 2820  111          nref,
 2830  112          countref,    (* used by "t"-command *)
 2840  113          opinref,    (* ref. to buffer from operator *)
 2850  114          opoutref,   (* ref. to buffer to operator *)
 2860  115          cur           (* ref. to current buffer *)
 2870  116          : reference;
 2880  117          
 2890  118            (**********  pointers  **********)
 2900  119          spool_test_sem : sempointer;
 2910  120          opsem: sempointer;
 2920  121          worksem: sempointer;
\f

alaoslst    81.06.18.   14.12.                                                    page     5

 2930  122          sem : ts_pointer_vector;
 2940  123          
 2950  124            (**********  zones  **********)
 2960  125          z: zone;
 2970  126          
 2980  127            (**********  char  **********)
 2990  128          command: char;   (* the first char the operator typed *)
 3000  129          
 3010  130          
 3020  131            (**********  integers  **********)
 3030  132          base,            (* number base for input and output *)
 3040  133          firstword,       (* used by "o"-command *)
 3050  134          i,
 3060  135          incharsleft,   (* no. of not yet read chars in opinbuffer *)
 3070  136          j,
 3080  137          k,
 3090  138          lastword,       (* used by "o"-command *)
 3100  139          leftbyte,       (* used by "p"-command *)
 3110  140          moduleno,       (* tested module *)
 3120  141          noofparams,     (* no. of params in operator line *)
 3130  142          oldbase,        (* used by the "b" command *)
 3140  143          rightbyte,      (* used by "p"-command *)
 3150  144          semno,           (* typed semaphore number *)
 3160  145          curbufsize,     (* in words *)
 3170  146          curbuftype,     (* 0 - 4 *)
 3180  147          st              (* storage requirements *)
 3190  148          : integer;
 3200  149          
 3210  150            (**********  booleans  **********)
 3220  151          readok,         (* indicates if the last call of readinteger
 3230  152                          yielded a result *)
 3240  153          first_loop : boolean:= true;
 3250  154          testmode
 3260  155          : boolean;
 3270  156          
 3280  157            (**********  arrays  **********)
 3290  158          netc_locals : netc_loc_sems;
 3300  159          params: ARRAY(1..50) OF integer; (* holds parameters from operator *)
 3310  160          sh: ARRAY(1..noofmodules) OF shadow; (* ref. to process incarn. *)
 3320  161          
 3330  162            (********** param to use in create **********)
 3340  163          dc_addr: macroaddr := macroaddr(1,0,0);
 3350  164          nc_addr: macroaddr := macroaddr(1,1,0);
 3360  165          ts_addr: macroaddr := macroaddr(1,1,1);
 3370  166          conn_state: connector_state:= stop_code;
 3380  167          
\f

alaoslst    81.06.18.   14.12.                                                    page     6

 3390  168            (*** auxiliary to compare sempointers ***)
 3400  169          ap,bp : point_rec;
 3410  170          node_no : byte;
 3420  171          dte_addr : int_pax_addr := int_pax_addr(0,0,0,3);
 3430  172           
\f

alaoslst    81.06.18.   14.12.                                                    page     7

 4010  173            (**********  externals **********)
 4020  174        PROCESS fesupervisor(
 4030  175          op: sempointer;
 4040  176          VAR input_sem, write_sem, que_up, que_down : ! ts_pointer;
 4050  177          VAR stream_sem, netc_sem, com_pool : ! sempointer);
 4060  178        EXTERNAL;
 4070  179        PROCESS streamer(
 4080  180          VAR inputsem, xmitter, receiver: ! ts_pointer;
 4090  181          retrans_max: integer;
 4100  182          op: sempointer);
 4110  183          
 4120  184        EXTERNAL;
 4130  185        
 4140  186        PROCESS fpadriver(
 4150  187          VAR sem: ! ts_pointer;
 4160  188          level, block: integer;
 4170  189          rec: boolean;
 4180  190          op: sempointer);
 4190  191        EXTERNAL;
 4200  192        
 4210  193        PROCESS osif(
 4220  194          op_sem: sempointer;
 4230  195          VAR inputsem: ! ts_pointer;
 4240  196          VAR streamsem, lamsem: ! sempointer;
 4250  197          streamno,
 4260  198          streambufs,
 4270  199          ttybufs,
 4280  200          port: byte);
 4290  201        EXTERNAL;
 4300  202        PROCESS mirror(
 4310  203          op_sem : sempointer;
 4320  204          VAR in_sem : !ts_pointer;
 4330  205          VAR str_sem : !sempointer;
 4340  206          rec,
 4350  207          xmit : byte);
 4360  208        EXTERNAL;
 4370  209        PROCESS tssuper(
 4380  210          op: sempointer;
 4390  211          VAR ts_sem : !ts_pointer_vector);
 4400  212        EXTERNAL;
 4410  213        
 4420  214        PROCESS at_handler(
 4430  215          op: sempointer;
 4440  216          VAR
 4450  217          dc_addr,
 4460  218          ts_addr: !macroaddr;
\f

alaoslst    81.06.18.   14.12.                                                    page     8

 4470  219          VAR ts_sem : !ts_pointer_vector);
 4480  220        EXTERNAL;
 4490  221        
 4500  222        PROCESS vc_handler(
 4510  223          op: sempointer;
 4520  224          VAR
 4530  225          dc_addr,
 4540  226          ts_addr: !macroaddr;
 4550  227          VAR ts_sem : !ts_pointer_vector);
 4560  228        EXTERNAL;
 4570  229        
 4580  230        PROCESS timout(
 4590  231          opsem: sempointer;
 4600  232          VAR timeoutsem: !ts_pointer;
 4610  233          ticklength, max: integer);
 4620  234        EXTERNAL;
 4630  235        
 4640  236        PROCESS atconnector(
 4650  237          opsem: sempointer;
 4660  238          VAR
 4670  239          atcsem,
 4680  240          quesem : !ts_pointer;
 4690  241          VAR
 4700  242          athsem,
 4710  243          driversem,
 4720  244          com_sem: !sempointer;
 4730  245          VAR
 4740  246          activ: connector_state;
 4750  247          VAR
 4760  248          delay: integer;
 4770  249          VAR
 4780  250          dc_addr,
 4790  251          ts_addr: !macroaddr;
 4800  252          ownaddr: integer;
 4810  253          channelno: byte);
 4820  254        EXTERNAL;
 4830  255        
 4840  256        PROCESS vcc(
 4850  257          opsem: sempointer;
 4860  258          VAR
 4870  259          messem,
 4880  260          quesem : !ts_pointer;
 4890  261          VAR
 4900  262          vchsem,
 4910  263          lamsem,
 4920  264          timeoutsem,
\f

alaoslst    81.06.18.   14.12.                                                    page     9

 4930  265          com_sem: !sempointer;
 4940  266          VAR
 4950  267          dcaddr,
 4960  268          tsaddr: !macroaddr;
 4970  269          micaddr: integer;
 4980  270          channelno: byte);
 4990  271        EXTERNAL;
 5000  272        
 5010  273        PROCESS tsconnector(
 5020  274          opsem: sempointer;
 5030  275          VAR
 5040  276          tsssem,
 5050  277          dcsem,
 5060  278          ncsem,
 5070  279          lamsem,
 5080  280          timeoutsem,
 5090  281          com_sem: !sempointer;
 5100  282          VAR
 5110  283          inputsem,
 5120  284          semint1,
 5130  285          semint2,
 5140  286          semint3,
 5150  287          semint4: !ts_pointer);
 5160  288        EXTERNAL;
 5170  289        
 5180  290        PROCESS lam(
 5190  291          opsem: sempointer;
 5200  292          pu, level: integer;
 5210  293          VAR inputsem: !ts_pointer);
 5220  294        EXTERNAL;
 5230  295        
 5240  296        PROCESS vagt(
 5250  297          opsem: sempointer;
 5260  298          VAR sem: !ts_pointer_vector);
 5270  299        EXTERNAL;
 5280  300        
 5290  301        PROCESS dcmodule(
 5300  302          opsem: sempointer;
 5310  303          VAR sem1,sem2,sem3,sem4: !sempointer;
 5320  304          VAR sem5,sem6,sem7,sem8: !ts_pointer);
 5330  305        EXTERNAL;
 5340  306        
 5350  307        PROCESS tap(
 5360  308          opsem: sempointer;
 5370  309          VAR tab_sem: !ts_pointer);
 5380  310        EXTERNAL;
\f

alaoslst    81.06.18.   14.12.                                                    page    10

 5390  311        
 5400  312        PROCESS ncsup(
 5410  313          opsem: sempointer;
 5420  314          VAR
 5430  315          main,
 5440  316          free,
 5450  317          done: !ts_pointer;
 5460  318          VAR
 5470  319          net_sem,
 5480  320          timeoutsem: !sempointer);
 5490  321        EXTERNAL;
 5500  322        
 5510  323        PROCESS dtesimulator (
 5520  324          test_sem : sempointer;
 5530  325          VAR
 5540  326          pax_pool_sem,
 5550  327          dte_sem : !ts_pointer;
 5560  328          VAR
 5570  329          netc_sem,
 5580  330          rut_trm_sem,
 5590  331          rut_rec_sem : !sempointer;
 5600  332          dte_addr : int_pax_addr
 5610  333          );
 5620  334        EXTERNAL;
 5630  335        
 5640  336        PROCESS netconnector (
 5650  337          global_timeout : byte;
 5660  338          test_sem : sempointer;
 5670  339          VAR
 5680  340          pax_pool_sem,
 5690  341          main_sem : !ts_pointer;
 5700  342          local_sem_table : netc_loc_sems;
 5710  343          VAR
 5720  344          com_pool_sem,
 5730  345          timeout_sem,
 5740  346          dte_sem : !sempointer
 5750  347          );
 5760  348        EXTERNAL;
 5770  349        
 5780  350        PROCESS tapdte (
 5790  351          op_sem : sempointer;
 5800  352          VAR sem : ! ts_pointer );
 5810  353        EXTERNAL;
 5820  354        
 5830  355        PROCESS tapnet (
 5840  356          op_sem : sempointer;
\f

alaoslst    81.06.18.   14.12.                                                    page    11

 5850  357          VAR sem : !ts_pointer );
 5860  358        EXTERNAL;
 5870  359        
 5880  360        PROCESS testoutput (
 5890  361          insem,
 5900  362          opsem : sempointer );
 5910  363        EXTERNAL;
 5920  364        
 5930  365        
 5940  366        PROCEDURE setoflowmask( oflow: boolean);
 5950  367        EXTERNAL;
 5960  368        
 5970  369        PROCEDURE readram( VAR result:byte; index : integer);
 5980  370        EXTERNAL;
 5990  371        
 6000  372          (********** forwards **********)
 6010  373        
 6020  374        PROCEDURE getparams;
 6030  375        FORWARD;
 6040  376        
 6050  377        PROCEDURE outdecimal(int,positions: integer);
 6060  378        FORWARD;
 6070  379        
 6080  380        PROCEDURE outinteger(int,positions: integer);
 6090  381        FORWARD;
 6100  382        
 6110  383        PROCEDURE outstring10(text: alfa10);
 6120  384        FORWARD;
 6130  385        
 6140  386        PROCEDURE outstring12(text: alfa);
 6150  387        FORWARD;
 6160  388        
 6170  389        PROCEDURE outstring20(text: alfa20);
 6180  390        FORWARD;
 6190  391        
 6200  392        FUNCTION readchar: char;
 6210  393        FORWARD;
 6220  394        
 6230  395        FUNCTION readinteger: integer;
 6240  396        FORWARD;
 6250  397        
 6260  398        PROCEDURE repeatchar;
 6270  399        FORWARD;
 6280  400        
 6290  401        PROCEDURE testmodeout (text: alfa20; i: integer);
 6300  402        FORWARD;
\f

alaoslst    81.06.18.   14.12.                                                    page    12

 6310  403        
 6320  404        PROCEDURE writenl;
 6330  405        FORWARD;
 6340  406         
\f

alaoslst    81.06.18.   14.12.                                                    page    13

 7010  407        FUNCTION dte_pax_addr (i:integer): int_pax_addr;
 7020  408        VAR pax_adr : int_pax_addr;
 7030  409        BEGIN
 7040  410    1   ! pax_adr.net_addr := params(i);
 7050  411    2   ! pax_adr.reg_addr := params(i+1);
 7060  412    3   ! pax_adr.node_addr := params(i+2);
 7070  413    4   ! pax_adr.ext_addr := params(i+3);
 7080  414    5   ! dte_pax_addr := pax_adr;
 7090  415    6   END;
 7100  416        
 7110  417        PROCEDURE make_phead (
 7120  418          i : integer; op_code : byte;
 7130  419          VAR p : format_1_packet_header );
 7140  420        BEGIN
 7150  421    1   ! WITH p DO
 7160  422    2   !   BEGIN
 7170  423    3   !   ! format := rut_format_1;
 7180  424    4   !   ! priority := rut_prio_0;
 7190  425    5   !   ! packet_type := rut_pack_type;
 7200  426    6   !   ! state := 0;
 7210  427    7   !   ! org := dte_pax_addr(i);
 7220  428    8   !   ! dst := dte_pax_addr(i+3);
 7230  429    9   !   ! facility := params(9);
 7240  430   10   !   ! user_field := op_code *256 + params(2);
 7250  431   11   !   ! top_of_data := 0;
 7260  432   12   !   END;
 7270  433   13   END;
 7280  434         
\f

alaoslst    81.06.18.   14.12.                                                    page    14

 8010  435        FUNCTION packmacro (
 8020  436          par:integer):macroaddr;
 8030  437        VAR
 8040  438          a:macroaddr;
 8050  439        BEGIN
 8060  440    1   ! a.dc_addr := params( par);
 8070  441    2   ! a.nc_addr := params( par+1);
 8080  442    3   ! a.ts_addr := params( par+2);
 8090  443    4   ! packmacro := a;
 8100  444    5   END;
 8110  445        
 8120  446        FUNCTION packextnode (
 8130  447          par:integer) : ext_pax_addr;
 8140  448        VAR
 8150  449          i:integer;
 8160  450          a:ext_pax_addr;
 8170  451        BEGIN
 8180  452    1   ! FOR i:=1 TO 6 DO
 8190  453    2   !   a(i):=0;
 8200  454    3   ! FOR i:=0 TO 2 DO
 8210  455    4   !   BEGIN
 8220  456    5   !   ! a(7+i):=params(par+i);
 8230  457    6   !   ! testout(z,"params      ", params(par+i));
 8240  458    7   !   END;
 8250  459    8   ! FOR i:= 10 TO 14 DO
 8260  460    9   !   a(i) := 0;
 8270  461   10   ! FOR i := 1 TO 14 DO
 8280  462   11   !   testout(z,"a           ", a(i));
 8290  463   12   ! packextnode := a;
 8300  464   13   END;
 8310  465         
\f

alaoslst    81.06.18.   14.12.                                                    page    15

 9010  466        PROCEDURE get_curbuftype;
 9020  467        BEGIN
 9030  468    1   ! IF cur^.size < minbufsize THEN
 9040  469    2   !   curbuftype:= 0 ELSE
 9050  470    3   !   IF cur^.size < messbufsize THEN
 9060  471    4   !     curbuftype:= 1 ELSE
 9070  472    5   !     IF cur^.size < maxbufsize THEN
 9080  473    6   !       curbuftype:= 2 ELSE
 9090  474    7   !       IF cur^.size < testbufsize THEN
 9100  475    8   !         curbuftype:= 3 ELSE
 9110  476    9   !         curbuftype:= 4;
 9120  477   10   ! 
 9130  478   11   ! CASE curbuftype OF
 9140  479   12   ! ! 0: curbufsize:= 0;
 9150  480   13   ! ! 1: curbufsize:= minbufsize;
 9160  481   14   ! ! 2: curbufsize:= messbufsize;
 9170  482   15   ! ! 3: curbufsize:= maxbufsize;
 9180  483   16   ! ! 4: curbufsize:= testbufsize;
 9190  484   17   ! END;
 9200  485   18   END;
 9210  486         
\f

alaoslst    81.06.18.   14.12.                                                    page    16

10010  487        PROCEDURE getinput;
10020  488            (* reads input from console into opinref^ *)
10030  489        BEGIN
10040  490    1   ! 
10050  491    2   ! testmodeout ("getinput called     ",0);
10060  492    3   ! 
10070  493    4   ! REPEAT
10080  494    5   ! ! LOCK opinref AS opbuf: opbuftype DO
10090  495    6   ! !   opbuf.next:= firstindex;
10100  496    7   ! ! signal (opinref, opsem^);
10110  497    8   ! ! wait (opinref, wrsem);
10120  498    9   ! UNTIL opinref^.u2= ok (* 0*);
10130  499   10   ! 
10140  500   11   ! LOCK opinref AS opbuf: opbuftype DO
10150  501   12   !   WITH opbuf DO
10160  502   13   !     BEGIN
10170  503   14   !     ! incharsleft:= next - first;
10180  504   15   !     ! next:= firstindex;
10190  505   16   !     END;
10200  506   17   ! command:= readchar;
10210  507   18   ! 
10220  508   19   ! testmodeout ("command read:       ",ord(command));
10230  509   20   ! 
10240  510   21   ! getparams;
10250  511   22   END (* getinput *);
10260  512         
\f

alaoslst    81.06.18.   14.12.                                                    page    17

11010  513        PROCEDURE getparams;
11020  514            (* reads integer parameters *)
11030  515        VAR newbase: boolean;
11040  516        BEGIN
11050  517    1   ! testmodeout ("getparams called    ",0);
11060  518    2   ! 
11070  519    3   ! noofparams:= 0;
11080  520    4   ! 
11090  521    5   ! IF command IN (."a","b","c","d","e","f","k","n","o","p","s","t","w","x".)
11100  522    6   !   THEN
11110  523    7   !   BEGIN (* change to decimal *)
11120  524    8   !   ! oldbase:= base;
11130  525    9   !   ! base:= 10;
11140  526   10   !   ! newbase:= true;
11150  527   11   !   END
11160  528   12   ! ELSE
11170  529   13   !   newbase:= false;
11180  530   14   ! 
11190  531   15   ! REPEAT
11200  532   16   ! ! noofparams:= noofparams + 1;
11210  533   17   ! ! params(noofparams):= readinteger;
11220  534   18   ! ! testmodeout ("parameter read:     ",params(noofparams));
11230  535   19   ! ! IF (noofparams=1) THEN
11240  536   20   ! !   IF command IN (."f","p".) THEN
11250  537   21   ! !     BEGIN (* change to old *)
11260  538   22   ! !     ! base:= oldbase;
11270  539   23   ! !     ! newbase:= false;
11280  540   24   ! !     END;
11290  541   25   ! ! 
11300  542   26   ! UNTIL (NOT readok) OR (noofparams= 50);
11310  543   27   ! 
11320  544   28   ! noofparams:= noofparams - 1;
11330  545   29   ! 
11340  546   30   ! IF newbase THEN
11350  547   31   !     (* change back to old base *)
11360  548   32   !   base:= oldbase;
11370  549   33   END (* getparams *);
11380  550         
\f

alaoslst    81.06.18.   14.12.                                                    page    18

12010  551        PROCEDURE init_proc(
12020  552          index: integer;
12030  553          name,
12040  554          inc_name : alfa;
12050  555          p    : processrec;
12060  556          size,
12070  557          prio : integer);
12080  558        VAR
12090  559          okl,
12100  560          ok   : integer;
12110  561        BEGIN
12120  562    1   ! IF NOT nil(sh(index)) THEN
12130  563    2   !   outstring20(alreadyexists) ELSE
12140  564    3   !   BEGIN
12150  565    4   !   ! IF noofparams<2 THEN st:= size;
12160  566    5   !   ! okl:= link(name,p.processref^);
12170  567    6   !   ! ok:= create(inc_name,p,sh(index),st);
12180  568    7   !   ! IF ok=0 THEN
12190  569    8   !   !   start(sh(index),prio) ELSE
12200  570    9   !   !   BEGIN
12210  571   10   !   !   ! ok:= ok*100+okl;
12220  572   11   !   !   ! outstring20(createerror);
12230  573   12   !   !   ! outstring12(inc_name);
12240  574   13   !   !   ! outdecimal(ok,5);
12250  575   14   !   !   ! writenl;
12260  576   15   !   !   ! okl:= unlink(p.processref^);
12270  577   16   !   !   END;
12280  578   17   !   END;
12290  579   18   END;
12300  580         
\f

alaoslst    81.06.18.   14.12.                                                    page    19

13010  581        PROCEDURE init_modul(index: integer);
13020  582        CONST
13030  583          n1 = "tssupervisor";
13040  584          n2 = "at_handler  ";
13050  585          n3 = "vc_handler  ";
13060  586          n4 = "timout      ";
13070  587          n5 = "atconnector ";
13080  588          n6 = "vcatc       ";
13090  589          n7 = "tsconnector ";
13100  590          n8 = "atvagtsim   ";
13110  591          n9 = "lam         ";
13120  592          n10= "tap         ";
13130  593          n11= "dcmodule    ";
13140  594          n13= "ncsupervisor";
13150  595          n14= "vcitc       ";
13160  596          n15= "itvagtsim   ";
13170  597          n16= "alc         ";
13180  598          n17= "netconnector";
13190  599          n18= "dtesimulator";
13200  600          n19= "tapdte      ";
13210  601          n20= "tapnet      ";
13220  602          n21= "testoutput  ";
13230  603          n22= "fesupervisor";
13240  604          n23= "streamer    ";
13250  605          n24= "osif        ";
13260  606          n25= "fpadriver   ";
13270  607          n27= "str_mirror  ";
13280  608        BEGIN
13290  609    1   ! CASE index OF
13300  610    2   ! ! 1: (* tssup *)
13310  611    3   ! !   init_proc(index, n1, n1,
13320  612    4   ! !   tssuper( opsem, sem),
13330  613    5   ! !   tss_size,tss_pri);
13340  614    6   ! ! 2: (* ath *)
13350  615    7   ! !   init_proc(index, n2, n2,
13360  616    8   ! !   at_handler( opsem, dc_addr, ts_addr, sem),
13370  617    9   ! !   ath_size,ath_pri);
13380  618   10   ! ! 3: (* vch *)
13390  619   11   ! !   init_proc(index, n3, n3,
13400  620   12   ! !   vc_handler( opsem, dc_addr, ts_addr, sem),
13410  621   13   ! !   vch_size,vch_pri);
13420  622   14   ! ! 4: (* timeout *)
13430  623   15   ! !   init_proc(index, n4, n4,
13440  624   16   ! !   timout( opsem, sem(timeout_sem_no), time_out_unit, 40),
13450  625   17   ! !   tim_size,tim_pri);
13460  626   18   ! ! 5: (* atc *)
\f

alaoslst    81.06.18.   14.12.                                                    page    20

13470  627   19   ! !   init_proc(index, n5, n5,
13480  628   20   ! !   atconnector( opsem, sem(atc_sem_no), sem(atc_sem_no+1),
13490  629   21   ! !   sem(ath_sem_no).s, sem(lam_sem_no).s, sem(com_pool).w,
13500  630   22   ! !   conn_state, index, dc_addr, ts_addr, 257, 7),
13510  631   23   ! !   atc_size,atc_pri);
13520  632   24   ! ! 6: (* vcatc *)
13530  633   25   ! !   init_proc(index, n6, n6,
13540  634   26   ! !   vcc( opsem, sem(vcc_sem_no), sem(vcc_sem_no+1),
13550  635   27   ! !   sem(vch_sem_no).s, sem(vas_sem_no).s, sem(timeout_sem_no).s,
13560  636   28   ! !   sem(com_pool).w, dc_addr, ts_addr, 63, 2),
13570  637   29   ! !   vac_size, vcc_pri);
13580  638   30   ! ! 7: (* tsc *)
13590  639   31   ! !   init_proc(index, n7, n7,
13600  640   32   ! !   tsconnector( opsem, sem(tssup_sem_no).s,
13610  641   33   ! !   sem(dc_sem_no).s,
13620  642   34   ! !   sem(nc_sem_no).s, sem(lam_sem_no).s, sem(timeout_sem_no).s,
13630  643   35   ! !   sem(com_pool).w, sem(netc_sem_no),
13640  644   36   ! !   sem(pax_sem_2), sem(pax_sem_1),
13650  645   37   ! !   sem(pax_ncp_sem), sem(dte_sem_no)),
13660  646   38   ! !   tsc_size, tsc_pri);
13670  647   39   ! ! 8: (* atvagtsim *)
13680  648   40   ! !   init_proc(index, n8, n8,
13690  649   41   ! !   vagt( opsem, sem),
13700  650   42   ! !   vas_size, vc_sim_pri);
13710  651   43   ! ! 9: (* lam *)
13720  652   44   ! !   init_proc(index, n9, n9,
13730  653   45   ! !   lam( opsem, pu, 5, sem(lam_sem_no)),
13740  654   46   ! !   lam_size, 1);
13750  655   47   ! ! 10: (* tap *)
13760  656   48   ! !   init_proc(index, n10, n10,
13770  657   49   ! !   tap( opsem, sem(tap_sem_no)),
13780  658   50   ! !   512, 0);
13790  659   51   ! ! 11: (* dc *)
13800  660   52   ! !   init_proc(index, n11, n11,
13810  661   53   ! !   dcmodule( opsem, sem(lam_sem_no).s, sem(netc_sem_no).s,
13820  662   54   ! !   sem(com_pool).w, sem(timeout_sem_no).s,
13830  663   55   ! !   sem(dc_sem_no), sem(dc_int1), sem(dc_int2), sem(dc_int3)),
13840  664   56   ! !   dc_sim_size, dc_sim_pri);
13850  665   57   ! ! 12: (* tap01 *)
13860  666   58   ! !   init_proc(index, n10, "tap01       ",
13870  667   59   ! !   tap ( opsem, sem(tap1_sem_no)),
13880  668   60   ! !   512, 0);
13890  669   61   ! ! 13: (* ncsupervisor *)
13900  670   62   ! !   init_proc(index, n13, n13,
13910  671   63   ! !   ncsup( opsem, sem(nc_sem_no), sem(ncsup_int1), sem(ncsup_int2),
13920  672   64   ! !   sem(netc_sem_no).s, sem(timeout_sem_no).s),
\f

alaoslst    81.06.18.   14.12.                                                    page    21

13930  673   65   ! !   nc_sup_size, tss_pri);
13940  674   66   ! ! 14: (* vcitc *)
13950  675   67   ! !   init_proc(index, n14, n14,
13960  676   68   ! !   vcc( opsem, sem(vcc_sem_no+2), sem(vcc_sem_no+3),
13970  677   69   ! !   sem(vch_sem_no).s, sem(vis_sem_no).s, sem(timeout_sem_no).s,
13980  678   70   ! !   sem(com_pool).w, dc_addr, ts_addr, 64, 3),
13990  679   71   ! !   vic_size, vcc_pri);
14000  680   72   ! ! 15: (* itvagtsim *)
14010  681   73   ! !   init_proc(index, n15, n15,
14020  682   74   ! !   vagt( opsem, sem),
14030  683   75   ! !   vis_size, vc_sim_pri);
14040  684   76   ! ! 17: (* netconnector *)
14050  685   77   ! !   init_proc ( index, n17, n17,
14060  686   78   ! !   netconnector( glob_timeout, spool_test_sem,
14070  687   79   ! !   sem( pax_pool),sem( netc_sem_no), netc_locals,
14080  688   80   ! !   sem( com_pool).w,
14090  689   81   ! !   sem( timeout_sem_no).s, sem( dte_sem_no).s),
14100  690   82   ! !   netc_size, netc_pri);
14110  691   83   ! ! 
14120  692   84   ! ! 18: (* dtesimulator *)
14130  693   85   ! !   init_proc ( index, n18, n18,
14140  694   86   ! !   dtesimulator ( spool_test_sem, sem( pax_pool), sem(dte_sem_no),
14150  695   87   ! !   sem( netc_sem_no).s,
14160  696   88   ! !   sem( pax_sem_1).s, sem( pax_sem_2).s,
14170  697   89   ! !   dte_addr),
14180  698   90   ! !   netc_size, netc_pri);
14190  699   91   ! ! 19: (* tapdte *)
14200  700   92   ! !   init_proc ( index, n19, n19,
14210  701   93   ! !   tapdte ( opsem, sem(tap_dte_sem_no)),
14220  702   94   ! !   512,0);
14230  703   95   ! ! 20: (* tapnet *)
14240  704   96   ! !   init_proc ( index, n20, n20,
14250  705   97   ! !   tapnet ( opsem, sem(tap_net_sem_no)),
14260  706   98   ! !   512,0);
14270  707   99   ! ! 
14280  708  100   ! ! 21: (* testoutput *)
14290  709  101   ! !   init_proc ( index, n21, n21,
14300  710  102   ! !   testoutput ( spool_test_sem, opsem),
14310  711  103   ! !   512,0);
14320  712  104   ! ! 22:  (* fesup *)
14330  713  105   ! !   init_proc(index,n22,n22,
14340  714  106   ! !   fesupervisor(opsem,
14350  715  107   ! !   sem(fesup_sem_no),sem(fesup_write),sem(fesup_que_up),sem(fesup_que_down),
14360  716  108   ! !   sem(stream_sem_no).s,sem(netc_sem_no).s, sem(com_pool).w ),
14370  717  109   ! !   fesup_size, fesup_pri );
14380  718  110   ! ! 
\f

alaoslst    81.06.18.   14.12.                                                    page    22

14390  719  111   ! ! 23:  (* streamer *)
14400  720  112   ! !   init_proc(index,n23,n23,
14410  721  113   ! !   streamer( sem(stream_sem_no), sem(stream_xmit),
14420  722  114   ! !   sem(stream_rec), 3, opsem), stream_size, stream_pri);
14430  723  115   ! ! 
14440  724  116   ! ! 24:  (* osif *)
14450  725  117   ! !   init_proc(index,n24,n24,
14460  726  118   ! !   osif(opsem, sem(osif_sem_no), sem(stream_sem_no).s,
14470  727  119   ! !   sem(lam_sem_no).s, 3, 2, 3, 7),
14480  728  120   ! !   osif_size, osif_pri);
14490  729  121   ! ! 
14500  730  122   ! ! 25: (* fpareceiver *)
14510  731  123   ! !   init_proc(index,n25, "fparec      ",
14520  732  124   ! !   fpadriver( sem(stream_rec), 6, 2, true, opsem),
14530  733  125   ! !   512, -1);
14540  734  126   ! ! 
14550  735  127   ! ! 26:  (* fpaxmitter *)
14560  736  128   ! !   init_proc(index,n25,"fpaxmit     ",
14570  737  129   ! !   fpadriver(sem(stream_xmit),7,2,false,opsem),
14580  738  130   ! !   512, -1);
14590  739  131   ! ! 
14600  740  132   ! ! 27: (* str mirror *)
14610  741  133   ! !   init_proc( index, n27, n27,
14620  742  134   ! !   mirror( opsem, sem(mirror_sem_no),
14630  743  135   ! !   sem(stream_sem_no).s, 10, 11),
14640  744  136   ! !   512, 3);
14650  745  137   ! ! 
14660  746  138   ! ! 
14670  747  139   ! ! 
14680  748  140   ! ! OTHERWISE
14690  749  141   ! ! BEGIN
14700  750  142   ! ! ! outdecimal(index,4);
14710  751  143   ! ! ! outstring10(illegalno);
14720  752  144   ! ! END;
14730  753  145   ! END (* case *)
14740  754  146   END;
14750  755         
\f

alaoslst    81.06.18.   14.12.                                                    page    23

15010  756        FUNCTION moduleready(moduleno: integer): boolean;
15020  757            (* tests if an incarnation of the module is existing
15030  758            and writes an errormessage if so *)
15040  759        BEGIN
15050  760    1   ! IF nil( sh( moduleno) ) THEN moduleready:=true
15060  761    2   ! ELSE
15070  762    3   !   BEGIN  (* module is already existing *)
15080  763    4   !   ! outdecimal(moduleno,4);
15090  764    5   !   ! outstring20(alreadyexists);
15100  765    6   !   ! moduleready:=false;
15110  766    7   !   END;
15120  767    8   END (* module ready *);
15130  768        
15140  769        
15150  770         
\f

alaoslst    81.06.18.   14.12.                                                    page    24

16010  771        PROCEDURE outchar(ch:char);
16020  772            (* writes ch into the output buffer *)
16030  773        BEGIN
16040  774    1   ! LOCK opoutref AS opbuf: opbuftype DO
16050  775    2   !   WITH opbuf DO
16060  776    3   !     BEGIN
16070  777    4   !     ! last:= last + 1;
16080  778    5   !     ! data (last):= ch;
16090  779    6   !     END;
16100  780    7   END (* outchar *);
16110  781         
\f

alaoslst    81.06.18.   14.12.                                                    page    25

17010  782        PROCEDURE outdecimal (int, positions: integer);
17020  783            (* writes the integer "int" decimally into opbuf starting
17030  784            at "last", which is updated accordingly *)
17040  785          
17050  786        BEGIN
17060  787    1   ! oldbase:= base;
17070  788    2   ! base:= 10;
17080  789    3   ! outinteger(int,positions);
17090  790    4   ! base:= oldbase;
17100  791    5   END (* outdecimal *);
17110  792         
\f

alaoslst    81.06.18.   14.12.                                                    page    26

18010  793        PROCEDURE outinteger(int,positions:integer);
18020  794            (* writes the integer "int" into opbuf starting at
18030  795            "last", which is updated accordingly *)
18040  796        CONST
18050  797          maxpos = 20; (* max number of positions in layout *)
18060  798          
18070  799        VAR
18080  800          bits: ARRAY(0..15) OF bit;
18090  801          digits:ARRAY(1..maxpos) OF char;
18100  802          curdigit, (* current pos. in digits-array to be filled out *)
18110  803          curpos,   (* cur. pos. in the nunber being computed *)
18120  804          h, i,
18130  805          m, newm,
18140  806          noofdig,  (* no. of digits in the resulting number *)
18150  807          noofpos,  (* no. of pos. from bits-array for one number *)
18160  808          res,      (* resulting number *)
18170  809          used: integer;
18180  810          
18190  811          negative, zeroes: boolean;
18200  812          
18210  813        BEGIN
18220  814    1   ! used:= 1;
18230  815    2   ! 
18240  816    3   !   (* first we initialise the digits array *)
18250  817    4   ! FOR i:=1 TO maxpos DO digits(i):=sp;
18260  818    5   ! 
18270  819    6   ! IF base= 10 THEN
18280  820    7   !   BEGIN
18290  821    8   !   ! i:=maxpos;
18300  822    9   !   ! 
18310  823   10   !   ! negative:= int<0;
18320  824   11   !   ! 
18330  825   12   !   ! REPEAT
18340  826   13   !   ! !   (* now we unpack the digits backwards and put them
18350  827   14   !   ! !   into the digits array *)
18360  828   15   !   ! ! 
18370  829   16   !   ! ! digits(i):= chr (abs(int MOD base) + ord("0"));
18380  830   17   !   ! ! int:=int DIV base;
18390  831   18   !   ! ! i:=i-1;
18400  832   19   !   ! UNTIL (i=1) OR (int=0);
18410  833   20   !   ! 
18420  834   21   !   ! IF negative THEN
18430  835   22   !   !   BEGIN
18440  836   23   !   !   ! digits(i):="-";
18450  837   24   !   !   ! i:=i-1;
18460  838   25   !   !   END;
\f

alaoslst    81.06.18.   14.12.                                                    page    27

18470  839   26   !   ! 
18480  840   27   !   ! used:=maxpos-i;
18490  841   28   !   ! 
18500  842   29   !   ! IF int <> 0 THEN digits(1):= "*";
18510  843   30   !   END (* if base= 10 *)
18520  844   31   !   
18530  845   32   ! ELSE (* base= 2, 8, or 16 *)
18540  846   33   !   BEGIN
18550  847   34   !   !   (* initialise bits-array *)
18560  848   35   !   ! IF int>=0 THEN
18570  849   36   !   !   BEGIN
18580  850   37   !   !   ! FOR i:= 15 DOWNTO 1 DO
18590  851   38   !   !   !   BEGIN
18600  852   39   !   !   !   ! bits(i):= int MOD 2;
18610  853   40   !   !   !   ! int:= int DIV 2;
18620  854   41   !   !   !   END;
18630  855   42   !   !   ! bits(0):= int MOD 2;
18640  856   43   !   !   ! int:= int DIV 2;
18650  857   44   !   !   END
18660  858   45   !   ! ELSE
18670  859   46   !   !     (* int<0 *)
18680  860   47   !   !   BEGIN
18690  861   48   !   !   !   (* subtract abs(int) from 1111111...1 *)
18700  862   49   !   !   ! FOR i:= 15 DOWNTO 1 DO
18710  863   50   !   !   !   BEGIN
18720  864   51   !   !   !   ! bits(i):= 1+(int MOD 2);
18730  865   52   !   !   !   ! int:= int DIV 2;
18740  866   53   !   !   !   END;
18750  867   54   !   !   ! bits(0):= 1+(int MOD 2);
18760  868   55   !   !   ! int:= int DIV 2;
18770  869   56   !   !   ! 
18780  870   57   !   !   !   (* add 1 *)
18790  871   58   !   !   ! m:= 1;
18800  872   59   !   !   ! FOR i:= 15 DOWNTO 1 DO
18810  873   60   !   !   !   BEGIN
18820  874   61   !   !   !   ! newm:= (bits(i)+m) DIV 2;
18830  875   62   !   !   !   ! bits(i):= (bits(i)+m) MOD 2;
18840  876   63   !   !   !   ! m:= newm;
18850  877   64   !   !   !   END;
18860  878   65   !   !   ! newm:= (bits(0)+m) DIV 2;
18870  879   66   !   !   ! bits(0):= (bits(0)+m) MOD 2;
18880  880   67   !   !   ! m:= newm;
18890  881   68   !   !   END (*int<0*);
18900  882   69   !   ! 
18910  883   70   !   !   (* compute digits-array *)
18920  884   71   !   ! CASE base OF
\f

alaoslst    81.06.18.   14.12.                                                    page    28

18930  885   72   !   ! ! 2: BEGIN
18940  886   73   !   ! !   ! noofpos:= 1;
18950  887   74   !   ! !   ! noofdig:= 16;
18960  888   75   !   ! !   END;
18970  889   76   !   ! ! 
18980  890   77   !   ! ! 8: BEGIN
18990  891   78   !   ! !   ! noofpos:= 3;
19000  892   79   !   ! !   ! noofdig:= 6;
19010  893   80   !   ! !   END;
19020  894   81   !   ! ! 
19030  895   82   !   ! ! 16: BEGIN
19040  896   83   !   ! !   ! noofpos:= 4;
19050  897   84   !   ! !   ! noofdig:= 4;
19060  898   85   !   ! !   END;
19070  899   86   !   ! END (* case *);
19080  900   87   !   ! 
19090  901   88   !   ! curdigit:= maxpos -noofdig +1;
19100  902   89   !   ! 
19110  903   90   !   ! IF base= 8
19120  904   91   !   !   THEN curpos:= 3
19130  905   92   !   ! ELSE curpos:= 1;
19140  906   93   !   ! res:= 0;
19150  907   94   !   ! zeroes:= true;
19160  908   95   !   ! 
19170  909   96   !   ! FOR h:= 0 TO 15 DO
19180  910   97   !   !   BEGIN
19190  911   98   !   !   ! res:= res*2 + bits(h);
19200  912   99   !   !   ! IF curpos= noofpos THEN
19210  913  100   !   !   !   BEGIN (* time to fill out a pos. in digits-array *)
19220  914  101   !   !   !   ! IF zeroes AND (res=0) THEN
19230  915  102   !   !   !   !   BEGIN
19240  916  103   !   !   !   !   ! IF curdigit=maxpos
19250  917  104   !   !   !   !   !   THEN digits(curdigit):= "0"
19260  918  105   !   !   !   !   !     (*else digits (curdigit):= " "*);
19270  919  106   !   !   !   !   END
19280  920  107   !   !   !   ! ELSE
19290  921  108   !   !   !   !   IF res<=9
19300  922  109   !   !   !   !     THEN digits(curdigit):= chr (res + ord ("0"))
19310  923  110   !   !   !   !   ELSE digits(curdigit):= chr (res + ord ("7"));
19320  924  111   !   !   !   ! IF (res<>0) AND zeroes THEN
19330  925  112   !   !   !   !   BEGIN
19340  926  113   !   !   !   !   ! zeroes:= false;
19350  927  114   !   !   !   !   ! used:= maxpos - curdigit + 1;
19360  928  115   !   !   !   !   END;
19370  929  116   !   !   !   ! res:= 0;
19380  930  117   !   !   !   ! curpos:= 0;
\f

alaoslst    81.06.18.   14.12.                                                    page    29

19390  931  118   !   !   !   ! curdigit:= curdigit + 1;
19400  932  119   !   !   !   END;
19410  933  120   !   !   ! curpos:= curpos + 1;
19420  934  121   !   !   END;
19430  935  122   !   END (* base= 2, 8, of 16 *);
19440  936  123   ! 
19450  937  124   ! IF positions<used THEN outchar(sp);
19460  938  125   ! 
19470  939  126   ! IF (NOT (positions IN (. 1 .. maxpos .)) )
19480  940  127   !   OR (positions < used) THEN
19490  941  128   !   positions:=used;
19500  942  129   ! 
19510  943  130   ! FOR i:=maxpos+1-positions TO maxpos DO
19520  944  131   !   BEGIN
19530  945  132   !   ! outchar( digits(i) );
19540  946  133   !   END
19550  947  134   !   
19560  948  135   END (* out integer *);
19570  949        
19580  950        
19590  951         
\f

alaoslst    81.06.18.   14.12.                                                    page    30

20010  952        PROCEDURE outstring10(text: alfa10);
20020  953            (* writes the text into opbuf starting at outputpointer
20030  954            which is updated accordingly *)
20040  955        VAR
20050  956          i: integer;
20060  957        BEGIN
20070  958    1   ! FOR i:=1 TO 10 DO
20080  959    2   !   outchar( text(i) );
20090  960    3   END (* out string 10 *);
20100  961        
20110  962        PROCEDURE outstring12(text: alfa);
20120  963        VAR
20130  964          i: integer;
20140  965        BEGIN
20150  966    1   ! FOR i:=1 TO 12 DO
20160  967    2   !   outchar(text(i));
20170  968    3   END;
20180  969         
\f

alaoslst    81.06.18.   14.12.                                                    page    31

21010  970        PROCEDURE outstring20(text: alfa20);
21020  971            (* analogue to outstring10 *)
21030  972        VAR
21040  973          i: integer;
21050  974        BEGIN
21060  975    1   ! FOR i:=1 TO 20 DO
21070  976    2   !   outchar( text(i) );
21080  977    3   END (* out string 20 *);
21090  978        
21100  979        
21110  980        
21120  981         
\f

alaoslst    81.06.18.   14.12.                                                    page    32

22010  982        FUNCTION readchar: char;
22020  983            (* reads the next char from opinref^.
22030  984            next is incremented and charsleft is
22040  985            decremented *)
22050  986        BEGIN
22060  987    1   ! LOCK opinref AS opbuf: opbuftype DO
22070  988    2   !   WITH opbuf DO
22080  989    3   !     BEGIN
22090  990    4   !     ! readchar:= data(next);
22100  991    5   !     ! next:= next + 1;
22110  992    6   !     END;
22120  993    7   ! incharsleft:=incharsleft-1;
22130  994    8   END (* readchar *);
22140  995        
22150  996        
22160  997        
22170  998         
\f

alaoslst    81.06.18.   14.12.                                                    page    33

23010  999        FUNCTION readinteger : integer;
23020 1000            (* reads the next integer from opinref^ starting
23030 1001            at "inputpoint". upon return "inputpoint" will be
23040 1002            the position just after the last char read.
23050 1003            
23060 1004            the global boolean "readok" will be true if an
23070 1005            integer was read and false otherwise *)
23080 1006          
23090 1007        CONST
23100 1008          digits = (. "0" .. "9" .);
23110 1009          hexdigits = (. "a" .. "f" .);
23120 1010          signs =  (. "+" , "-" .);
23130 1011          
23140 1012        VAR
23150 1013          negative, digit: boolean;
23160 1014          
23170 1015          curdigit, noofdigit,
23180 1016          result: integer;
23190 1017          
23200 1018          ch,lastchar: char;
23210 1019          
23220 1020          
23230 1021        BEGIN
23240 1022    1   ! readok:=false;
23250 1023    2   ! lastchar:=nul;
23260 1024    3   ! ch:=nul;
23270 1025    4   ! digit:=false;
23280 1026    5   ! 
23290 1027    6   !   (* now skip until a digit is encountered *)
23300 1028    7   ! 
23310 1029    8   ! IF incharsleft > 0 THEN
23320 1030    9   !   REPEAT
23330 1031   10   !   ! lastchar:=ch;
23340 1032   11   !   ! ch:=readchar;
23350 1033   12   !   ! digit:= (ch IN digits) OR
23360 1034   13   !   ! ((base= 16) AND (ch IN hexdigits))
23370 1035   14   !   UNTIL digit OR (incharsleft<=0);
23380 1036   15   ! 
23390 1037   16   ! result:=0;
23400 1038   17   ! IF base= 10 THEN
23410 1039   18   !   negative:= lastchar= "-"
23420 1040   19   ! ELSE negative:= false;
23430 1041   20   ! 
23440 1042   21   ! 
23450 1043   22   ! IF digit THEN
23460 1044   23   !   BEGIN
\f

alaoslst    81.06.18.   14.12.                                                    page    34

23470 1045   24   !   ! IF ch IN digits
23480 1046   25   !   !   THEN result:= ord (ch) - ord ("0")
23490 1047   26   !   ! ELSE result:= ord (ch) - 87 (*ord ("W")*);
23500 1048   27   !   ! readok:=true;
23510 1049   28   !   END;
23520 1050   29   ! 
23530 1051   30   ! IF base=10 THEN
23540 1052   31   !   BEGIN
23550 1053   32   !   ! WHILE digit AND (incharsleft>0) DO
23560 1054   33   !   !   BEGIN (* read the digits *)
23570 1055   34   !   !   ! ch:= readchar;
23580 1056   35   !   !   ! 
23590 1057   36   !   !   ! digit:= (ch IN digits) OR
23600 1058   37   !   !   ! ((base= 16) AND (ch IN hexdigits));
23610 1059   38   !   !   ! IF digit THEN
23620 1060   39   !   !   !   BEGIN
23630 1061   40   !   !   !   ! IF negative AND (result=3276) AND (ch="8")
23640 1062   41   !   !   !   !   THEN BEGIN
23650 1063   42   !   !   !   !   ! result:= -32768;
23660 1064   43   !   !   !   !   ! negative:= false;
23670 1065   44   !   !   !   !   END
23680 1066   45   !   !   !   ! ELSE
23690 1067   46   !   !   !   !   BEGIN
23700 1068   47   !   !   !   !   ! IF ch IN digits
23710 1069   48   !   !   !   !   !   THEN result:= result*base+(ord(ch)-ord("0"))
23720 1070   49   !   !   !   !   ! ELSE result:= result*base+(ord(ch)-87(*ord("W")*));
23730 1071   50   !   !   !   !   END;
23740 1072   51   !   !   !   END;
23750 1073   52   !   !   END (* while *);
23760 1074   53   !   ! 
23770 1075   54   !   ! IF negative THEN result:= - result;
23780 1076   55   !   ! 
23790 1077   56   !   END (* base= 10 *)
23800 1078   57   !   
23810 1079   58   ! ELSE
23820 1080   59   !   BEGIN (* base= 2, 8, or 16 *)
23830 1081   60   !   ! 
23840 1082   61   !   ! CASE base OF
23850 1083   62   !   ! ! 2:BEGIN
23860 1084   63   !   ! !   ! IF ch="1" THEN negative:= true;
23870 1085   64   !   ! !   ! noofdigit:= 16;
23880 1086   65   !   ! !   END;
23890 1087   66   !   ! ! 
23900 1088   67   !   ! ! 8: BEGIN
23910 1089   68   !   ! !   ! IF ch="1" THEN negative:= true;
23920 1090   69   !   ! !   ! noofdigit:= 6;
\f

alaoslst    81.06.18.   14.12.                                                    page    35

23930 1091   70   !   ! !   END;
23940 1092   71   !   ! ! 
23950 1093   72   !   ! ! 16: BEGIN
23960 1094   73   !   ! !   ! IF ch>="8" THEN negative:= true;
23970 1095   74   !   ! !   ! noofdigit:= 4;
23980 1096   75   !   ! !   END;
23990 1097   76   !   ! END (*case*);
24000 1098   77   !   ! curdigit:= 1;
24010 1099   78   !   ! 
24020 1100   79   !   ! WHILE digit AND (incharsleft>0) DO
24030 1101   80   !   !   BEGIN
24040 1102   81   !   !   ! ch:= readchar;
24050 1103   82   !   !   ! digit:= (ch IN digits) OR
24060 1104   83   !   !   ! ((base=16) AND (ch IN hexdigits));
24070 1105   84   !   !   ! IF digit
24080 1106   85   !   !   !   THEN BEGIN
24090 1107   86   !   !   !   ! curdigit:= curdigit+1;
24100 1108   87   !   !   !   ! IF (curdigit=noofdigit) AND negative THEN
24110 1109   88   !   !   !   !   BEGIN
24120 1110   89   !   !   !   !   ! CASE base OF
24130 1111   90   !   !   !   !   ! ! 2: result:= result - 16384 (*2^14*);
24140 1112   91   !   !   !   !   ! ! 8: result:= result -  4096 (*2^12*);
24150 1113   92   !   !   !   !   ! ! 16:result:= result -  2048 (*2^11*);
24160 1114   93   !   !   !   !   ! END (*case*)
24170 1115   94   !   !   !   !   END;
24180 1116   95   !   !   !   ! IF ch IN digits THEN
24190 1117   96   !   !   !   !   result:= result*base + (ord(ch)-ord("0"))
24200 1118   97   !   !   !   ! ELSE
24210 1119   98   !   !   !   !   result:= result*base + (ord(ch)-87 (*ord("W")*));
24220 1120   99   !   !   !   ! IF (curdigit=noofdigit) AND negative
24230 1121  100   !   !   !   !   THEN BEGIN
24240 1122  101   !   !   !   !   ! IF result=0
24250 1123  102   !   !   !   !   !   THEN result:= -32768
24260 1124  103   !   !   !   !   ! ELSE result:= -((32767-result)+1);
24270 1125  104   !   !   !   !   END;
24280 1126  105   !   !   !   END (*if digit*);
24290 1127  106   !   !   END (*while digit*);
24300 1128  107   !   END (* base= 2, 8, or 16 *);
24310 1129  108   ! IF incharsleft > 0 THEN
24320 1130  109   !     (* we read one char too many - spit it out *)
24330 1131  110   !   repeatchar;
24340 1132  111   ! 
24350 1133  112   ! readinteger:=result;
24360 1134  113   END (* read integer *);
24370 1135         
\f

alaoslst    81.06.18.   14.12.                                                    page    36

25010 1136        PROCEDURE repeatchar;
25020 1137        BEGIN
25030 1138    1   ! LOCK opinref AS opbuf: opbuftype DO
25040 1139    2   !   opbuf.next:= opbuf.next - 1;
25050 1140    3   ! incharsleft:= incharsleft + 1;
25060 1141    4   END;
25070 1142         
\f

alaoslst    81.06.18.   14.12.                                                    page    37

26010 1143        FUNCTION testinterval (i,first,last: integer): boolean;
26020 1144            (* true if first<=i<=last *)
26030 1145        BEGIN
26040 1146    1   ! IF (i<first) OR (i>last) THEN
26050 1147    2   !   BEGIN
26060 1148    3   !   ! outstring10(illegalno);
26070 1149    4   !   ! outinteger(i,4);
26080 1150    5   !   ! writenl;
26090 1151    6   !   ! testinterval:= false
26100 1152    7   !   END
26110 1153    8   ! ELSE
26120 1154    9   !   testinterval:= true;
26130 1155   10   END;
26140 1156         
\f

alaoslst    81.06.18.   14.12.                                                    page    38

27010 1157        PROCEDURE testmodeout (text: alfa20; i: integer);
27020 1158        BEGIN
27030 1159    1   ! IF testmode THEN
27040 1160    2   !   BEGIN
27050 1161    3   !   ! outstring20 (text);
27060 1162    4   !   ! outinteger (i, 4);
27070 1163    5   !   ! writenl;
27080 1164    6   !   END;
27090 1165    7   END (* testout *);
27100 1166         
\f

alaoslst    81.06.18.   14.12.                                                    page    39

28010 1167        PROCEDURE testsem(i: integer; VAR t_sem : semaphore);
28020 1168            (* test the semaphore t_sem, and
28030 1169            writes its status on the console if it is
28040 1170            non-passive *)
28050 1171        VAR more: boolean;
28060 1172        BEGIN
28070 1173    1   ! 
28080 1174    2   ! IF i>0 THEN
28090 1175    3   !   BEGIN
28100 1176    4   !   ! ap.a := sem(i).s;
28110 1177    5   !   ! bp.a := sem(i).w;
28120 1178    6   !   END
28130 1179    7   ! ELSE ap:=bp;
28140 1180    8   ! IF open(t_sem) THEN
28150 1181    9   !   BEGIN (* user semaphore no. i is open *)
28160 1182   10   !   ! IF ap=bp THEN
28170 1183   11   !   !   outchar(" ") ELSE outchar("^");
28180 1184   12   !   ! outdecimal(i,3);
28190 1185   13   !   ! outchar(":");
28200 1186   14   !   ! more:= true;
28210 1187   15   !   ! 
28220 1188   16   !   !   (* now count the no. of buffers on this semaphore *)
28230 1189   17   !   ! j:=0; (* j is the counter *)
28240 1190   18   !   ! WHILE more DO
28250 1191   19   !   !   BEGIN
28260 1192   20   !   !   ! sensesem(countref, t_sem);
28270 1193   21   !   !   ! IF nil(countref) THEN
28280 1194   22   !   !   !   more:= false
28290 1195   23   !   !   ! ELSE
28300 1196   24   !   !   !   BEGIN
28310 1197   25   !   !   !   ! signal(countref,countsem);
28320 1198   26   !   !   !   ! j:=j+1;
28330 1199   27   !   !   !   END
28340 1200   28   !   !   END;
28350 1201   29   !   ! 
28360 1202   30   !   ! outdecimal(j,3);
28370 1203   31   !   ! WHILE open(countsem) DO
28380 1204   32   !   !   BEGIN (* return the buffers to sem(i) *)
28390 1205   33   !   !   ! wait(countref,countsem);
28400 1206   34   !   !   ! signal(countref,t_sem);
28410 1207   35   !   !   END;
28420 1208   36   !   ! 
28430 1209   37   !   ! writenl;
28440 1210   38   !   END (* open *)
28450 1211   39   ! ELSE
28460 1212   40   !   IF locked( t_sem) THEN
\f

alaoslst    81.06.18.   14.12.                                                    page    40

28470 1213   41   !     BEGIN (* user semaphore no. i is locked *)
28480 1214   42   !     ! IF ap=bp THEN
28490 1215   43   !     !   outchar(" ") ELSE outchar("^");
28500 1216   44   !     ! outdecimal(i,3);
28510 1217   45   !     ! outchar(":");
28520 1218   46   !     ! outstring10(" locked   ");
28530 1219   47   !     ! writenl;
28540 1220   48   !     END;
28550 1221   49   END (* testsem *);
28560 1222        
28570 1223        
28580 1224        
28590 1225        
28600 1226         
\f

alaoslst    81.06.18.   14.12.                                                    page    41

29010 1227        PROCEDURE writenl;
29020 1228            (* prepares opbuf for output to the operator and signals
29030 1229            it to operator module *)
29040 1230        BEGIN
29050 1231    1   ! IF NOT nil(opoutref) THEN
29060 1232    2   !   BEGIN
29070 1233    3   !   ! outchar(nl);
29080 1234    4   !   ! signal(opoutref, opsem^)
29090 1235    5   !   END;
29100 1236    6   ! wait(opoutref, wsem);
29110 1237    7   ! LOCK opoutref AS opbuf: opbuftype DO
29120 1238    8   !   opbuf.last:= firstindex;
29130 1239    9   END (* writenl *);
29140 1240        
29150 1241         
\f

alaoslst    81.06.18.   14.12.                                                    page    42

30010 1242        
30020 1243        
30030 1244        
30040 1245          (****************************************
30050 1246          *                                       *
30060 1247          *       m a i n   p r o g r a m         *
30070 1248          *                                       *
30080 1249          ****************************************)
30090 1250        
30100 1251        
30110 1252        
30120 1253        
30130 1254        
30140 1255        
30150 1256        BEGIN
30160 1257    1   ! 
30170 1258    2   ! opsem:= semvector(operatorsem);
30180 1259    3   ! spool_test_sem := ref( spool_sem);
30190 1260    4   ! testmode:= false;
30200 1261    5   ! testopen (z,own.incname,opsem);
30210 1262    6   ! testout(z,version,al_env_version);
30220 1263    7   ! 
30230 1264    8   ! readram(node_no,10);
30240 1265    9   ! node_no := node_no MOD 16;
30250 1266   10   ! dte_addr.net_addr := 0;
30260 1267   11   ! dte_addr.reg_addr := 0;
30270 1268   12   ! dte_addr.node_addr := node_no;
30280 1269   13   ! dte_addr.ext_addr := 3;
30290 1270   14   ! 
30300 1271   15   ! 
30310 1272   16   ! testout(z,"ext-pax-addr",
30320 1273   17   ! paxnet_config( node_no,3)*1000 + paxnet_config( node_no,6)*100 +
30330 1274   18   ! paxnet_config( node_no,9)*10  + paxnet_config( node_no,14) );
30340 1275   19   ! 
30350 1276   20   !   (* initialise pointers *)
30360 1277   21   ! FOR i:=1 TO ts_sem_total DO
30370 1278   22   !   BEGIN
30380 1279   23   !   ! sem(i).s:= ref(ts_sem(i));
30390 1280   24   !   ! sem(i).w:= sem(i).s;
30400 1281   25   !   END;
30410 1282   26   ! 
30420 1283   27   !   (*  initialize pointers to eva semaphores *)
30430 1284   28   ! sem(pax_sem_2).s:=ref(evavector(px_urec1));
30440 1285   29   ! sem(pax_sem_2).w:=sem(pax_sem_2).s;
30450 1286   30   ! sem(pax_sem_1).s:=ref(evavector(px_utrm1));
30460 1287   31   ! sem(pax_sem_1).w:=sem(pax_sem_1).s;
\f

alaoslst    81.06.18.   14.12.                                                    page    43

30470 1288   32   ! sem(pax_sem_3).s := ref(evavector(px_urec2));
30480 1289   33   ! sem(pax_sem_3).w := sem(pax_sem_3).s;
30490 1290   34   ! sem(pax_sem_4).s := ref(evavector(px_utrm2));
30500 1291   35   ! sem(pax_sem_4).w := sem(pax_sem_4).s;
30510 1292   36   ! sem(pax_ncp_sem).s:=ref(evavector(px_ncp));
30520 1293   37   ! sem(pax_ncp_sem).w:=sem(pax_ncp_sem).s;
30530 1294   38   ! sem(lam_sem_no).s := ref( evavector(al_lam1));
30540 1295   39   ! sem(lam_sem_no).w := sem( lam_sem_no).s;
30550 1296   40   ! 
30560 1297   41   !   (*  initialize local semaphores for netconnector  *)
30570 1298   42   ! 
30580 1299   43   ! netc_locals(1):=sem(tssup_sem_no).s;
30590 1300   44   ! netc_locals(2):=sem(nc_sem_no).s;
30600 1301   45   ! 
30610 1302   46   !   (* initialise buffers *)
30620 1303   47   ! FOR i:= 1 TO 2 DO
30630 1304   48   !   BEGIN
30640 1305   49   !   ! alloc (opoutref, opbufpool, wsem);
30650 1306   50   !   ! opoutref^.u1:=2; (* write *)
30660 1307   51   !   ! LOCK opoutref AS opbuf: opbuftype DO
30670 1308   52   !   !   WITH opbuf DO
30680 1309   53   !   !     BEGIN
30690 1310   54   !   !     ! first:= firstindex;
30700 1311   55   !   !     ! name:= "alarm       ";
30710 1312   56   !   !     ! data(firstindex):= "!";
30720 1313   57   !   !     END;
30730 1314   58   !   ! return (opoutref);
30740 1315   59   !   END;
30750 1316   60   ! writenl;
30760 1317   61   ! 
30770 1318   62   ! alloc(opinref, opbufpool, wrsem);
30780 1319   63   ! 
30790 1320   64   ! opinref^.u1:=1; (* read *)
30800 1321   65   ! 
30810 1322   66   ! LOCK opinref AS opbuf: opbuftype DO
30820 1323   67   !   WITH opbuf DO
30830 1324   68   !     BEGIN
30840 1325   69   !     ! first:= firstindex;
30850 1326   70   !     ! last:= lastindex;
30860 1327   71   !     ! name:= "alarm       ";
30870 1328   72   !     END;
30880 1329   73   ! 
30890 1330   74   !   (*-------    allocate all listenbuffers ---*)
30900 1331   75   ! FOR i:= 1 TO no_listen DO
30910 1332   76   !   BEGIN
30920 1333   77   !   ! alloc(cur,messbufpool,sem(com_pool).s^);
\f

alaoslst    81.06.18.   14.12.                                                    page    44

30930 1334   78   !   ! return(cur);
30940 1335   79   !   END;
30950 1336   80   ! 
30960 1337   81   !   (*-------    allocate all paxnetbuffers ---*)
30970 1338   82   ! FOR i:=1 TO no_pax_bufs DO
30980 1339   83   !   BEGIN
30990 1340   84   !   ! alloc( cur, paxbufpool, sem(dte_sem_no).s^);
31000 1341   85   !   ! signal( cur, sem( pax_pool).s^);
31010 1342   86   !   END;
31020 1343   87   ! 
31030 1344   88   ! st:= 1024;
31040 1345   89   ! base:= 10;
31050 1346   90   ! firstword:= 1;
31060 1347   91   ! lastword:= 10;
31070 1348   92   ! 
31080 1349   93   ! setoflowmask(true);
31090 1350   94   ! command:= "c";
31100 1351   95   ! noofparams:= 1;
31110 1352   96   ! CASE node_no OF
31120 1353   97   ! ! 1: params(1):= -3;
31130 1354   98   ! ! 2,3: params(1):= -2;
31140 1355   99   ! ! OTHERWISE
31150 1356  100   ! ! params(1):= -1;
31160 1357  101   ! END;
31170 1358  102   ! 
31180 1359  103   ! REPEAT
31190 1360  104   ! !   (* read a line of input from the operator and execute it *)
31200 1361  105   ! ! IF first_loop THEN
31210 1362  106   ! !   first_loop:= false ELSE
31220 1363  107   ! !   
31230 1364  108   ! !   getinput;
31240 1365  109   ! ! 
31250 1366  110   ! ! CASE command OF
31260 1367  111   ! ! ! 
31270 1368  112   ! ! ! ";": (* comment command *)
31280 1369  113   ! ! !   BEGIN
31290 1370  114   ! ! !   END;
31300 1371  115   ! ! !  
\f

alaoslst    81.06.18.   14.12.                                                    page    45

32010 1372  116   ! ! ! "a": (* alloc *)
32020 1373  117   ! ! !     (* a buffer is allocated from the messbufpool to the current
32030 1374  118   ! ! !     reference "cur".
32040 1375  119   ! ! !     1st param is the answersem *)
32050 1376  120   ! ! !   BEGIN
32060 1377  121   ! ! !   ! semno:= params(1);
32070 1378  122   ! ! !   ! 
32080 1379  123   ! ! !   ! IF noofparams >= 1 THEN
32090 1380  124   ! ! !   !   IF nil(cur) THEN
32100 1381  125   ! ! !   !     IF ((semno>0) AND (semno <= noofsemaphores))
32110 1382  126   ! ! !   !       OR ((semno<0) AND (semno >= -applsem_max)) THEN
32120 1383  127   ! ! !   !       BEGIN
32130 1384  128   ! ! !   !       ! IF semno > 0 THEN
32140 1385  129   ! ! !   !       !   alloc (cur, testbufpool, ts_sem(semno))
32150 1386  130   ! ! !   !       ! ELSE
32160 1387  131   ! ! !   !       !   alloc (cur, testbufpool, evavector(-semno));
32170 1388  132   ! ! !   !       ! WITH cur^ DO
32180 1389  133   ! ! !   !       !   BEGIN
32190 1390  134   ! ! !   !       !   ! u1:= 0;
32200 1391  135   ! ! !   !       !   ! u2:= 0;
32210 1392  136   ! ! !   !       !   ! u3:= 0;
32220 1393  137   ! ! !   !       !   ! u4:= 0;
32230 1394  138   ! ! !   !       !   END;
32240 1395  139   ! ! !   !       ! get_curbuftype;
32250 1396  140   ! ! !   !       ! outstring10("  bufsize ");
32260 1397  141   ! ! !   !       ! outinteger(curbufsize, 5);
32270 1398  142   ! ! !   !       ! outinteger(cur^.size, 5)
32280 1399  143   ! ! !   !       END
32290 1400  144   ! ! !   !     ELSE outstring10(illegalno)
32300 1401  145   ! ! !   !     ELSE outstring20("you already have one")
32310 1402  146   ! ! !   !     ELSE outstring10(noparam)
32320 1403  147   ! ! !   END (* alloc*);
32330 1404  148   ! ! !  
\f

alaoslst    81.06.18.   14.12.                                                    page    46

33010 1405  149   ! ! ! "b": (* base *)
33020 1406  150   ! ! !     (* defines the number base for input as well as output *)
33030 1407  151   ! ! !     (* the base is always read decimally *)
33040 1408  152   ! ! !   BEGIN
33050 1409  153   ! ! !   ! IF noofparams < 1 THEN
33060 1410  154   ! ! !   !   BEGIN
33070 1411  155   ! ! !   !   ! base:= oldbase;
33080 1412  156   ! ! !   !   ! outstring10(noparam)
33090 1413  157   ! ! !   !   END
33100 1414  158   ! ! !   ! ELSE
33110 1415  159   ! ! !   !   
33120 1416  160   ! ! !   !   IF NOT (params(1) IN (. 2, 8, 10, 16 .) ) THEN
33130 1417  161   ! ! !   !     BEGIN (* illegal base *)
33140 1418  162   ! ! !   !     ! outstring20("illegal base        ");
33150 1419  163   ! ! !   !     ! base:= oldbase;
33160 1420  164   ! ! !   !     END
33170 1421  165   ! ! !   !   ELSE
33180 1422  166   ! ! !   !     base:= params(1);
33190 1423  167   ! ! !   END;
33200 1424  168   ! ! !  
\f

alaoslst    81.06.18.   14.12.                                                    page    47

34010 1425  169   ! ! ! "c": (* create *)
34020 1426  170   ! ! !     (* an incarnation of each of the predefined modules to be tested
34030 1427  171   ! ! !     is created and started.
34040 1428  172   ! ! !     params are nos. of the modules to be created and started *)
34050 1429  173   ! ! !   
34060 1430  174   ! ! !   IF noofparams >= 1 THEN
34070 1431  175   ! ! !     
34080 1432  176   ! ! !     BEGIN
34090 1433  177   ! ! !     ! moduleno:= params(1);
34100 1434  178   ! ! !     ! 
34110 1435  179   ! ! !     ! IF noofparams>1 THEN st:= params(2);
34120 1436  180   ! ! !     ! CASE moduleno OF
34130 1437  181   ! ! !     ! ! -3 : (* FE config. *)
34140 1438  182   ! ! !     ! !   BEGIN
34150 1439  183   ! ! !     ! !   ! netc_locals(1):= sem(fesup_sem_no).s;
34160 1440  184   ! ! !     ! !   ! 
34170 1441  185   ! ! !     ! !   ! init_modul ( 9);
34180 1442  186   ! ! !     ! !   ! init_modul (17);
34190 1443  187   ! ! !     ! !   ! init_modul (18);
34200 1444  188   ! ! !     ! !   ! init_modul (21);
34210 1445  189   ! ! !     ! !   ! init_modul (22);
34220 1446  190   ! ! !     ! !   ! init_modul (23);
34230 1447  191   ! ! !     ! !   ! init_modul (24);
34240 1448  192   ! ! !     ! !   ! init_modul (25);
34250 1449  193   ! ! !     ! !   ! init_modul (26);
34260 1450  194   ! ! !     ! !   END;
34270 1451  195   ! ! !     ! ! -2 : (* NC config. *)
34280 1452  196   ! ! !     ! !   BEGIN
34290 1453  197   ! ! !     ! !   ! netc_locals(1):= sem(nc_sem_no).s;
34300 1454  198   ! ! !     ! !   ! 
34310 1455  199   ! ! !     ! !   ! init_modul( 4);
34320 1456  200   ! ! !     ! !   ! init_modul( 9);
34330 1457  201   ! ! !     ! !   ! init_modul(13);
34340 1458  202   ! ! !     ! !   ! init_modul(17);
34350 1459  203   ! ! !     ! !   ! init_modul(18);
34360 1460  204   ! ! !     ! !   ! init_modul(21);
34370 1461  205   ! ! !     ! !   END;
34380 1462  206   ! ! !     ! ! -1 : (* TS config. *)
34390 1463  207   ! ! !     ! !   BEGIN
34400 1464  208   ! ! !     ! !   ! netc_locals(1):= sem(tssup_sem_no).s;
34410 1465  209   ! ! !     ! !   ! 
34420 1466  210   ! ! !     ! !   ! init_modul( 1);
34430 1467  211   ! ! !     ! !   ! init_modul( 8);
34440 1468  212   ! ! !     ! !   ! init_modul(17);
34450 1469  213   ! ! !     ! !   ! init_modul(18);
34460 1470  214   ! ! !     ! !   ! init_modul(21);
\f

alaoslst    81.06.18.   14.12.                                                    page    48

34470 1471  215   ! ! !     ! !   END;
34480 1472  216   ! ! !     ! ! 0 : (* FE=TS config. *)
34490 1473  217   ! ! !     ! !   BEGIN
34500 1474  218   ! ! !     ! !   ! netc_locals(1):= sem(fesup_sem_no).s;
34510 1475  219   ! ! !     ! !   ! netc_locals(2):= sem(tssup_sem_no).s;
34520 1476  220   ! ! !     ! !   ! 
34530 1477  221   ! ! !     ! !   ! init_modul( 8);
34540 1478  222   ! ! !     ! !   ! init_modul( 1);
34550 1479  223   ! ! !     ! !   ! init_modul(17);
34560 1480  224   ! ! !     ! !   ! init_modul(18);
34570 1481  225   ! ! !     ! !   ! init_modul(21);
34580 1482  226   ! ! !     ! !   ! init_modul(22);
34590 1483  227   ! ! !     ! !   ! init_modul(23);
34600 1484  228   ! ! !     ! !   ! init_modul(24);
34610 1485  229   ! ! !     ! !   ! init_modul(25);
34620 1486  230   ! ! !     ! !   ! init_modul(26);
34630 1487  231   ! ! !     ! !   END;
34640 1488  232   ! ! !     ! ! OTHERWISE
34650 1489  233   ! ! !     ! ! 
34660 1490  234   ! ! !     ! ! IF (moduleno<1) OR (moduleno > noofmodules) THEN
34670 1491  235   ! ! !     ! !   BEGIN (* illegal no *)
34680 1492  236   ! ! !     ! !   ! outdecimal(moduleno,4);
34690 1493  237   ! ! !     ! !   ! outstring10(illegalno);
34700 1494  238   ! ! !     ! !   END
34710 1495  239   ! ! !     ! ! ELSE
34720 1496  240   ! ! !     ! !   IF moduleready(moduleno) THEN init_modul(moduleno);
34730 1497  241   ! ! !     ! END (* case *)
34740 1498  242   ! ! !     END (* if noofparams >= 1 *)
34750 1499  243   ! ! !   ELSE outstring10 (noparam);
34760 1500  244   ! ! !   (* end create *)
34770 1501  245   ! ! ! "f": (* fill *)
34780 1502  246   ! ! !     (* fills integers into current buffer.
34790 1503  247   ! ! !     1st param: first word no. to be filled,
34800 1504  248   ! ! !     following: values to be assigned *)
34810 1505  249   ! ! !   BEGIN
34820 1506  250   ! ! !   ! IF noofparams < 2 THEN
34830 1507  251   ! ! !   !   outstring10("param     ")
34840 1508  252   ! ! !   ! ELSE
34850 1509  253   ! ! !   !   IF (params(1) < 1) THEN
34860 1510  254   ! ! !   !     outstring20("illegal start       ")
34870 1511  255   ! ! !   !   ELSE
34880 1512  256   ! ! !   !     IF nil(cur) THEN
34890 1513  257   ! ! !   !       outstring10("no buffer ")
34900 1514  258   ! ! !   !     ELSE
34910 1515  259   ! ! !   !       BEGIN (* params are ok *)
34920 1516  260   ! ! !   !       ! i:= params(1); (* i points into the messbuf *)
\f

alaoslst    81.06.18.   14.12.                                                    page    49

34930 1517  261   ! ! !   !       ! 
34940 1518  262   ! ! !   !       ! FOR j:= 2 TO noofparams DO
34950 1519  263   ! ! !   !       !     (* j points into the param list *)
34960 1520  264   ! ! !   !       !   IF i <= curbufsize THEN
34970 1521  265   ! ! !   !       !     BEGIN
34980 1522  266   ! ! !   !       !     ! CASE curbuftype OF
34990 1523  267   ! ! !   !       !     ! ! 1: LOCK cur AS minbuf: minbuftype DO
35000 1524  268   ! ! !   !       !     ! !     minbuf(i):= params(j);
35010 1525  269   ! ! !   !       !     ! ! 2: LOCK cur AS messbuf: messbuftype DO
35020 1526  270   ! ! !   !       !     ! !     messbuf(i):= params(j);
35030 1527  271   ! ! !   !       !     ! ! 3: LOCK cur AS maxbuf: maxbuftype DO
35040 1528  272   ! ! !   !       !     ! !     maxbuf(i):= params(j);
35050 1529  273   ! ! !   !       !     ! ! 4: LOCK cur AS testbuf: testbuftype DO
35060 1530  274   ! ! !   !       !     ! !     testbuf(i):= params(j);
35070 1531  275   ! ! !   !       !     ! ! OTHERWISE
35080 1532  276   ! ! !   !       !     ! END;
35090 1533  277   ! ! !   !       !     ! i:= i + 1;
35100 1534  278   ! ! !   !       !     END;
35110 1535  279   ! ! !   !       ! 
35120 1536  280   ! ! !   !       END (* params ok *)
35130 1537  281   ! ! !   END (* fill *);
35140 1538  282   ! ! !  
\f

alaoslst    81.06.18.   14.12.                                                    page    50

36010 1539  283   ! ! ! "h": (* help *)
36020 1540  284   ! ! !     (* lists possible commands and no. of parameters *)
36030 1541  285   ! ! !   BEGIN
36040 1542  286   ! ! !   ! outstring20("comm and no of param"); writenl;
36050 1543  287   ! ! !   ! outstring20("a: allocate   1     "); writenl;
36060 1544  288   ! ! !   ! outstring20("b: base       1     "); writenl;
36070 1545  289   ! ! !   ! outstring20("c: create     >=1   "); writenl;
36080 1546  290   ! ! !   ! outstring20("e: execute    1     "); writenl;
36090 1547  291   ! ! !   ! outstring20("f: fill       2     "); writenl;
36100 1548  292   ! ! !   ! outstring20("h: help       0     "); writenl;
36110 1549  293   ! ! !   ! outstring20("i: init point 0     "); writenl;
36120 1550  294   ! ! !   ! outstring20("k: kill       >=1   "); writenl;
36130 1551  295   ! ! !   ! outstring20("o: output     0 to 2"); writenl;
36140 1552  296   ! ! !   ! outstring20("p: partial    >=3   "); writenl;
36150 1553  297   ! ! !   ! outstring20("r: return     0     "); writenl;
36160 1554  298   ! ! !   ! outstring20("s: signal     1     "); writenl;
36170 1555  299   ! ! !   ! outstring20("t: test       0 or 1"); writenl;
36180 1556  300   ! ! !   ! outstring20("u: user param 1 to 4"); writenl;
36190 1557  301   ! ! !   ! outstring20("w: wait       1     "); writenl;
36200 1558  302   ! ! !   ! outstring20("x: exch point 2     "); writenl;
36210 1559  303   ! ! !   ! outstring20(";: comment          ");
36220 1560  304   ! ! !   END;
36230 1561  305   ! ! !  
\f

alaoslst    81.06.18.   14.12.                                                    page    51

37010 1562  306   ! ! ! "i": (* initialise pointers *)
37020 1563  307   ! ! !   IF noofparams=0 THEN
37030 1564  308   ! ! !     FOR i:=1 TO noofsemaphores DO sem(i).w:= sem(i).s ELSE
37040 1565  309   ! ! !       IF (params(1)>0) AND (params(1)<=noofsemaphores) THEN
37050 1566  310   ! ! !         sem(params(1)).w:= sem(params(1)).s ELSE
37060 1567  311   ! ! !         outstring10(valparam);
37070 1568  312   ! ! !  
\f

alaoslst    81.06.18.   14.12.                                                    page    52

38010 1569  313   ! ! ! "e", (* exception *)
38020 1570  314   ! ! !   (* call of exception routine in one or more incarnations *)
38030 1571  315   ! ! ! "k": (* kill *)
38040 1572  316   ! ! !     (* removes incarnation of tested module(s)
38050 1573  317   ! ! !     params are nos. of modules to be removed *)
38060 1574  318   ! ! !   
38070 1575  319   ! ! !   IF noofparams >= 1 THEN
38080 1576  320   ! ! !     FOR i:= 1 TO noofparams DO
38090 1577  321   ! ! !       BEGIN
38100 1578  322   ! ! !       ! moduleno:= params(i);
38110 1579  323   ! ! !       ! IF (1<=moduleno) AND (moduleno<=noofmodules) THEN
38120 1580  324   ! ! !       !   IF NOT nil(sh(moduleno)) THEN
38130 1581  325   ! ! !       !     IF command="e" THEN
38140 1582  326   ! ! !       !       break(sh(moduleno),#h2f) ELSE
38150 1583  327   ! ! !       !       remove (sh(moduleno))
38160 1584  328   ! ! !       !     ELSE
38170 1585  329   ! ! !       !       BEGIN
38180 1586  330   ! ! !       !       ! outdecimal (moduleno, 4);
38190 1587  331   ! ! !       !       ! outstring10(" not alive");
38200 1588  332   ! ! !       !       ! writenl;
38210 1589  333   ! ! !       !       END
38220 1590  334   ! ! !       !     ELSE
38230 1591  335   ! ! !       !       BEGIN
38240 1592  336   ! ! !       !       ! outdecimal (moduleno, 4);
38250 1593  337   ! ! !       !       ! outstring10(illegalno);
38260 1594  338   ! ! !       !       ! writenl;
38270 1595  339   ! ! !       !       END
38280 1596  340   ! ! !       END
38290 1597  341   ! ! !     ELSE outstring10("no params ");
38300 1598  342   ! ! !  
\f

alaoslst    81.06.18.   14.12.                                                    page    53

39010 1599  343   ! ! ! "m": (* testmode *)
39020 1600  344   ! ! !   testmode:= NOT testmode;
39030 1601  345   ! ! ! "o": (* output *)
39040 1602  346   ! ! !     (* outputs current buffer incl. user parameters
39050 1603  347   ! ! !     1st param is firstword,
39060 1604  348   ! ! !     2nd param is lastword *)
39070 1605  349   ! ! !   BEGIN
39080 1606  350   ! ! !   ! IF nil(cur) THEN
39090 1607  351   ! ! !   !   outstring10 ("no buffer ")
39100 1608  352   ! ! !   ! ELSE
39110 1609  353   ! ! !   !   BEGIN
39120 1610  354   ! ! !   !   ! outchar("u");
39130 1611  355   ! ! !   !   ! outchar(":");
39140 1612  356   ! ! !   !   ! 
39150 1613  357   ! ! !   !   ! outinteger(cur^.u1,4);
39160 1614  358   ! ! !   !   ! outinteger(cur^.u2,4);
39170 1615  359   ! ! !   !   ! outinteger(cur^.u3,4);
39180 1616  360   ! ! !   !   ! outinteger(cur^.u4,4);
39190 1617  361   ! ! !   !   ! writenl;
39200 1618  362   ! ! !   !   ! 
39210 1619  363   ! ! !   !   ! IF (noofparams>=1) AND (params(1)>=1)
39220 1620  364   ! ! !   !   !   AND (params(1)<= curbufsize) THEN
39230 1621  365   ! ! !   !   !   firstword:= params(1);
39240 1622  366   ! ! !   !   ! 
39250 1623  367   ! ! !   !   ! IF (noofparams>=2) AND (params(2)<=curbufsize) THEN
39260 1624  368   ! ! !   !   !   lastword:= params(2);
39270 1625  369   ! ! !   !   ! IF lastword>curbufsize THEN
39280 1626  370   ! ! !   !   !   lastword:= curbufsize;
39290 1627  371   ! ! !   !   ! 
39300 1628  372   ! ! !   !   ! IF cur^.size<curbufsize THEN
39310 1629  373   ! ! !   !   !   outstring20("too small buffer    ") ELSE
39320 1630  374   ! ! !   !   !   FOR i:= firstword TO lastword DO
39330 1631  375   ! ! !   !   !     BEGIN
39340 1632  376   ! ! !   !   !     ! outdecimal(i,3);
39350 1633  377   ! ! !   !   !     ! outchar(":");
39360 1634  378   ! ! !   !   !     ! CASE curbuftype OF
39370 1635  379   ! ! !   !   !     ! ! 1: LOCK cur AS minbuf: minbuftype DO
39380 1636  380   ! ! !   !   !     ! !     j:= minbuf(i);
39390 1637  381   ! ! !   !   !     ! ! 2: LOCK cur AS messbuf: messbuftype DO
39400 1638  382   ! ! !   !   !     ! !     j:= messbuf(i);
39410 1639  383   ! ! !   !   !     ! ! 3: LOCK cur AS maxbuf: maxbuftype DO
39420 1640  384   ! ! !   !   !     ! !     j:= maxbuf(i);
39430 1641  385   ! ! !   !   !     ! ! 4: LOCK cur AS testbuf: testbuftype DO
39440 1642  386   ! ! !   !   !     ! !     j:= testbuf(i);
39450 1643  387   ! ! !   !   !     ! ! OTHERWISE
39460 1644  388   ! ! !   !   !     ! ! j:= 0;
\f

alaoslst    81.06.18.   14.12.                                                    page    54

39470 1645  389   ! ! !   !   !     ! END;
39480 1646  390   ! ! !   !   !     ! IF base= 2 THEN
39490 1647  391   ! ! !   !   !     !   outinteger(j,17)
39500 1648  392   ! ! !   !   !     ! ELSE
39510 1649  393   ! ! !   !   !     !   outinteger(j,7);
39520 1650  394   ! ! !   !   !     ! writenl;
39530 1651  395   ! ! !   !   !     END;
39540 1652  396   ! ! !   !   END (* ok *);
39550 1653  397   ! ! !   END (* output *);
39560 1654  398   ! ! !  
\f

alaoslst    81.06.18.   14.12.                                                    page    55

40010 1655  399   ! ! ! "r": (* return *)
40020 1656  400   ! ! !     (* returns current buffer *)
40030 1657  401   ! ! !   IF nil(cur)
40040 1658  402   ! ! !     THEN outstring10("no buffer ")
40050 1659  403   ! ! !   ELSE return(cur);
40060 1660  404   ! ! !  
\f

alaoslst    81.06.18.   14.12.                                                    page    56

41010 1661  405   ! ! ! "s": (* signal *)
41020 1662  406   ! ! !     (* signals current buffer to one of the predefined semaphores.
41030 1663  407   ! ! !     1st param is semno *)
41040 1664  408   ! ! !   BEGIN
41050 1665  409   ! ! !   ! semno:= params(1);
41060 1666  410   ! ! !   ! 
41070 1667  411   ! ! !   ! IF noofparams >= 1 THEN
41080 1668  412   ! ! !   !   IF (1<=semno) AND (semno<=noofsemaphores) THEN
41090 1669  413   ! ! !   !     IF NOT nil(cur) THEN
41100 1670  414   ! ! !   !       signal (cur,ts_sem(semno))
41110 1671  415   ! ! !   !     ELSE outstring10("no buffer ")
41120 1672  416   ! ! !   !     ELSE
41130 1673  417   ! ! !   !       IF (semno <= -1) AND (semno >= -applsem_max) THEN
41140 1674  418   ! ! !   !         signal( cur, evavector( -semno))
41150 1675  419   ! ! !   !       ELSE outstring10(illegalno)
41160 1676  420   ! ! !   !       ELSE outstring10(noparam)
41170 1677  421   ! ! !   END (* signal *);
41180 1678  422   ! ! !  
\f

alaoslst    81.06.18.   14.12.                                                    page    57

42010 1679  423   ! ! ! "t": (* testsem *)
42020 1680  424   ! ! !     (* tests the status of the specified semaphores.
42030 1681  425   ! ! !     if none is specified, the status of all the
42040 1682  426   ! ! !     user semaphores is given.
42050 1683  427   ! ! !     in both cases nothing will be written for a semaphore
42060 1684  428   ! ! !     if it is passive. *)
42070 1685  429   ! ! !   BEGIN
42080 1686  430   ! ! !   ! IF noofparams=0 THEN
42090 1687  431   ! ! !   !   BEGIN (* test all semaphores *)
42100 1688  432   ! ! !   !   ! 
42110 1689  433   ! ! !   !   ! FOR i:= -applsem_max TO -1 DO
42120 1690  434   ! ! !   !   !   testsem( i,evavector(-i));
42130 1691  435   ! ! !   !   ! 
42140 1692  436   ! ! !   !   ! FOR i:=1 TO noofsemaphores DO
42150 1693  437   ! ! !   !   !   testsem(i,ts_sem(i))
42160 1694  438   ! ! !   !   END (* test all *)
42170 1695  439   ! ! !   ! ELSE
42180 1696  440   ! ! !   !   BEGIN (* test the specified semaphores *)
42190 1697  441   ! ! !   !   ! 
42200 1698  442   ! ! !   !   ! FOR i:=1 TO noofparams DO
42210 1699  443   ! ! !   !   !   IF (params(i)=0) OR (params(i)>noofsemaphores)
42220 1700  444   ! ! !   !   !     OR (params(i) < -applsem_max) THEN
42230 1701  445   ! ! !   !   !     BEGIN (* illegal no. *)
42240 1702  446   ! ! !   !   !     ! outstring20("illegal no.:        ");
42250 1703  447   ! ! !   !   !     ! outdecimal(params(i),3);
42260 1704  448   ! ! !   !   !     ! writenl;
42270 1705  449   ! ! !   !   !     END (* illegal no *)
42280 1706  450   ! ! !   !   !   ELSE
42290 1707  451   ! ! !   !   !     BEGIN
42300 1708  452   ! ! !   !   !     ! IF params(i)>0 THEN
42310 1709  453   ! ! !   !   !     !   testsem( params(i), ts_sem(params(i)))
42320 1710  454   ! ! !   !   !     ! ELSE
42330 1711  455   ! ! !   !   !     !   testsem( params(i), evavector(-params(i)));
42340 1712  456   ! ! !   !   !     END
42350 1713  457   ! ! !   !   END (* test the specified semaphores *)
42360 1714  458   ! ! !   END (* testsem *);
42370 1715  459   ! ! ! 
42380 1716  460   ! ! !  
\f

alaoslst    81.06.18.   14.12.                                                    page    58

43010 1717  461   ! ! ! "u": (* user parameters *)
43020 1718  462   ! ! !     (* inserts user param into header of current buffer
43030 1719  463   ! ! !     1st param is u1
43040 1720  464   ! ! !     2nd param is u2
43050 1721  465   ! ! !     3rd param is u3
43060 1722  466   ! ! !     4th param is u4 *)
43070 1723  467   ! ! !   BEGIN
43080 1724  468   ! ! !   ! IF nil(cur)
43090 1725  469   ! ! !   !   THEN outstring10("no buffer ")
43100 1726  470   ! ! !   ! ELSE
43110 1727  471   ! ! !   !   IF noofparams = 0 THEN
43120 1728  472   ! ! !   !     outstring10(noparam)
43130 1729  473   ! ! !   !   ELSE
43140 1730  474   ! ! !   !     WITH cur^ DO
43150 1731  475   ! ! !   !       BEGIN
43160 1732  476   ! ! !   !       ! IF testinterval (params(1),0,255) THEN u1:= params(1);
43170 1733  477   ! ! !   !       ! IF (noofparams>=2) THEN IF testinterval(params(2),0,255) THEN
43180 1734  478   ! ! !   !       !     u2:= params(2);
43190 1735  479   ! ! !   !       ! IF (noofparams>=3) THEN IF testinterval(params(3),0,255) THEN
43200 1736  480   ! ! !   !       !     u3:= params(3);
43210 1737  481   ! ! !   !       ! IF (noofparams>=4) THEN IF testinterval(params(4),0,255) THEN
43220 1738  482   ! ! !   !       !     u4:= params(4);
43230 1739  483   ! ! !   !       END
43240 1740  484   ! ! !   END; (* end user parameters *)
43250 1741  485   ! ! ! 
43260 1742  486   ! ! !  
\f

alaoslst    81.06.18.   14.12.                                                    page    59

44010 1743  487   ! ! ! "w": (* wait *)
44020 1744  488   ! ! !     (* waits for semaphore semno.
44030 1745  489   ! ! !     1st param is semno *)
44040 1746  490   ! ! !   BEGIN
44050 1747  491   ! ! !   ! semno:= params(1);
44060 1748  492   ! ! !   ! 
44070 1749  493   ! ! !   ! IF noofparams >= 1 THEN
44080 1750  494   ! ! !   !   IF nil(cur) THEN
44090 1751  495   ! ! !   !     IF ((semno>0) AND (semno <= noofsemaphores))
44100 1752  496   ! ! !   !       OR ((semno<0) AND (semno >= -applsem_max)) THEN
44110 1753  497   ! ! !   !       BEGIN
44120 1754  498   ! ! !   !       ! IF semno > 0 THEN
44130 1755  499   ! ! !   !       !   sensesem( cur, ts_sem(semno))
44140 1756  500   ! ! !   !       ! ELSE
44150 1757  501   ! ! !   !       !   sensesem( cur, evavector(-semno));
44160 1758  502   ! ! !   !       ! IF nil(cur) THEN
44170 1759  503   ! ! !   !       !   outstring20("semaphore not open  ")
44180 1760  504   ! ! !   !       ! ELSE
44190 1761  505   ! ! !   !       !   BEGIN
44200 1762  506   ! ! !   !       !   ! get_curbuftype;
44210 1763  507   ! ! !   !       !   ! outstring10("  bufsize ");
44220 1764  508   ! ! !   !       !   ! outinteger(curbufsize, 5);
44230 1765  509   ! ! !   !       !   ! outinteger(cur^.size, 5)
44240 1766  510   ! ! !   !       !   END;
44250 1767  511   ! ! !   !       END
44260 1768  512   ! ! !   !     ELSE outstring10(illegalno)
44270 1769  513   ! ! !   !     ELSE outstring20("you already have one")
44280 1770  514   ! ! !   !     ELSE outstring10(noparam)
44290 1771  515   ! ! !   END (* wait *);
44300 1772  516   ! ! !  
\f

alaoslst    81.06.18.   14.12.                                                    page    60

45010 1773  517   ! ! ! "x": (* exchange pointer *)
45020 1774  518   ! ! !   BEGIN
45030 1775  519   ! ! !   ! IF noofparams >= 2 THEN
45040 1776  520   ! ! !   !   IF (params(1)>0) AND (params(1)<=noofsemaphores) THEN
45050 1777  521   ! ! !   !     IF (params(2)>0) AND (params(2)<=noofsemaphores) THEN
45060 1778  522   ! ! !   !       BEGIN
45070 1779  523   ! ! !   !       ! worksem:= sem(params(1)).w;
45080 1780  524   ! ! !   !       ! sem(params(1)).w:= sem(params(2)).w;
45090 1781  525   ! ! !   !       ! sem(params(2)).w:= worksem;
45100 1782  526   ! ! !   !       END
45110 1783  527   ! ! !   !     ELSE outstring10(valparam)
45120 1784  528   ! ! !   !     ELSE outstring10(valparam)
45130 1785  529   ! ! !   !     ELSE outstring10(noparam)
45140 1786  530   ! ! !   END (* exchange pointer *);
45150 1787  531   ! ! ! 
45160 1788  532   ! ! ! 
45170 1789  533   ! ! ! OTHERWISE (* error *)
45180 1790  534   ! ! ! outstring20 ("illegal comm. type h");
45190 1791  535   ! ! END (* case *);
45200 1792  536   ! ! 
45210 1793  537   ! ! IF command<>";" THEN
45220 1794  538   ! !   writenl;
45230 1795  539   ! ! 
45240 1796  540   ! UNTIL false;
45250 1797  541   ! 
45260 1798  542   END.
45270 1799      
45280 1800      
45290 1801      
\f

alaoslst    81.06.18.   14.12.                                                    page    61

           0   39*   52*   81*  163*  163*  164*  171*  171*  171*  426   431   453   454   460   469 
              479:  479   491   517   519   568   658   668   702   706   711   800*  823   832   842 
              848   855   867   878   879   879   906   909   914   924   929   930  1029  1035  1037 
             1053  1100  1122  1129  1174  1189  1266  1267  1381  1382  1384  1390  1391  1392  1393 
             1472: 1563  1565  1644  1686  1699  1708  1727  1732  1733  1735  1737  1751  1752  1754 
             1776  1777 
           1   40*   51*   71*   72*   73*   74*   81*   84*   85*  108*  159*  160*  163*  164*  164*
              165*  165*  165*  411   441   452   461   471   480:  532   535   544   610:  628   634 
              654   733   738   777   801*  814   817   831   832   837   842   850   862   864   867 
              871   872   886   901   905   927   931   933   939   943   958   966   975   991   993 
             1098  1107  1124  1139  1140  1198  1277  1299  1303  1320  1331  1338  1346  1351  1353:
             1353  1354  1356  1356  1377  1379  1409  1416  1422  1430  1433  1435  1439  1453  1462:
             1464  1466  1474  1478  1490  1509  1509  1516  1523: 1533  1564  1565  1565  1566  1566 
             1575  1576  1579  1619  1619  1619  1620  1621  1635: 1665  1667  1668  1673  1689  1692 
             1698  1732  1732  1747  1749  1776  1776  1779  1780 
           2  412   430   442   454   473   481:  565   614:  636   676   727   732   737   852   853 
              855   856   864   865   867   868   874   875   878   879   885:  911  1083: 1111: 1300 
             1303  1306  1354: 1354  1416  1435  1451: 1475  1506  1518  1525: 1623  1623  1624  1637:
             1646  1733  1733  1734  1775  1777  1777  1780  1781 
           3   94*  171*  413   428   475   482:  618:  676   678   722   727   727   744   891   904 
             1184  1202  1216  1269  1273  1353  1354: 1437: 1527: 1632  1639: 1703  1735  1735  1736 
           4  476   483:  622:  750   763   896   897  1095  1149  1162  1455  1492  1529: 1586  1592 
             1613  1614  1615  1616  1641: 1737  1737  1738 
           5  574   626:  653  1397  1398  1764  1765 
           6   50*  452   632:  732   892  1090  1273 
           7  456   630   638:  727   737  1649 
           8  647:  890:  903  1088: 1112: 1416  1467  1477 
           9  429   651:  921  1274  1441  1456 
          10   84*  459   525   655:  743   788   819   958  1038  1051  1264  1274  1345  1347  1416 
          11  659:  743 
          12   96*  665:  966 
          13  669: 1457 
          14  459   461   674: 1274 
          15  680:  800*  850   862   872   909 
          16   36*  887   895: 1034  1058  1085  1093: 1104  1113: 1265  1416 
          17  684: 1442  1458  1468  1479  1647 
          18  692: 1443  1459  1469  1480 
          19  699:
          20   85*  703:  797*  975 
          21  708: 1444  1460  1470  1481 
          22  712: 1445  1482 
          23  719: 1446  1483 
          24  724: 1447  1484 
          25  730: 1448  1485 
\f

alaoslst    81.06.18.   14.12.                                                    page    62

          26  735: 1449  1486 
          27   37*  740:
          40  624 
          50  159*  542 
          63  636 
          64   33*  678 
          80   31*   49*
          87 1047  1070  1119 
         100  571  1273 
         120   34*   35*
         255 1732  1733  1735  1737 
         256  430 
         257  630 
         512  658   668   702   706   711   733   738   744 
        1000 1273 
        1024 1344 
        2048 1113 
        3276 1061 
        4096 1112 
       16384 1111 
       32767 1124 
       32768 1063  1123 
a              89*  438*  440   441   442   443   450*  453=  456=  460=  462   463  1176= 1177=
abs           829 
activ         246*
alarm_opsys     4*
alfa           66*  386*  554*  962*
alfa10         84*  383*  952*
alfa20         85*  389*  401*  970* 1157*
alfalength     50*
alloc        1305  1318  1333  1340  1385  1387 
alreadyexists                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
               44*  563   764 
al_env_version                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1262 
al_lam1      1294 
ap            169* 1176  1179= 1182  1214 
applsem_max  1382  1673  1689  1700  1752 
appl_vector     5*
as            494:  500:  774:  987: 1138: 1237: 1307: 1322: 1523: 1525: 1527: 1529: 1635: 1637: 1639:
             1641:
atbuffer       81*
atconnector   236*  628 
atcsem        239*
\f

alaoslst    81.06.18.   14.12.                                                    page    63

atc_pri       631 
atc_sem_no    628   628 
atc_size      631 
athsem        242*
ath_pri       617 
ath_sem_no    629 
ath_size      617 
at_handler    214*  616 
base          132*  524   525=  538=  548=  787   788=  790=  819   829   830   884   903  1034  1038 
             1051  1058  1069  1070  1082  1104  1110  1117  1119  1345= 1411= 1419= 1422= 1646 
bit           800*
bits          800*  852=  855=  864=  867=  874   875=  875   878   879=  879   911 
block         188*
boolean       153*  155*  189*  366*  515*  756*  811* 1013* 1143* 1171*
bp            169* 1177  1179  1182  1214 
break        1582 
byte           78*   81*  170*  200*  207*  253*  270*  337*  369*  418*
ch            771*  778  1018* 1024= 1031  1032= 1033  1034  1045  1046  1047  1055= 1057  1058  1061 
             1068  1069  1070  1084  1089  1094  1102= 1103  1104  1116  1117  1119 
channelno     253*  270*
char           67*   84*   85*  128*  392*  771*  801*  982* 1018*
chr           829   922   923 
command       128*  506=  508   521   536  1350= 1366  1581  1793 
com_pool      177*  629   636   643   662   678   688   716  1333 
com_pool_sem  344*
com_sem       244*  265*  281*
connector_state                                                  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              166*  246*
conn_state    166*  630 
controlinfo    78*
countref      112* 1192  1193  1197  1205  1206 
countsem      102* 1197  1203  1205 
create        567 
createchtype   76*
createerror    47*  572 
cur           115*  468   470   472   474  1333  1334  1340  1341  1380  1385  1387  1388  1398  1512 
             1523: 1525: 1527: 1529: 1606  1613  1614  1615  1616  1628  1635: 1637: 1639: 1641: 1657 
             1659  1669  1670  1674  1724  1730  1750  1755  1757  1758  1765 
curbufsize    145*  479=  480=  481=  482=  483= 1397  1520  1620  1623  1625  1626  1628  1764 
curbuftype    146*  469=  471=  473=  475=  476=  478  1522  1634 
curdigit      802*  901=  916   917   922   923   927   931=  931  1015* 1098= 1107= 1107  1108  1120 
curpos        803*  904=  905=  912   930=  933=  933 
data           67*  778=  990  1312=
dcaddr        267*
\f

alaoslst    81.06.18.   14.12.                                                    page    64

dcmodule      301*  661 
dcsem         277*
dc_addr       163*  217*  225*  250*  440=  616   620   630   636   678 
dc_int1       663 
dc_int2       663 
dc_int3       663 
dc_sem_no     641   663 
dc_sim_pri    664 
dc_sim_size   664 
delay         248*
digit        1013* 1025= 1033= 1035  1043  1053  1057= 1059  1100  1103= 1105 
digits        801*  817=  829=  836=  842=  917=  922=  923=  945  1008* 1033  1045  1057  1068  1103 
             1116 
doesntexist    45*
done          317*
driversem     243*
dst           428=
dtesimulator  323*  694 
dte_addr      171*  332*  697  1266  1267  1268  1269 
dte_pax_addr  407*  414=  427   428 
dte_sem       327*  346*
dte_sem_no    645   689   694  1340 
evavector       5* 1284  1286  1288  1290  1292  1294  1387  1674  1690  1711  1757 
external      178*  184*  191*  201*  208*  212*  220*  228*  234*  254*  271*  288*  294*  299*  305*
              310*  321*  334*  348*  353*  358*  363*  367*  370*
ext_addr      413= 1269=
ext_pax_addr  447*  450*
facility      429=
false         529   539   737   765   926  1022  1025  1040  1064  1151  1194  1260  1362  1796 
fesupervisor  174*  714 
fesup_pri     717 
fesup_que_down                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              715 
fesup_que_up  715 
fesup_sem_no  715  1439  1474 
fesup_size    717 
fesup_write   715 
first          63*  503  1143* 1146  1310= 1325=
firstindex     50*   51*   67*  495   504  1238  1310  1312  1325 
firstword     133* 1346= 1621= 1630 
first_loop    153* 1361  1362=
format        423=
format_1_packet_header                                           <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              419*
\f

alaoslst    81.06.18.   14.12.                                                    page    65

fpadriver     186*  732   737 
free          316*
getinput      487* 1364 
getparams     374*  510   513*
get_curbuftype                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              466* 1395  1762 
global_timeout                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              337*
glob_timeout  686 
h             804*  909=  911 
h2f          1582 
hexdigits    1009* 1034  1058  1104 
i             134*  401*  407*  410   411   412   413   418*  427   428   449*  452=  453   454=  456 
              456   457   459=  460   461=  462   804*  817=  817   821=  829   831=  831   832   836 
              837=  837   840   850=  852   862=  864   872=  874   875   875   943=  945   956*  958=
              959   964*  966=  967   973*  975=  976  1143* 1146  1146  1149  1157* 1162  1167* 1174 
             1176  1177  1184  1216  1277= 1279  1279  1280  1280  1303= 1331= 1338= 1516= 1520  1524 
             1526  1528  1530  1533= 1533  1564= 1564  1564  1576= 1578  1630= 1632  1636  1638  1640 
             1642  1689= 1690  1690  1692= 1693  1693  1698= 1699  1699  1700  1703  1708  1709  1709 
             1711  1711 
illegalno      46*  751  1148  1400  1493  1593  1675  1768 
incharsleft   135*  503=  993=  993  1029  1035  1053  1100  1129  1140= 1140 
incname      1261 
inc_name      554*  567   573 
index         369*  552*  562   567   569   581*  609   611   615   619   623   627   630   633   639 
              648   652   656   660   666   670   675   681   685   693   700   704   709   713   720 
              725   731   736   741   750 
init_modul    581* 1441  1442  1443  1444  1445  1446  1447  1448  1449  1455  1456  1457  1458  1459 
             1460  1466  1467  1468  1469  1470  1477  1478  1479  1480  1481  1482  1483  1484  1485 
             1486  1496 
init_proc     551*  611   615   619   623   627   633   639   648   652   656   660   666   670   675 
              681   685   693   700   704   709   713   720   725   731   736   741 
inputsem      180*  195*  283*  293*
input_sem     176*
insem         361*
int           377*  380*  782*  789   793*  823   829   830=  830   832   842   848   852   853=  853 
              855   856=  856   864   865=  865   867   868=  868 
integer        65*   71*   72*   73*   74*  148*  159*  181*  188*  233*  248*  252*  269*  292*  369*
              377*  380*  395*  401*  407*  418*  436*  447*  449*  552*  557*  560*  581*  756*  782*
              793*  809*  956*  964*  973*  999* 1016* 1143* 1157* 1167*
int_pax_addr  171*  171*  332*  407*  408*
in_sem        204*
j             136* 1189= 1198= 1198  1202  1518= 1524  1526  1528  1530  1636= 1638= 1640= 1642= 1644=
             1647  1649 
\f

alaoslst    81.06.18.   14.12.                                                    page    66

k             137*
lam           290*  653 
lamsem        196*  263*  279*
lam_sem_no    629   642   653   661   727  1294  1295  1295 
lam_size      654 
last           64*  777=  777   778  1143* 1146  1238= 1326=
lastchar     1018* 1023= 1031= 1039 
lastindex      51*   67* 1326 
lastword      138* 1347= 1624= 1625  1626= 1630 
leftbyte      139*
level         188*  292*
linelength     49*   51*
link          566 
local_sem_table                                                  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              342*
lock          494:  500:  774:  987: 1138: 1237: 1307: 1322: 1523: 1525: 1527: 1529: 1635: 1637: 1639:
             1641:
locked       1212 
m             805*  871=  874   875   876=  878   879   880=
macroaddr     163*  163*  164*  164*  165*  165*  218*  226*  251*  268*  436*  438*
main          315*
main_sem      341*
make_phead    417*
max           233*
maxbuf       1527: 1528= 1639: 1640 
maxbufsize     35*   74*  472   482 
maxbuftype     74* 1527  1639 
maxpos        797*  801*  817   821   840   901   916   927   939   943   943 
messbuf      1525: 1526= 1637: 1638 
messbufpool    97* 1333 
messbufsize    33*   71*  470   481 
messbuftype    71*   97* 1525  1637 
messem        259*
micaddr       269*
minbuf       1523: 1524= 1635: 1636 
minbufsize     36*   73*  468   480 
minbuftype     73* 1523  1635 
min_rut_mess   59*
mirror        202*  742 
mirror_sem_no                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              742 
moduleno      140*  756*  760   763  1433= 1436  1490  1490  1492  1496  1496  1578= 1579  1579  1580 
             1582  1583  1586  1592 
moduleready   756*  760=  765= 1496 
\f

alaoslst    81.06.18.   14.12.                                                    page    67

more         1171* 1186= 1190  1194=
n1            583*  611   611 
n10           592*  656   656   666 
n11           593*  660   660 
n13           594*  670   670 
n14           595*  675   675 
n15           596*  681   681 
n16           597*
n17           598*  685   685 
n18           599*  693   693 
n19           600*  700   700 
n2            584*  615   615 
n20           601*  704   704 
n21           602*  709   709 
n22           603*  713   713 
n23           604*  720   720 
n24           605*  725   725 
n25           606*  731   736 
n27           607*  741   741 
n3            585*  619   619 
n4            586*  623   623 
n5            587*  627   627 
n6            588*  633   633 
n7            589*  639   639 
n8            590*  648   648 
n9            591*  652   652 
name           66*  553*  566  1311= 1327=
ncsem         278*
ncsup         312*  671 
ncsup_int1    671 
ncsup_int2    671 
nc_addr       164*  441=
nc_sem_no     642   671  1300  1453 
nc_sup_size   673 
negative      811*  823=  834  1013* 1039= 1040= 1061  1064= 1075  1084= 1089= 1094= 1108  1120 
netconnector  336*  686 
netc_locals   158*  687  1299= 1300= 1439= 1453= 1464= 1474= 1475=
netc_loc_sems                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              158*  342*
netc_pri      690   698 
netc_sem      177*  329*
netc_sem_no   643   661   672   687   695   716 
netc_size     690   698 
net_addr      410= 1266=
\f

alaoslst    81.06.18.   14.12.                                                    page    68

net_sem       319*
newbase       515*  526=  529=  539=  546 
newm          805*  874=  876   878=  880 
next           65*  495=  503   504=  990   991=  991  1139= 1139 
nl           1233 
node_addr     412= 1268=
node_no       170* 1264  1265= 1265  1268  1273  1273  1274  1274  1352 
noofdig       806*  887=  892=  897=  901 
noofdigit    1015* 1085= 1090= 1095= 1108  1120 
noofmodules    37*  160* 1490  1579 
noofparams    141*  519=  532=  532   533   534   535   542   544=  544   565  1351= 1379  1409  1430 
             1435  1506  1518  1563  1575  1576  1619  1623  1667  1686  1698  1727  1733  1735  1737 
             1749  1775 
noofpos       807*  886=  891=  896=  912 
noofsemaphores                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
               38* 1381  1564  1565  1668  1692  1699  1751  1776  1777 
noparam        43* 1402  1412  1499  1676  1728  1770  1785 
no_listen      97* 1331 
no_pax_bufs    59* 1338 
nref          111*
nul          1023  1024 
oflow         366*
ok             52*  498   560*  567=  568   571=  571   574 
okl           559*  566=  571   576=
oldbase       142*  524=  538   548   787=  790  1411  1419 
op            175*  182*  190*  210*  215*  223*
opbuf         494:  495   500:  501   774:  775   987:  988  1138: 1139  1139  1237: 1238  1307: 1308 
             1322: 1323 
opbufpool      94* 1305  1318 
opbufsize      31*
opbuftype      61*   94*  494   500   774   987  1138  1237  1307  1322 
open         1180  1203 
operatorsem  1258 
opinref       113*  494:  496   497   498   500:  987: 1138: 1318  1320  1322:
opoutref      114*  774: 1231  1234  1236  1237: 1305  1306  1307: 1314 
opsem         120*  231*  237*  257*  274*  291*  297*  302*  308*  313*  362*  496   612   616   620 
              624   628   634   640   649   653   657   661   667   671   676   682   701   705   710 
              714   722   726   732   737   742  1234  1258= 1261 
op_code       418*  430 
op_sem        194*  203*  351*  356*
ord           508   829   922   923  1046  1046  1047  1069  1069  1070  1117  1117  1119 
org           427=
osif          193*  726 
osif_pri      728 
\f

alaoslst    81.06.18.   14.12.                                                    page    69

osif_sem_no   726 
osif_size     728 
outchar       771*  937   945   959   967   976  1183  1183  1185  1215  1215  1217  1233  1610  1611 
             1633 
outdecimal    377*  574   750   763   782* 1184  1202  1216  1492  1586  1592  1632  1703 
outinteger    380*  789   793* 1149  1162  1397  1398  1613  1614  1615  1616  1647  1649  1764  1765 
outstring10   383*  751   952* 1148  1218  1396  1400  1402  1412  1493  1499  1507  1513  1567  1587 
             1593  1597  1607  1658  1671  1675  1676  1725  1728  1763  1768  1770  1783  1784  1785 
outstring12   386*  573   962*
outstring20   389*  563   572   764   970* 1161  1401  1418  1510  1542  1543  1544  1545  1546  1547 
             1548  1549  1550  1551  1552  1553  1554  1555  1556  1557  1558  1559  1629  1702  1759 
             1769  1790 
own          1261 
ownaddr       252*
p             419*  421   555*  566   567   576 
packet_type   425=
packextnode   446*  463=
packmacro     435*  443=
par           436*  440   441   442   447*  456   457 
params        159*  410   411   412   413   429   430   440   441   442   456   457   533=  534  1353=
             1354= 1356= 1377  1416  1422  1433  1435  1509  1516  1524  1526  1528  1530  1565  1565 
             1566  1566  1578  1619  1620  1621  1623  1624  1665  1699  1699  1700  1703  1708  1709 
             1709  1711  1711  1732  1732  1733  1734  1735  1736  1737  1738  1747  1776  1776  1777 
             1777  1779  1780  1780  1781 
paxbufpool     98* 1340 
paxnet_config                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1273  1273  1274  1274 
paxpooltype    59*   98*
pax_adr       408*  410   411   412   413   414 
pax_ncp_sem   645  1292  1293  1293 
pax_pool      687   694  1341 
pax_pool_sem  326*  340*
pax_sem_1     644   696  1286  1287  1287 
pax_sem_2     644   696  1284  1285  1285 
pax_sem_3    1288  1289  1289 
pax_sem_4    1290  1291  1291 
point_rec      88*  169*
pool           59*   94*   96*   97*
port          200*
positions     377*  380*  782*  789   793*  937   939   940   941=  943 
pr             40*
prio          557*  569 
priority      424=
process         4*  174*  179*  186*  193*  202*  209*  214*  222*  230*  236*  256*  273*  290*  296*
              301*  307*  312*  323*  336*  350*  355*  360*
\f

alaoslst    81.06.18.   14.12.                                                    page    70

processrec    555*
processref    566   576 
pu             39*  292*  653 
px_ncp       1292 
px_urec1     1284 
px_urec2     1288 
px_utrm1     1286 
px_utrm2     1290 
quesem        240*  260*
que_down      176*
que_up        176*
readchar      392*  506   982*  990= 1032  1055  1102 
readinteger   395*  533   999* 1133=
readok        151*  542  1022= 1048=
readram       369* 1264 
rec           189*  206*
receiver      180*
ref          1259  1279  1284  1286  1288  1290  1292  1294 
reference     116*
reg_addr      411= 1267=
remove       1583 
repeatchar    398* 1131  1136*
res           808*  906=  911=  911   914   921   922   923   924   929=
result        369* 1016* 1037= 1046= 1047= 1061  1063= 1069= 1069  1070= 1070  1075= 1075  1111= 1111 
             1112= 1112  1113= 1113  1117= 1117  1119= 1119  1122  1123= 1124= 1124  1133 
retrans_max   181*
return       1314  1334  1659 
rightbyte     143*
rut_format_1  423 
rut_pack_type                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              425 
rut_prio_0    424 
rut_rec_sem   331*
rut_trm_sem   330*
s             629   629   635   635   635   640   641   642   642   642   661   661   662   672   672 
              677   677   677   689   689   695   696   696   716   716   726   727   743  1176  1279=
             1280  1284= 1285  1286= 1287  1288= 1289  1290= 1291  1292= 1293  1294= 1295  1299  1300 
             1333  1340  1341  1439  1453  1464  1474  1475  1564  1566 
sem           122*  187*  298*  352*  357*  612   616   620   624   628   628   629   629   629   634 
              634   635   635   635   636   640   641   642   642   642   643   643   644   644   645 
              645   649   653   657   661   661   662   662   663   663   663   663   667   671   671 
              671   672   672   676   676   677   677   677   678   682   687   687   688   689   689 
              694   694   695   696   696   701   705   715   715   715   715   716   716   716   721 
              721   722   726   726   727   732   737   742   743  1176  1177  1279  1280  1280  1284 
             1285  1285  1286  1287  1287  1288  1289  1289  1290  1291  1291  1292  1293  1293  1294 
             1295  1295  1299  1300  1333  1340  1341  1439  1453  1464  1474  1475  1564  1564  1566 
\f

alaoslst    81.06.18.   14.12.                                                    page    71

             1566  1779  1780  1780  1781 
sem1          303*
sem2          303*
sem3          303*
sem4          303*
sem5          304*
sem6          304*
sem7          304*
sem8          304*
semaphore     107*  108* 1167*
semint1       284*
semint2       285*
semint3       286*
semint4       287*
semno         144* 1377= 1381  1381  1382  1382  1384  1385  1387  1665= 1668  1668  1670  1673  1673 
             1674  1747= 1751  1751  1752  1752  1754  1755  1757 
sempointer     89*  119*  120*  121*  175*  177*  182*  190*  194*  196*  203*  205*  210*  215*  223*
              231*  237*  244*  257*  265*  274*  281*  291*  297*  302*  303*  308*  313*  320*  324*
              331*  338*  346*  351*  356*  362*
semvector       4* 1258 
sensesem     1192  1755  1757 
setoflowmask  366* 1349 
sh            160*  562   567   569   760  1580  1582  1583 
shadow        160*
signal        496  1197  1206  1234  1341  1670  1674 
signs        1010*
size          468   470   472   474   556*  565  1398  1628  1765 
sp            817   937 
spool_sem     101* 1259 
spool_test_sem                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              119*  686   694   710  1259=
st            147*  565=  567  1344= 1435=
start         569 
state         426=
stop_code     166*
streambufs    198*
streamer      179*  721 
streamno      197*
streamsem     196*
stream_pri    722 
stream_rec    722   732 
stream_sem    177*
stream_sem_no                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              716   721   726   743 
\f

alaoslst    81.06.18.   14.12.                                                    page    72

stream_size   722 
stream_xmit   721   737 
str_sem       205*
system_vector                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                4*
tab_sem       309*
tap           307*  657   667 
tap1_sem_no   667 
tapdte        350*  701 
tapnet        355*  705 
tap_dte_sem_no                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              701 
tap_net_sem_no                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              705 
tap_sem_no    657 
testbuf      1529: 1530= 1641: 1642 
testbufpool    96* 1385  1387 
testbufsize    34*   72*  474   483 
testbuftype    72*   96* 1529  1641 
testinterval 1143* 1151= 1154= 1732  1733  1735  1737 
testmode      154* 1159  1260= 1600= 1600 
testmodeout   401*  491   508   517   534  1157*
testopen     1261 
testout       457   462  1262  1272 
testoutput    360*  710 
testsem      1167* 1690  1693  1709  1711 
test_sem      324*  338*
text          383*  386*  389*  401*  952*  959   962*  967   970*  976  1157* 1161 
ticklength    233*
timeout        78*
timeoutsem    232*  264*  280*  320*
timeout_sem   345*
timeout_sem_no                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              624   635   642   662   672   677   689 
time_out_unit                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              624 
timout        230*  624 
tim_pri       625 
tim_size      625 
top_of_data   431=
true          153*  526   732   760   907  1048  1084  1089  1094  1154  1186  1349 
tsaddr        268*
tsconnector   273*  640 
tsc_pri       646 
\f

alaoslst    81.06.18.   14.12.                                                    page    73

tsc_size      646 
tsssem        276*
tssuper       209*  612 
tssup_sem_no  640  1299  1464  1475 
tss_pri       613   673 
tss_size      613 
ts_addr       165*  218*  226*  251*  442=  616   620   630   636   678 
ts_pointer    176*  180*  187*  195*  204*  232*  240*  260*  287*  293*  304*  309*  317*  327*  341*
              352*  357*
ts_pointer_vector                                                <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              122*  211*  219*  227*  298*
ts_sem        108*  211*  219*  227* 1279  1385  1670  1693  1709  1755 
ts_sem_total   38*  108* 1277 
ttybufs       199*
t_sem        1167* 1180  1192  1206  1212 
u1           1306= 1320= 1390= 1613  1732=
u2            498  1391= 1614  1734=
u3           1392= 1615  1736=
u4           1393= 1616  1738=
unlink        576 
used          809*  814=  840=  927=  937   940   941 
user_field    430=
vac_size      637 
vagt          296*  649   682 
valparam       42* 1567  1783  1784 
vas_sem_no    635 
vas_size      650 
vcc           256*  634   676 
vcc_pri       637   679 
vcc_sem_no    634   634   676   676 
vchsem        262*
vch_pri       621 
vch_sem_no    635   677 
vch_size      621 
vc_handler    222*  620 
vc_sim_pri    650   683 
version        26* 1262 
vic_size      679 
vis_sem_no    677 
vis_size      683 
w             629   636   643   662   678   688   716  1177  1280= 1285= 1287= 1289= 1291= 1293= 1295=
             1564= 1566= 1779  1780= 1780  1781=
wait          497  1205  1236 
worksem       121* 1779= 1781 
\f

alaoslst    81.06.18.   14.12.                                                    page    74

writenl       404*  575  1150  1163  1209  1219  1227* 1316  1542  1543  1544  1545  1546  1547  1548 
             1549  1550  1551  1552  1553  1554  1555  1556  1557  1558  1588  1594  1617  1650  1704 
             1794 
write_sem     176*
wrsem         105*  497  1318 
wsem          103* 1236  1305 
xmit          207*
xmitter       180*
z             125*  457   462  1261  1262  1272 
zeroes        811*  907=  914   924   926=
zone          125*
\f

alaoslst    81.06.18.   14.12.                                                    page    75

AND               24
ARRAY             13
BEGIN            116
CASE              10
CONST              5
DIV                7
DO                52
DOWNTO             3
ELSE              65
END              129
FOR               24
FORWARD           11
FUNCTION           9
IF               104
IN                13
MOD                8
NIL               13
NOT                8
OF                27
OR                13
OTHERWISE          6
PROCEDURE         27
RECORD             3
REPEAT             5
THEN             104
TO                21
TYPE               1
UNTIL              5
VAR               54
WHILE              4
WITH               8
\f

jg2  1981.06.18  14.14
 alaos program
81.06.18.      14.14.                         pascal80     version 1981.04.01


   name        headline beginline endline  appetite(words) 

   dte_pax_addr   408       410     415  :       8            
   make_phead     420       423     433  :      17            
   packmacro      438       440     444  :       6            
   packextnode    449       452     464  :      29            
   get_curbufty   467       469     485  :       2            
   getinput       489       491     511  :      21            
   getparams      515       517     549  :      25            
   init_proc      559       563     579  :      29            
   init_modul     583       610     754  :      58            
   moduleready    759       760     767  :      19            
   outchar        773       774     780  :       9            
   outdecimal     786       787     791  :      10            
   outinteger     797       814     948  :      47            
   outstring10    956       958     960  :      17            
   outstring12    964       966     968  :      17            
   outstring20    973       975     977  :      17            
   readchar       986       987     994  :      11            
   readinteger   1008      1022    1134  :      17            
   repeatchar    1137      1138    1141  :       8            
   testinterval  1145      1147    1155  :      13            
   testmodeout   1158      1160    1165  :      18            
   testsem       1171      1175    1221  :      15            
   writenl       1230      1232    1239  :      11            
   alarm_opsys     26      1258    1798  :    1397            

 code: 6 . 1338  = 19338 bytes


end of PASCAL80 compilation 

end
blocksread = 53
▶EOF◀