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

⟦22eebb2a0⟧ TextFile

    Length: 148992 (0x24600)
    Types: TextFile
    Names: »fetsaoslst«

Derivation

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

TextFile

\f

fetsaoslst  81.05.13.   15.17.                                                    page     1

   10    1          
   20    2          
   30    3           
\f

fetsaoslst  81.05.13.   15.17.                                                    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  5.02 /";
 1240   27          
 1250   28          
 1260   29           
\f

fetsaoslst  81.05.13.   15.17.                                                    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

fetsaoslst  81.05.13.   15.17.                                                    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

fetsaoslst  81.05.13.   15.17.                                                    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          testmode
 3250  154          : boolean;
 3260  155          
 3270  156            (**********  arrays  **********)
 3280  157          netc_locals : netc_loc_sems;
 3290  158          params: ARRAY(1..50) OF integer; (* holds parameters from operator *)
 3300  159          sh: ARRAY(1..noofmodules) OF shadow; (* ref. to process incarn. *)
 3310  160          
 3320  161            (********** param to use in create **********)
 3330  162          dc_addr: macroaddr := macroaddr(7,0,0);
 3340  163          nc_addr: macroaddr := macroaddr(7,5,0);
 3350  164          ts_addr: macroaddr := macroaddr(7,5,4);
 3360  165          
 3370  166            (*** auxiliary to compare sempointers ***)
 3380  167          ap,bp : point_rec;
\f

fetsaoslst  81.05.13.   15.17.                                                    page     6

 3390  168          node_no : byte;
 3400  169          dte_addr : int_pax_addr := int_pax_addr(0,0,0,3);
 3410  170           
\f

fetsaoslst  81.05.13.   15.17.                                                    page     7

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

fetsaoslst  81.05.13.   15.17.                                                    page     8

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

fetsaoslst  81.05.13.   15.17.                                                    page     9

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

fetsaoslst  81.05.13.   15.17.                                                    page    10

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

fetsaoslst  81.05.13.   15.17.                                                    page    11

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

fetsaoslst  81.05.13.   15.17.                                                    page    12

 6310  401         
\f

fetsaoslst  81.05.13.   15.17.                                                    page    13

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

fetsaoslst  81.05.13.   15.17.                                                    page    14

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

fetsaoslst  81.05.13.   15.17.                                                    page    15

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

fetsaoslst  81.05.13.   15.17.                                                    page    16

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

fetsaoslst  81.05.13.   15.17.                                                    page    17

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

fetsaoslst  81.05.13.   15.17.                                                    page    18

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

fetsaoslst  81.05.13.   15.17.                                                    page    19

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

fetsaoslst  81.05.13.   15.17.                                                    page    20

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

fetsaoslst  81.05.13.   15.17.                                                    page    21

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

fetsaoslst  81.05.13.   15.17.                                                    page    22

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

fetsaoslst  81.05.13.   15.17.                                                    page    23

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

fetsaoslst  81.05.13.   15.17.                                                    page    24

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

fetsaoslst  81.05.13.   15.17.                                                    page    25

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

fetsaoslst  81.05.13.   15.17.                                                    page    26

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

fetsaoslst  81.05.13.   15.17.                                                    page    27

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

fetsaoslst  81.05.13.   15.17.                                                    page    28

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

fetsaoslst  81.05.13.   15.17.                                                    page    29

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

fetsaoslst  81.05.13.   15.17.                                                    page    30

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

fetsaoslst  81.05.13.   15.17.                                                    page    31

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

fetsaoslst  81.05.13.   15.17.                                                    page    32

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

fetsaoslst  81.05.13.   15.17.                                                    page    33

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

fetsaoslst  81.05.13.   15.17.                                                    page    34

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

fetsaoslst  81.05.13.   15.17.                                                    page    35

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

fetsaoslst  81.05.13.   15.17.                                                    page    36

25010 1131        PROCEDURE repeatchar;
25020 1132        BEGIN
25030 1133    1   ! LOCK opinref AS opbuf: opbuftype DO
25040 1134    2   !   opbuf.next:= opbuf.next - 1;
25050 1135    3   ! incharsleft:= incharsleft + 1;
25060 1136    4   END;
25070 1137         
\f

fetsaoslst  81.05.13.   15.17.                                                    page    37

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

fetsaoslst  81.05.13.   15.17.                                                    page    38

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

fetsaoslst  81.05.13.   15.17.                                                    page    39

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

fetsaoslst  81.05.13.   15.17.                                                    page    40

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

fetsaoslst  81.05.13.   15.17.                                                    page    41

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

fetsaoslst  81.05.13.   15.17.                                                    page    42

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

fetsaoslst  81.05.13.   15.17.                                                    page    43

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

fetsaoslst  81.05.13.   15.17.                                                    page    44

30930 1329   78   !   ! return(cur);
30940 1330   79   !   END;
30950 1331   80   ! 
30960 1332   81   !   (*-------    allocate all paxnetbuffers ---*)
30970 1333   82   ! FOR i:=1 TO no_pax_bufs DO
30980 1334   83   !   BEGIN
30990 1335   84   !   ! alloc( cur, paxbufpool, sem(dte_sem_no).s^);
31000 1336   85   !   ! signal( cur, sem( pax_pool).s^);
31010 1337   86   !   END;
31020 1338   87   ! 
31030 1339   88   ! st:= 1024;
31040 1340   89   ! base:= 10;
31050 1341   90   ! firstword:= 1;
31060 1342   91   ! lastword:= 10;
31070 1343   92   ! 
31080 1344   93   ! setoflowmask(true);
31090 1345   94   ! 
31100 1346   95   ! noofparams:= 0;
31110 1347   96   !   (* insert auto create with edit here *)
31120 1348   97   ! 
31130 1349   98   ! REPEAT
31140 1350   99   ! !   (* read a line of input from the operator and execute it *)
31150 1351  100   ! ! 
31160 1352  101   ! ! getinput;
31170 1353  102   ! ! 
31180 1354  103   ! ! CASE command OF
31190 1355  104   ! ! ! 
31200 1356  105   ! ! ! ";": (* comment command *)
31210 1357  106   ! ! !   BEGIN
31220 1358  107   ! ! !   END;
31230 1359  108   ! ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    45

32010 1360  109   ! ! ! "a": (* alloc *)
32020 1361  110   ! ! !     (* a buffer is allocated from the messbufpool to the current
32030 1362  111   ! ! !     reference "cur".
32040 1363  112   ! ! !     1st param is the answersem *)
32050 1364  113   ! ! !   BEGIN
32060 1365  114   ! ! !   ! semno:= params(1);
32070 1366  115   ! ! !   ! 
32080 1367  116   ! ! !   ! IF noofparams >= 1 THEN
32090 1368  117   ! ! !   !   IF nil(cur) THEN
32100 1369  118   ! ! !   !     IF ((semno>0) AND (semno <= noofsemaphores))
32110 1370  119   ! ! !   !       OR ((semno<0) AND (semno >= -applsem_max)) THEN
32120 1371  120   ! ! !   !       BEGIN
32130 1372  121   ! ! !   !       ! IF semno > 0 THEN
32140 1373  122   ! ! !   !       !   alloc (cur, testbufpool, ts_sem(semno))
32150 1374  123   ! ! !   !       ! ELSE
32160 1375  124   ! ! !   !       !   alloc (cur, testbufpool, evavector(-semno));
32170 1376  125   ! ! !   !       ! WITH cur^ DO
32180 1377  126   ! ! !   !       !   BEGIN
32190 1378  127   ! ! !   !       !   ! u1:= 0;
32200 1379  128   ! ! !   !       !   ! u2:= 0;
32210 1380  129   ! ! !   !       !   ! u3:= 0;
32220 1381  130   ! ! !   !       !   ! u4:= 0;
32230 1382  131   ! ! !   !       !   END;
32240 1383  132   ! ! !   !       ! get_curbuftype;
32250 1384  133   ! ! !   !       ! outstring10("  bufsize ");
32260 1385  134   ! ! !   !       ! outinteger(curbufsize, 5);
32270 1386  135   ! ! !   !       ! outinteger(cur^.size, 5)
32280 1387  136   ! ! !   !       END
32290 1388  137   ! ! !   !     ELSE outstring10(illegalno)
32300 1389  138   ! ! !   !     ELSE outstring20("you already have one")
32310 1390  139   ! ! !   !     ELSE outstring10(noparam)
32320 1391  140   ! ! !   END (* alloc*);
32330 1392  141   ! ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    46

33010 1393  142   ! ! ! "b": (* base *)
33020 1394  143   ! ! !     (* defines the number base for input as well as output *)
33030 1395  144   ! ! !     (* the base is always read decimally *)
33040 1396  145   ! ! !   BEGIN
33050 1397  146   ! ! !   ! IF noofparams < 1 THEN
33060 1398  147   ! ! !   !   BEGIN
33070 1399  148   ! ! !   !   ! base:= oldbase;
33080 1400  149   ! ! !   !   ! outstring10(noparam)
33090 1401  150   ! ! !   !   END
33100 1402  151   ! ! !   ! ELSE
33110 1403  152   ! ! !   !   
33120 1404  153   ! ! !   !   IF NOT (params(1) IN (. 2, 8, 10, 16 .) ) THEN
33130 1405  154   ! ! !   !     BEGIN (* illegal base *)
33140 1406  155   ! ! !   !     ! outstring20("illegal base        ");
33150 1407  156   ! ! !   !     ! base:= oldbase;
33160 1408  157   ! ! !   !     END
33170 1409  158   ! ! !   !   ELSE
33180 1410  159   ! ! !   !     base:= params(1);
33190 1411  160   ! ! !   END;
33200 1412  161   ! ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    47

34010 1413  162   ! ! ! "c": (* create *)
34020 1414  163   ! ! !     (* an incarnation of each of the predefined modules to be tested
34030 1415  164   ! ! !     is created and started.
34040 1416  165   ! ! !     params are nos. of the modules to be created and started *)
34050 1417  166   ! ! !   
34060 1418  167   ! ! !   IF noofparams >= 1 THEN
34070 1419  168   ! ! !     
34080 1420  169   ! ! !     BEGIN
34090 1421  170   ! ! !     ! moduleno:= params(1);
34100 1422  171   ! ! !     ! 
34110 1423  172   ! ! !     ! IF noofparams>1 THEN st:= params(2);
34120 1424  173   ! ! !     ! IF moduleno=0 THEN
34130 1425  174   ! ! !     !   BEGIN
34140 1426  175   ! ! !     !   ! init_modul(8);
34150 1427  176   ! ! !     !   ! init_modul(1);
34160 1428  177   ! ! !     !   ! init_modul(17);
34170 1429  178   ! ! !     !   ! init_modul(22);
34180 1430  179   ! ! !     !   ! init_modul(23);
34190 1431  180   ! ! !     !   ! init_modul(24);
34200 1432  181   ! ! !     !   ! init_modul(25);
34210 1433  182   ! ! !     !   ! init_modul(26);
34220 1434  183   ! ! !     !   END
34230 1435  184   ! ! !     ! ELSE
34240 1436  185   ! ! !     !   
34250 1437  186   ! ! !     !   IF (moduleno<1) OR (moduleno > noofmodules) THEN
34260 1438  187   ! ! !     !     BEGIN (* illegal no *)
34270 1439  188   ! ! !     !     ! outdecimal(moduleno,4);
34280 1440  189   ! ! !     !     ! outstring10(illegalno);
34290 1441  190   ! ! !     !     END
34300 1442  191   ! ! !     !   ELSE
34310 1443  192   ! ! !     !     IF moduleready(moduleno) THEN init_modul(moduleno);
34320 1444  193   ! ! !     END (* if noofparams >= 1 *)
34330 1445  194   ! ! !   ELSE outstring10 (noparam);
34340 1446  195   ! ! !   (* end create *)
34350 1447  196   ! ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    48

35010 1448  197   ! ! ! "d": (*  test dtesimulator  *)
35020 1449  198   ! ! !   BEGIN
35030 1450  199   ! ! !   ! outstring10("test dte  ");
35040 1451  200   ! ! !   ! 
35050 1452  201   ! ! !   ! sensesem( nref, sem( pax_pool).w^);
35060 1453  202   ! ! !   ! 
35070 1454  203   ! ! !   ! IF NOT nil( nref) THEN
35080 1455  204   ! ! !   !   BEGIN
35090 1456  205   ! ! !   !   ! nref^.u2 := 7;
35100 1457  206   ! ! !   !   ! nref^.u4 := from_link;
35110 1458  207   ! ! !   !   ! 
35120 1459  208   ! ! !   !   ! CASE params(1) OF
35130 1460  209   ! ! !   !   ! ! 
35140 1461  210   ! ! !   !   ! ! 
35150 1462  211   ! ! !   !   ! ! 
35160 1463  212   ! ! !   !   ! ! 1: (* answer to connect ext *)
35170 1464  213   ! ! !   !   ! !   BEGIN
35180 1465  214   ! ! !   !   ! !   ! nref^.u1 := rut_con;
35190 1466  215   ! ! !   !   ! !   ! nref^.u2 := rut_ok;
35200 1467  216   ! ! !   !   ! !   ! nref^.u3 := 7;
35210 1468  217   ! ! !   !   ! !   ! 
35220 1469  218   ! ! !   !   ! !   ! LOCK nref AS buf: rut_prefix_type DO
35230 1470  219   ! ! !   !   ! !   !   buf.ext_no := params(2);
35240 1471  220   ! ! !   !   ! !   !   (* ie  d 1 20  answers on connect ext 20 *)
35250 1472  221   ! ! !   !   ! !   END;
35260 1473  222   ! ! !   !   ! ! 
35270 1474  223   ! ! !   !   ! ! 2 : (* send ric buffer *)
35280 1475  224   ! ! !   !   ! !   BEGIN
35290 1476  225   ! ! !   !   ! !   ! nref^.u1 := dte_ric;
35300 1477  226   ! ! !   !   ! !   ! nref^.u4 := to_link;
35310 1478  227   ! ! !   !   ! !   END;
35320 1479  228   ! ! !   !   ! !   (* ie d 2  sends a ric-buffer to dte *)
35330 1480  229   ! ! !   !   ! ! 
35340 1481  230   ! ! !   !   ! ! 3: (* receive call from remote user *)
35350 1482  231   ! ! !   !   ! !   BEGIN
35360 1483  232   ! ! !   !   ! !   ! nref^.u1 := rut_rec;
35370 1484  233   ! ! !   !   ! !   ! nref^.u2 := rut_ok;
35380 1485  234   ! ! !   !   ! !   ! nref^.u3 := rut_default;
35390 1486  235   ! ! !   !   ! !   ! LOCK nref AS buf : rut_trp_pdata DO
35400 1487  236   ! ! !   !   ! !   !   WITH buf DO
35410 1488  237   ! ! !   !   ! !   !     BEGIN
35420 1489  238   ! ! !   !   ! !   !     ! make_phead( 3, dte_car, phead);
35430 1490  239   ! ! !   !   ! !   !     ! FOR i := label_size+3 TO l_listen DO
35440 1491  240   ! ! !   !   ! !   !     !   alarm_mess.da(i) := i;
35450 1492  241   ! ! !   !   ! !   !     END
35460 1493  242   ! ! !   !   ! !   END;
\f

fetsaoslst  81.05.13.   15.17.                                                    page    49

35470 1494  243   ! ! !   !   ! !   (*        stream    sender  receiver  facility  *)
35480 1495  244   ! ! !   !   ! !   (* ie d 3   1       0 0 4   0 0 2     0     is 4 sending call to 2 *)
35490 1496  245   ! ! !   !   ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    50

36010 1497  246   ! ! !   !   ! ! 4 : (* send receipt for call *)
36020 1498  247   ! ! !   !   ! !   IF params(2) = 1 THEN
36030 1499  248   ! ! !   !   ! !     BEGIN  (* aic *)
36040 1500  249   ! ! !   !   ! !     ! nref^.u1 := dte_aic;
36050 1501  250   ! ! !   !   ! !     ! nref^.u3 := 1;
36060 1502  251   ! ! !   !   ! !     ! nref^.u4 := to_link;
36070 1503  252   ! ! !   !   ! !     ! LOCK nref AS buf : aic_buf_type DO
36080 1504  253   ! ! !   !   ! !     !   BEGIN
36090 1505  254   ! ! !   !   ! !     !   ! buf.aic_id := 1;
36100 1506  255   ! ! !   !   ! !     !   ! buf.aic_q := false;
36110 1507  256   ! ! !   !   ! !     !   END
36120 1508  257   ! ! !   !   ! !     END
36130 1509  258   ! ! !   !   ! !   ELSE
36140 1510  259   ! ! !   !   ! !     BEGIN   (* rejic *)
36150 1511  260   ! ! !   !   ! !     ! nref^.u1 := dte_rejic;
36160 1512  261   ! ! !   !   ! !     ! nref^.u3 := 1;
36170 1513  262   ! ! !   !   ! !     ! nref^.u4 := to_link;
36180 1514  263   ! ! !   !   ! !     ! LOCK nref AS buf : rejic_buf_type DO
36190 1515  264   ! ! !   !   ! !     !   BEGIN
36200 1516  265   ! ! !   !   ! !     !   ! buf.rejic_id := 1;
36210 1517  266   ! ! !   !   ! !     !   ! buf.rejic_diag := params(3);
36220 1518  267   ! ! !   !   ! !     !   END
36230 1519  268   ! ! !   !   ! !     END;
36240 1520  269   ! ! !   !   ! !   (* ie d  4  1  sends aic-buffer   *)
36250 1521  270   ! ! !   !   ! !   (* ie d  4  0  sends rejic-buffer *)
36260 1522  271   ! ! !   !   ! ! 
36270 1523  272   ! ! !   !   ! ! 5: (* receive data from remote user *)
36280 1524  273   ! ! !   !   ! !   BEGIN
36290 1525  274   ! ! !   !   ! !   ! nref^.u1 := rut_rec;
36300 1526  275   ! ! !   !   ! !   ! nref^.u2 := rut_ok;
36310 1527  276   ! ! !   !   ! !   ! nref^.u3 := rut_default;
36320 1528  277   ! ! !   !   ! !   ! LOCK nref AS buf : rut_trp_pdata DO
36330 1529  278   ! ! !   !   ! !   !   WITH buf DO
36340 1530  279   ! ! !   !   ! !   !     BEGIN
36350 1531  280   ! ! !   !   ! !   !     ! make_phead( 3, dte_sdata, phead);
36360 1532  281   ! ! !   !   ! !   !     ! control.op_code := opc_command;
36370 1533  282   ! ! !   !   ! !   !     ! FOR i := label_size+3 TO l_listen DO
36380 1534  283   ! ! !   !   ! !   !     !   alarm_mess.da(i) := i;
36390 1535  284   ! ! !   !   ! !   !     END;
36400 1536  285   ! ! !   !   ! !   END;
36410 1537  286   ! ! !   !   ! !   (*        strm    sender   rec   fac   *)
36420 1538  287   ! ! !   !   ! !   (* ie d 5  1      0 0 4   0 0 2   0   sends data from 4 to 2 *)
36430 1539  288   ! ! !   !   ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    51

37010 1540  289   ! ! !   !   ! ! 6: (* clear from remote user *)
37020 1541  290   ! ! !   !   ! !   BEGIN
37030 1542  291   ! ! !   !   ! !   ! nref^.u1 := rut_rec;
37040 1543  292   ! ! !   !   ! !   ! nref^.u2 := rut_ok;
37050 1544  293   ! ! !   !   ! !   ! nref^.u3 := rut_default;
37060 1545  294   ! ! !   !   ! !   ! LOCK nref AS buf : rut_trp_pdata DO
37070 1546  295   ! ! !   !   ! !   !   WITH buf DO
37080 1547  296   ! ! !   !   ! !   !     BEGIN
37090 1548  297   ! ! !   !   ! !   !     ! make_phead( 3, dte_clr, phead);
37100 1549  298   ! ! !   !   ! !   !     END;
37110 1550  299   ! ! !   !   ! !   END;
37120 1551  300   ! ! !   !   ! !   (*          strm   sender   rec   fac  *)
37130 1552  301   ! ! !   !   ! !   (* ie d  6   1     0 0 4   0 0 2   0   clears stream 1 from 4 to 2 *)
37140 1553  302   ! ! !   !   ! ! 
37150 1554  303   ! ! !   !   ! ! 
37160 1555  304   ! ! !   !   ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    52

38010 1556  305   ! ! !   !   ! ! 10: (* call request *)
38020 1557  306   ! ! !   !   ! !   BEGIN
38030 1558  307   ! ! !   !   ! !   ! nref^.u1 := dte_car;
38040 1559  308   ! ! !   !   ! !   ! nref^.u3 := params(2);
38050 1560  309   ! ! !   !   ! !   ! nref^.u4 := to_link;
38060 1561  310   ! ! !   !   ! !   ! LOCK nref AS buf:car_buf_type DO
38070 1562  311   ! ! !   !   ! !   !   WITH buf DO
38080 1563  312   ! ! !   !   ! !   !     BEGIN
38090 1564  313   ! ! !   !   ! !   !     ! first := ric_first_val;
38100 1565  314   ! ! !   !   ! !   !     ! last := ric_first_val+l_control+l_listen-1;
38110 1566  315   ! ! !   !   ! !   !     ! q_bit := false;
38120 1567  316   ! ! !   !   ! !   !     ! WITH call_buf DO
38130 1568  317   ! ! !   !   ! !   !     !   BEGIN
38140 1569  318   ! ! !   !   ! !   !     !   ! control.op_code := dte_car;
38150 1570  319   ! ! !   !   ! !   !     !   ! dte_adr_l := l_dte_adr;
38160 1571  320   ! ! !   !   ! !   !     !   ! dte_adr := paxnet_config( params(5));
38170 1572  321   ! ! !   !   ! !   !     !   ! 
38180 1573  322   ! ! !   !   ! !   !     !   ! facility_l := l_facilities;
38190 1574  323   ! ! !   !   ! !   !     !   ! facility := params(6);
38200 1575  324   ! ! !   !   ! !   !     !   ! FOR i := label_size+3 TO l_listen DO
38210 1576  325   ! ! !   !   ! !   !     !   !   alarm_mess.da(i):=i;
38220 1577  326   ! ! !   !   ! !   !     !   END;
38230 1578  327   ! ! !   !   ! !   !     END;
38240 1579  328   ! ! !   !   ! !   END;
38250 1580  329   ! ! !   !   ! !   (*       strm rec   fac     *)
38260 1581  330   ! ! !   !   ! !   (* ie d 10  1  0 0 3  0 sends a call to 3 on stream 1 *)
38270 1582  331   ! ! !   !   ! !   (* ie d 10  2  0 0 4  0 sends a call to 4 on stream 2 *)
38280 1583  332   ! ! !   !   ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    53

39010 1584  333   ! ! !   !   ! ! 11: (* call accepted from remote user *)
39020 1585  334   ! ! !   !   ! !   BEGIN
39030 1586  335   ! ! !   !   ! !   ! nref^.u1 := rut_rec;
39040 1587  336   ! ! !   !   ! !   ! nref^.u2 := rut_ok;
39050 1588  337   ! ! !   !   ! !   ! nref^.u3 := rut_default;
39060 1589  338   ! ! !   !   ! !   ! LOCK nref AS buf: rut_trp_pdata DO
39070 1590  339   ! ! !   !   ! !   !   WITH buf DO
39080 1591  340   ! ! !   !   ! !   !     make_phead( 3, dte_aic, phead);
39090 1592  341   ! ! !   !   ! !   END;
39100 1593  342   ! ! !   !   ! !   (*         strm  sender  rec  fac  *)
39110 1594  343   ! ! !   !   ! !   (* ie d  11  1  0 0 3  0 0 2  0  is 3 accepting call from 2 *)
39120 1595  344   ! ! !   !   ! ! 
39130 1596  345   ! ! !   !   ! ! 12: (* send data to remote user *)
39140 1597  346   ! ! !   !   ! !   BEGIN
39150 1598  347   ! ! !   !   ! !   ! nref^.u1 := dte_sdata;
39160 1599  348   ! ! !   !   ! !   ! nref^.u3 := params(2);
39170 1600  349   ! ! !   !   ! !   ! nref^.u4 := to_link;
39180 1601  350   ! ! !   !   ! !   ! LOCK nref AS buf : dte_sdata_data DO
39190 1602  351   ! ! !   !   ! !   !   WITH buf DO
39200 1603  352   ! ! !   !   ! !   !     BEGIN
39210 1604  353   ! ! !   !   ! !   !     ! q_bit := false;
39220 1605  354   ! ! !   !   ! !   !     ! m_bit := false;
39230 1606  355   ! ! !   !   ! !   !     ! control.op_code := opc_command;
39240 1607  356   ! ! !   !   ! !   !     ! FOR i := label_size+3 TO l_listen DO
39250 1608  357   ! ! !   !   ! !   !     !   alarm_mess.da(i) := i;
39260 1609  358   ! ! !   !   ! !   !     END
39270 1610  359   ! ! !   !   ! !   END;
39280 1611  360   ! ! !   !   ! !   (* ie d  12  1      sends data on stream 1 *)
39290 1612  361   ! ! !   !   ! ! 
39300 1613  362   ! ! !   !   ! ! 13: (* clear stream to remote user *)
39310 1614  363   ! ! !   !   ! !   BEGIN
39320 1615  364   ! ! !   !   ! !   ! nref^.u1 := dte_clr;
39330 1616  365   ! ! !   !   ! !   ! nref^.u4 := to_link;
39340 1617  366   ! ! !   !   ! !   ! nref^.u3 := params(2);
39350 1618  367   ! ! !   !   ! !   ! LOCK nref AS buf : clear_buf_type DO
39360 1619  368   ! ! !   !   ! !   !   buf.diag_code := params(3);
39370 1620  369   ! ! !   !   ! !   END;
39380 1621  370   ! ! !   !   ! ! 
39390 1622  371   ! ! !   !   ! !   (*         strm   diag-code  *)
39400 1623  372   ! ! !   !   ! !   (* ie d 13  1        16    sends clear stream to dte *)
39410 1624  373   ! ! !   !   ! ! 
39420 1625  374   ! ! !   !   ! ! 
39430 1626  375   ! ! !   !   ! ! OTHERWISE
39440 1627  376   ! ! !   !   ! ! 
39450 1628  377   ! ! !   !   ! ! outstring10("undef test");
39460 1629  378   ! ! !   !   ! END;
\f

fetsaoslst  81.05.13.   15.17.                                                    page    54

39470 1630  379   ! ! !   !   ! signal( nref, sem( dte_sem_no).s^);
39480 1631  380   ! ! !   !   END
39490 1632  381   ! ! !   ! ELSE
39500 1633  382   ! ! !   !   outstring10("no paxbufs");
39510 1634  383   ! ! !   ! 
39520 1635  384   ! ! !   END;
39530 1636  385   ! ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    55

40010 1637  386   ! ! ! "f": (* fill *)
40020 1638  387   ! ! !     (* fills integers into current buffer.
40030 1639  388   ! ! !     1st param: first word no. to be filled,
40040 1640  389   ! ! !     following: values to be assigned *)
40050 1641  390   ! ! !   BEGIN
40060 1642  391   ! ! !   ! IF noofparams < 2 THEN
40070 1643  392   ! ! !   !   outstring10("param     ")
40080 1644  393   ! ! !   ! ELSE
40090 1645  394   ! ! !   !   IF (params(1) < 1) THEN
40100 1646  395   ! ! !   !     outstring20("illegal start       ")
40110 1647  396   ! ! !   !   ELSE
40120 1648  397   ! ! !   !     IF nil(cur) THEN
40130 1649  398   ! ! !   !       outstring10("no buffer ")
40140 1650  399   ! ! !   !     ELSE
40150 1651  400   ! ! !   !       BEGIN (* params are ok *)
40160 1652  401   ! ! !   !       ! i:= params(1); (* i points into the messbuf *)
40170 1653  402   ! ! !   !       ! 
40180 1654  403   ! ! !   !       ! FOR j:= 2 TO noofparams DO
40190 1655  404   ! ! !   !       !     (* j points into the param list *)
40200 1656  405   ! ! !   !       !   IF i <= curbufsize THEN
40210 1657  406   ! ! !   !       !     BEGIN
40220 1658  407   ! ! !   !       !     ! CASE curbuftype OF
40230 1659  408   ! ! !   !       !     ! ! 1: LOCK cur AS minbuf: minbuftype DO
40240 1660  409   ! ! !   !       !     ! !     minbuf(i):= params(j);
40250 1661  410   ! ! !   !       !     ! ! 2: LOCK cur AS messbuf: messbuftype DO
40260 1662  411   ! ! !   !       !     ! !     messbuf(i):= params(j);
40270 1663  412   ! ! !   !       !     ! ! 3: LOCK cur AS maxbuf: maxbuftype DO
40280 1664  413   ! ! !   !       !     ! !     maxbuf(i):= params(j);
40290 1665  414   ! ! !   !       !     ! ! 4: LOCK cur AS testbuf: testbuftype DO
40300 1666  415   ! ! !   !       !     ! !     testbuf(i):= params(j);
40310 1667  416   ! ! !   !       !     ! ! OTHERWISE
40320 1668  417   ! ! !   !       !     ! END;
40330 1669  418   ! ! !   !       !     ! i:= i + 1;
40340 1670  419   ! ! !   !       !     END;
40350 1671  420   ! ! !   !       ! 
40360 1672  421   ! ! !   !       END (* params ok *)
40370 1673  422   ! ! !   END (* fill *);
40380 1674  423   ! ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    56

41010 1675  424   ! ! ! "h": (* help *)
41020 1676  425   ! ! !     (* lists possible commands and no. of parameters *)
41030 1677  426   ! ! !   BEGIN
41040 1678  427   ! ! !   ! outstring20("comm and no of param"); writenl;
41050 1679  428   ! ! !   ! outstring20("a: allocate   1     "); writenl;
41060 1680  429   ! ! !   ! outstring20("b: base       1     "); writenl;
41070 1681  430   ! ! !   ! outstring20("c: create     >=1   "); writenl;
41080 1682  431   ! ! !   ! outstring20("e: execute    1     "); writenl;
41090 1683  432   ! ! !   ! outstring20("f: fill       2     "); writenl;
41100 1684  433   ! ! !   ! outstring20("h: help       0     "); writenl;
41110 1685  434   ! ! !   ! outstring20("i: init point 0     "); writenl;
41120 1686  435   ! ! !   ! outstring20("k: kill       >=1   "); writenl;
41130 1687  436   ! ! !   ! outstring20("o: output     0 to 2"); writenl;
41140 1688  437   ! ! !   ! outstring20("p: partial    >=3   "); writenl;
41150 1689  438   ! ! !   ! outstring20("r: return     0     "); writenl;
41160 1690  439   ! ! !   ! outstring20("s: signal     1     "); writenl;
41170 1691  440   ! ! !   ! outstring20("t: test       0 or 1"); writenl;
41180 1692  441   ! ! !   ! outstring20("u: user param 1 to 4"); writenl;
41190 1693  442   ! ! !   ! outstring20("w: wait       1     "); writenl;
41200 1694  443   ! ! !   ! outstring20("x: exch point 2     "); writenl;
41210 1695  444   ! ! !   ! outstring20(";: comment          ");
41220 1696  445   ! ! !   END;
41230 1697  446   ! ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    57

42010 1698  447   ! ! ! "i": (* initialise pointers *)
42020 1699  448   ! ! !   IF noofparams=0 THEN
42030 1700  449   ! ! !     FOR i:=1 TO noofsemaphores DO sem(i).w:= sem(i).s ELSE
42040 1701  450   ! ! !       IF (params(1)>0) AND (params(1)<=noofsemaphores) THEN
42050 1702  451   ! ! !         sem(params(1)).w:= sem(params(1)).s ELSE
42060 1703  452   ! ! !         outstring10(valparam);
42070 1704  453   ! ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    58

43010 1705  454   ! ! ! "e", (* exception *)
43020 1706  455   ! ! !   (* call of exception routine in one or more incarnations *)
43030 1707  456   ! ! ! "k": (* kill *)
43040 1708  457   ! ! !     (* removes incarnation of tested module(s)
43050 1709  458   ! ! !     params are nos. of modules to be removed *)
43060 1710  459   ! ! !   
43070 1711  460   ! ! !   IF noofparams >= 1 THEN
43080 1712  461   ! ! !     FOR i:= 1 TO noofparams DO
43090 1713  462   ! ! !       BEGIN
43100 1714  463   ! ! !       ! moduleno:= params(i);
43110 1715  464   ! ! !       ! IF (1<=moduleno) AND (moduleno<=noofmodules) THEN
43120 1716  465   ! ! !       !   IF NOT nil(sh(moduleno)) THEN
43130 1717  466   ! ! !       !     IF command="e" THEN
43140 1718  467   ! ! !       !       break(sh(moduleno),#h2f) ELSE
43150 1719  468   ! ! !       !       remove (sh(moduleno))
43160 1720  469   ! ! !       !     ELSE
43170 1721  470   ! ! !       !       BEGIN
43180 1722  471   ! ! !       !       ! outdecimal (moduleno, 4);
43190 1723  472   ! ! !       !       ! outstring10(" not alive");
43200 1724  473   ! ! !       !       ! writenl;
43210 1725  474   ! ! !       !       END
43220 1726  475   ! ! !       !     ELSE
43230 1727  476   ! ! !       !       BEGIN
43240 1728  477   ! ! !       !       ! outdecimal (moduleno, 4);
43250 1729  478   ! ! !       !       ! outstring10(illegalno);
43260 1730  479   ! ! !       !       ! writenl;
43270 1731  480   ! ! !       !       END
43280 1732  481   ! ! !       END
43290 1733  482   ! ! !     ELSE outstring10("no params ");
43300 1734  483   ! ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    59

44010 1735  484   ! ! ! "m": (* testmode *)
44020 1736  485   ! ! !   testmode:= NOT testmode;
44030 1737  486   ! ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    60

45010 1738  487   ! ! ! "n": (*  test netconnector *)
45020 1739  488   ! ! !   BEGIN
45030 1740  489   ! ! !   !   (*   1.  c19  tapdte  *)
45040 1741  490   ! ! !   !   (*   2.  c20  tapnet  *)
45050 1742  491   ! ! !   !   (*   3.  x18 31       *)
45060 1743  492   ! ! !   !   (*   4.  x4  34       *)
45070 1744  493   ! ! !   !   (*   5.  c17  netcon  *)
45080 1745  494   ! ! !   !   (*   6.  dummybuf til 4 *)
45090 1746  495   ! ! !   !   (*   7.  dummybuf til 34 *)
45100 1747  496   ! ! !   !   (*   8.  dummybuf til 31 *)
45110 1748  497   ! ! !   ! 
45120 1749  498   ! ! !   ! outstring10("test netc ");
45130 1750  499   ! ! !   ! 
45140 1751  500   ! ! !   ! 
45150 1752  501   ! ! !   ! CASE params(1) OF
45160 1753  502   ! ! !   ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    61

46010 1754  503   ! ! !   ! ! 1: (* update pax-table from local sup *)
46020 1755  504   ! ! !   ! !   BEGIN
46030 1756  505   ! ! !   ! !   ! sensesem( nref, sem( com_pool).w^);
46040 1757  506   ! ! !   ! !   ! 
46050 1758  507   ! ! !   ! !   ! IF NOT nil( nref) THEN
46060 1759  508   ! ! !   ! !   !   BEGIN
46070 1760  509   ! ! !   ! !   !   ! nref^.u2 := 7;
46080 1761  510   ! ! !   ! !   !   ! nref^.u3 := tss_route;
46090 1762  511   ! ! !   ! !   !   ! nref^.u4 := #hac;
46100 1763  512   ! ! !   ! !   !   ! 
46110 1764  513   ! ! !   ! !   !   ! LOCK nref AS buf : RECORD
46120 1765  514   ! ! !   ! !   !   !                      !  a:alarmlabel;
46130 1766  515   ! ! !   ! !   !   !                      !  i : integer;
46140 1767  516   ! ! !   ! !   !   !                      !  p:paxnet_e;
46150 1768  517   ! ! !   ! !   !   !   END DO
46160 1769  518   ! ! !   ! !   !   !   WITH buf DO
46170 1770  519   ! ! !   ! !   !   !     BEGIN
46180 1771  520   ! ! !   ! !   !   !     ! a.no_of_by := l_listen;
46190 1772  521   ! ! !   ! !   !   !     ! a.update := insert_code;
46200 1773  522   ! ! !   ! !   !   !     ! a.rec.macro := packmacro(2);
46210 1774  523   ! ! !   ! !   !   !     ! a.rec.micro := netc_mic_addr;
46220 1775  524   ! ! !   ! !   !   !     ! a.send.macro := packmacro(5);
46230 1776  525   ! ! !   ! !   !   !     ! p.al_mac_addr := packmacro(8);
46240 1777  526   ! ! !   ! !   !   !     ! p.pax_addr := paxnet_config( params(13));
46250 1778  527   ! ! !   ! !   !   !     ! 
46260 1779  528   ! ! !   ! !   !   !     ! i := params(14);
46270 1780  529   ! ! !   ! !   !   !     ! p.stream_no := params(15);
46280 1781  530   ! ! !   ! !   !   !     ! p.max_retrans := 1;
46290 1782  531   ! ! !   ! !   !   !     END;
46300 1783  532   ! ! !   ! !   !   END;
46310 1784  533   ! ! !   ! !   !   (*       receiver sender al-mac  pax indx stream       *)
46320 1785  534   ! ! !   ! !   !   (* ie n 1  0 0 0  1 0 0  1 2 2  0 0 2  1  1 sets netc address *)
46330 1786  535   ! ! !   ! !   !   (* ie n 1  1 2 2  1 0 0  1 2 0  0 0 2  2  2 sets ncsup addr   *)
46340 1787  536   ! ! !   ! !   !   (* ie n 1  1 2 2  1 0 0  1 3 2  0 0 3  7  0 sets global ts-adr*)
46350 1788  537   ! ! !   ! !   !   (* ie n 1  1 2 2  1 0 0  1 3 0  0 0 3  8  0 sets global nc-adr*)
46360 1789  538   ! ! !   ! !   END;
46370 1790  539   ! ! !   ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    62

47010 1791  540   ! ! !   ! ! 2 : (* update pax-table from net *)
47020 1792  541   ! ! !   ! !     (*---- comming in a ric-buffer --*)
47030 1793  542   ! ! !   ! !   BEGIN
47040 1794  543   ! ! !   ! !   ! sensesem( nref, sem(pax_pool).w^);
47050 1795  544   ! ! !   ! !   ! 
47060 1796  545   ! ! !   ! !   ! IF NOT nil( nref) THEN
47070 1797  546   ! ! !   ! !   !   BEGIN
47080 1798  547   ! ! !   ! !   !   ! nref^.u1 := dte_ric;
47090 1799  548   ! ! !   ! !   !   ! nref^.u2 := 0;
47100 1800  549   ! ! !   ! !   !   ! nref^.u3 := 7;
47110 1801  550   ! ! !   ! !   !   ! nref^.u4 := to_link;
47120 1802  551   ! ! !   ! !   !   ! 
47130 1803  552   ! ! !   ! !   !   ! LOCK nref AS buf : tst_ric_type DO
47140 1804  553   ! ! !   ! !   !   !   BEGIN
47150 1805  554   ! ! !   ! !   !   !   ! buf.c_i := params(16);
47160 1806  555   ! ! !   ! !   !   !   ! WITH buf.c_b DO
47170 1807  556   ! ! !   ! !   !   !   !   BEGIN
47180 1808  557   ! ! !   ! !   !   !   !   ! a_l.no_of_by := l_listen;
47190 1809  558   ! ! !   ! !   !   !   !   ! a_l.op_code := #hac;
47200 1810  559   ! ! !   ! !   !   !   !   ! a_l.update := insert_code;
47210 1811  560   ! ! !   ! !   !   !   !   ! a_l.rec.macro := packmacro(2);
47220 1812  561   ! ! !   ! !   !   !   !   ! a_l.rec.micro:=netc_mic_addr;
47230 1813  562   ! ! !   ! !   !   !   !   ! a_l.send.macro:=packmacro(5);
47240 1814  563   ! ! !   ! !   !   !   !   ! a_l.send.micro := 1;
47250 1815  564   ! ! !   ! !   !   !   !   ! p_e.al_mac_addr := packmacro(8);
47260 1816  565   ! ! !   ! !   !   !   !   ! p_e.pax_addr := paxnet_config( params(13));
47270 1817  566   ! ! !   ! !   !   !   !   ! 
47280 1818  567   ! ! !   ! !   !   !   !   ! indx:=params(15);
47290 1819  568   ! ! !   ! !   !   !   !   ! p_e.stream_no := params(14);
47300 1820  569   ! ! !   ! !   !   !   !   ! p_e.max_retrans := 1;
47310 1821  570   ! ! !   ! !   !   !   !   ! d_a := p_e.pax_addr;
47320 1822  571   ! ! !   ! !   !   !   !   END;
47330 1823  572   ! ! !   ! !   !   !   END
47340 1824  573   ! ! !   ! !   !   END;
47350 1825  574   ! ! !   ! !   END;
47360 1826  575   ! ! !   ! !   (*       receiver sender al-mac  pax  strm indx call-id  *)
47370 1827  576   ! ! !   ! !   (* ie n 2  1 2 2  1 0 0  1 4 2  0 0 4   1    9  1   sets global ts-addr *)
47380 1828  577   ! ! !   ! !   (* ie n 2  1 2 2  1 0 0  1 4 0  0 0 4   2   10  2   sets global nc-addr *)
47390 1829  578   ! ! !   ! !   (* ie n 2  1 2 2  1 0 0  1 5 2  0 0 5   3   11  3   sets global ts-addr *)
47400 1830  579   ! ! !   ! !   (* ie n 2  1 2 2  1 0 0  1 5 0  0 0 5   4   12  4   sets global nc-addr *)
47410 1831  580   ! ! !   ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    63

48010 1832  581   ! ! !   ! ! 3:  (* send alarmmessage from local *)
48020 1833  582   ! ! !   ! !   BEGIN
48030 1834  583   ! ! !   ! !   ! sensesem( nref, sem(com_pool).w^);
48040 1835  584   ! ! !   ! !   ! 
48050 1836  585   ! ! !   ! !   ! IF NOT nil( nref) THEN
48060 1837  586   ! ! !   ! !   !   BEGIN
48070 1838  587   ! ! !   ! !   !   ! nref^.u2 := 7;
48080 1839  588   ! ! !   ! !   !   ! nref^.u3 := tss_route;
48090 1840  589   ! ! !   ! !   !   ! nref^.u4 := #h30;
48100 1841  590   ! ! !   ! !   !   ! 
48110 1842  591   ! ! !   ! !   !   ! LOCK nref AS abuf : max_alarm_mess DO
48120 1843  592   ! ! !   ! !   !   !   WITH abuf DO
48130 1844  593   ! ! !   ! !   !   !     BEGIN
48140 1845  594   ! ! !   ! !   !   !     ! al.no_of_by := l_listen;
48150 1846  595   ! ! !   ! !   !   !     ! al.rec.macro := packmacro(2);
48160 1847  596   ! ! !   ! !   !   !     ! al.rec.micro := 0;
48170 1848  597   ! ! !   ! !   !   !     ! al.send.macro := packmacro(5);
48180 1849  598   ! ! !   ! !   !   !     ! al.send.micro := 0;
48190 1850  599   ! ! !   ! !   !   !     ! FOR i := label_size+3 TO l_listen DO
48200 1851  600   ! ! !   ! !   !   !     !   da(i) := i;
48210 1852  601   ! ! !   ! !   !   !     END;
48220 1853  602   ! ! !   ! !   !   ! 
48230 1854  603   ! ! !   ! !   !   !   (*        receiver sender *)
48240 1855  604   ! ! !   ! !   !   !   (* ie n 3  1 2 0   1 0 0  gives an alarm to ncsup local   *)
48250 1856  605   ! ! !   ! !   !   !   (* ie n 3  1 3 2   1 0 0  gives an alarm to tssup global  *)
48260 1857  606   ! ! !   ! !   !   !   (* ie n 3  1 3 0   1 0 0  gives an alarm to ncsup global  *)
48270 1858  607   ! ! !   ! !   !   END;
48280 1859  608   ! ! !   ! !   END;
48290 1860  609   ! ! !   ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    64

49010 1861  610   ! ! !   ! ! 4:  (* update pax-table from net *)
49020 1862  611   ! ! !   ! !     (*--- comming in a databuffer ---*)
49030 1863  612   ! ! !   ! !   BEGIN
49040 1864  613   ! ! !   ! !   ! sensesem( nref, sem( pax_pool).w^);
49050 1865  614   ! ! !   ! !   ! 
49060 1866  615   ! ! !   ! !   ! IF NOT nil(nref) THEN
49070 1867  616   ! ! !   ! !   !   BEGIN
49080 1868  617   ! ! !   ! !   !   ! nref^.u1 := dte_rdata;
49090 1869  618   ! ! !   ! !   !   ! nref^.u2 := 0;
49100 1870  619   ! ! !   ! !   !   ! nref^.u3 := params(2) MOD 256;
49110 1871  620   ! ! !   ! !   !   ! nref^.u4 := to_link;
49120 1872  621   ! ! !   ! !   !   ! 
49130 1873  622   ! ! !   ! !   !   ! LOCK nref AS buf : tst_sdata_data DO
49140 1874  623   ! ! !   ! !   !   !   WITH buf DO
49150 1875  624   ! ! !   ! !   !   !     BEGIN
49160 1876  625   ! ! !   ! !   !   !     ! control.op_code := opc_command;
49170 1877  626   ! ! !   ! !   !   !     ! WITH a_l DO
49180 1878  627   ! ! !   ! !   !   !     !   BEGIN
49190 1879  628   ! ! !   ! !   !   !     !   ! no_of_by := l_listen;
49200 1880  629   ! ! !   ! !   !   !     !   ! op_code := #hac;
49210 1881  630   ! ! !   ! !   !   !     !   ! update := insert_code;
49220 1882  631   ! ! !   ! !   !   !     !   ! rec.macro := packmacro(3);
49230 1883  632   ! ! !   ! !   !   !     !   ! rec.micro := netc_mic_addr;
49240 1884  633   ! ! !   ! !   !   !     !   ! send.macro := packmacro(6);
49250 1885  634   ! ! !   ! !   !   !     !   ! send.micro := 0;
49260 1886  635   ! ! !   ! !   !   !     !   END;
49270 1887  636   ! ! !   ! !   !   !     ! indx := params(9);
49280 1888  637   ! ! !   ! !   !   !     ! WITH p_e DO
49290 1889  638   ! ! !   ! !   !   !     !   BEGIN
49300 1890  639   ! ! !   ! !   !   !     !   ! al_mac_addr := packmacro(10);
49310 1891  640   ! ! !   ! !   !   !     !   ! pax_addr := paxnet_config( params(15));
49320 1892  641   ! ! !   ! !   !   !     !   ! 
49330 1893  642   ! ! !   ! !   !   !     !   ! stream_no := params(16);
49340 1894  643   ! ! !   ! !   !   !     !   ! max_retrans := 1;
49350 1895  644   ! ! !   ! !   !   !     !   END;
49360 1896  645   ! ! !   ! !   !   !     END;
49370 1897  646   ! ! !   ! !   !   END;
49380 1898  647   ! ! !   ! !   END;
49390 1899  648   ! ! !   ! ! 
49400 1900  649   ! ! !   ! !   (*     strm receiver sender indx al-mac pax strm *)
49410 1901  650   ! ! !   ! !   (* n 4  1    1 2 2   1 0 0   1   1 4 2 0 0 4  1  *)
49420 1902  651   ! ! !   ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    65

50010 1903  652   ! ! !   ! ! 5: (* send data or receipt from net *)
50020 1904  653   ! ! !   ! !   BEGIN
50030 1905  654   ! ! !   ! !   ! sensesem( nref, sem(pax_pool).w^);
50040 1906  655   ! ! !   ! !   ! 
50050 1907  656   ! ! !   ! !   ! IF NOT nil( nref) THEN
50060 1908  657   ! ! !   ! !   !   BEGIN
50070 1909  658   ! ! !   ! !   !   ! nref^.u1 := dte_rdata;
50080 1910  659   ! ! !   ! !   !   ! nref^.u2 := 0;
50090 1911  660   ! ! !   ! !   !   ! nref^.u3 := params(4) MOD 256;
50100 1912  661   ! ! !   ! !   !   ! nref^.u4 := to_link;
50110 1913  662   ! ! !   ! !   !   ! 
50120 1914  663   ! ! !   ! !   !   ! LOCK nref AS buf : tst_sdata_data DO
50130 1915  664   ! ! !   ! !   !   !   WITH buf DO
50140 1916  665   ! ! !   ! !   !   !     BEGIN
50150 1917  666   ! ! !   ! !   !   !     ! control.op_code := params(2);
50160 1918  667   ! ! !   ! !   !   !     ! control.data := params(3);
50170 1919  668   ! ! !   ! !   !   !     ! a_l.rec.macro := packmacro(5);
50180 1920  669   ! ! !   ! !   !   !     ! a_l.rec.micro := 0;
50190 1921  670   ! ! !   ! !   !   !     ! a_l.op_code := #h30;
50200 1922  671   ! ! !   ! !   !   !     END;
50210 1923  672   ! ! !   ! !   !   END;
50220 1924  673   ! ! !   ! !   END;
50230 1925  674   ! ! !   ! ! 
50240 1926  675   ! ! !   ! !   (*        opcode  data   stream   receiver  *)
50250 1927  676   ! ! !   ! !   (* n 5      x      x        1       1 2 2   *)
50260 1928  677   ! ! !   ! !   (* dte-aic  16     128   data-received *)
50270 1929  678   ! ! !   ! !   (* dte-rej  20      64   data-not-received *)
50280 1930  679   ! ! !   ! !   (* opc-rec  96           *)
50290 1931  680   ! ! !   ! !   (* opc-com  48           *)
50300 1932  681   ! ! !   ! ! 
50310 1933  682   ! ! !   ! ! 
50320 1934  683   ! ! !   ! ! OTHERWISE
50330 1935  684   ! ! !   ! ! outstring10("undef test");
50340 1936  685   ! ! !   ! END;
50350 1937  686   ! ! !   ! IF NOT nil( nref) THEN
50360 1938  687   ! ! !   !   signal( nref, sem( netc_sem_no).s^)
50370 1939  688   ! ! !   ! ELSE
50380 1940  689   ! ! !   !   outstring10("no buffers");
50390 1941  690   ! ! !   END;
50400 1942  691   ! ! ! 
50410 1943  692   ! ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    66

51010 1944  693   ! ! ! "o": (* output *)
51020 1945  694   ! ! !     (* outputs current buffer incl. user parameters
51030 1946  695   ! ! !     1st param is firstword,
51040 1947  696   ! ! !     2nd param is lastword *)
51050 1948  697   ! ! !   BEGIN
51060 1949  698   ! ! !   ! IF nil(cur) THEN
51070 1950  699   ! ! !   !   outstring10 ("no buffer ")
51080 1951  700   ! ! !   ! ELSE
51090 1952  701   ! ! !   !   BEGIN
51100 1953  702   ! ! !   !   ! outchar("u");
51110 1954  703   ! ! !   !   ! outchar(":");
51120 1955  704   ! ! !   !   ! 
51130 1956  705   ! ! !   !   ! outinteger(cur^.u1,4);
51140 1957  706   ! ! !   !   ! outinteger(cur^.u2,4);
51150 1958  707   ! ! !   !   ! outinteger(cur^.u3,4);
51160 1959  708   ! ! !   !   ! outinteger(cur^.u4,4);
51170 1960  709   ! ! !   !   ! writenl;
51180 1961  710   ! ! !   !   ! 
51190 1962  711   ! ! !   !   ! IF (noofparams>=1) AND (params(1)>=1)
51200 1963  712   ! ! !   !   !   AND (params(1)<= curbufsize) THEN
51210 1964  713   ! ! !   !   !   firstword:= params(1);
51220 1965  714   ! ! !   !   ! 
51230 1966  715   ! ! !   !   ! IF (noofparams>=2) AND (params(2)<=curbufsize) THEN
51240 1967  716   ! ! !   !   !   lastword:= params(2);
51250 1968  717   ! ! !   !   ! IF lastword>curbufsize THEN
51260 1969  718   ! ! !   !   !   lastword:= curbufsize;
51270 1970  719   ! ! !   !   ! 
51280 1971  720   ! ! !   !   ! IF cur^.size<curbufsize THEN
51290 1972  721   ! ! !   !   !   outstring20("too small buffer    ") ELSE
51300 1973  722   ! ! !   !   !   FOR i:= firstword TO lastword DO
51310 1974  723   ! ! !   !   !     BEGIN
51320 1975  724   ! ! !   !   !     ! outdecimal(i,3);
51330 1976  725   ! ! !   !   !     ! outchar(":");
51340 1977  726   ! ! !   !   !     ! CASE curbuftype OF
51350 1978  727   ! ! !   !   !     ! ! 1: LOCK cur AS minbuf: minbuftype DO
51360 1979  728   ! ! !   !   !     ! !     j:= minbuf(i);
51370 1980  729   ! ! !   !   !     ! ! 2: LOCK cur AS messbuf: messbuftype DO
51380 1981  730   ! ! !   !   !     ! !     j:= messbuf(i);
51390 1982  731   ! ! !   !   !     ! ! 3: LOCK cur AS maxbuf: maxbuftype DO
51400 1983  732   ! ! !   !   !     ! !     j:= maxbuf(i);
51410 1984  733   ! ! !   !   !     ! ! 4: LOCK cur AS testbuf: testbuftype DO
51420 1985  734   ! ! !   !   !     ! !     j:= testbuf(i);
51430 1986  735   ! ! !   !   !     ! ! OTHERWISE
51440 1987  736   ! ! !   !   !     ! ! j:= 0;
51450 1988  737   ! ! !   !   !     ! END;
51460 1989  738   ! ! !   !   !     ! IF base= 2 THEN
\f

fetsaoslst  81.05.13.   15.17.                                                    page    67

51470 1990  739   ! ! !   !   !     !   outinteger(j,17)
51480 1991  740   ! ! !   !   !     ! ELSE
51490 1992  741   ! ! !   !   !     !   outinteger(j,7);
51500 1993  742   ! ! !   !   !     ! writenl;
51510 1994  743   ! ! !   !   !     END;
51520 1995  744   ! ! !   !   END (* ok *);
51530 1996  745   ! ! !   END (* output *);
51540 1997  746   ! ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    68

52010 1998  747   ! ! ! "p": (* partial words *)
52020 1999  748   ! ! !     (* fills partial words i.e. bytes into current buffer.
52030 2000  749   ! ! !     1st param: word no. in which to start
52040 2001  750   ! ! !     2nd param: byte no. (of 1st word) in which to start:
52050 2002  751   ! ! !     -           0: left byte
52060 2003  752   ! ! !     -           1: right byte
52070 2004  753   ! ! !     following: byte values to be assigned *)
52080 2005  754   ! ! !   BEGIN
52090 2006  755   ! ! !   ! IF noofparams<2 THEN
52100 2007  756   ! ! !   !   outstring10("param     ")
52110 2008  757   ! ! !   ! ELSE
52120 2009  758   ! ! !   !   IF (params(1)<1) THEN
52130 2010  759   ! ! !   !     outstring20("illegal start-word  ")
52140 2011  760   ! ! !   !   ELSE
52150 2012  761   ! ! !   !     IF NOT (params(2) IN (.0,1.)) THEN
52160 2013  762   ! ! !   !       outstring20 ("2nd must be 0 or 1  ")
52170 2014  763   ! ! !   !     ELSE
52180 2015  764   ! ! !   !       IF nil (cur) THEN
52190 2016  765   ! ! !   !         outstring10 ("no buffer ")
52200 2017  766   ! ! !   !       ELSE
52210 2018  767   ! ! !   !         BEGIN (* params are ok *)
52220 2019  768   ! ! !   !         ! i:= params(1); (* i points into current buffer *)
52230 2020  769   ! ! !   !         ! j:= params(2);
52240 2021  770   ! ! !   !         ! 
52250 2022  771   ! ! !   !         ! IF cur^.size<messbufsize THEN
52260 2023  772   ! ! !   !         !   outstring20("too small buffer    ") ELSE
52270 2024  773   ! ! !   !         !   LOCK cur AS messbuf: messbuftype DO
52280 2025  774   ! ! !   !         !     BEGIN
52290 2026  775   ! ! !   !         !     ! IF messbuf(i)<0 THEN
52300 2027  776   ! ! !   !         !     !   leftbyte:= (messbuf(i)+255) DIV 256
52310 2028  777   ! ! !   !         !     ! ELSE
52320 2029  778   ! ! !   !         !     !   leftbyte:= messbuf(i) DIV 256;
52330 2030  779   ! ! !   !         !     ! 
52340 2031  780   ! ! !   !         !     ! FOR k:= 3 TO noofparams DO
52350 2032  781   ! ! !   !         !     !     (* k points into the parameter list *)
52360 2033  782   ! ! !   !         !     !   IF i<= messbufsize THEN
52370 2034  783   ! ! !   !         !     !     BEGIN
52380 2035  784   ! ! !   !         !     !     ! CASE j OF
52390 2036  785   ! ! !   !         !     !     ! ! 0:
52400 2037  786   ! ! !   !         !     !     ! !   BEGIN (* left *)
52410 2038  787   ! ! !   !         !     !     ! !   ! rightbyte:= abs(messbuf(i) MOD 256);
52420 2039  788   ! ! !   !         !     !     ! !   ! leftbyte := params (k);
52430 2040  789   ! ! !   !         !     !     ! !   END;
52440 2041  790   ! ! !   !         !     !     ! ! 1:
52450 2042  791   ! ! !   !         !     !     ! !   BEGIN (* right *)
52460 2043  792   ! ! !   !         !     !     ! !   ! rightbyte:= params (k);
\f

fetsaoslst  81.05.13.   15.17.                                                    page    69

52470 2044  793   ! ! !   !         !     !     ! !   ! IF leftbyte>=128 THEN
52480 2045  794   ! ! !   !         !     !     ! !   !   BEGIN
52490 2046  795   ! ! !   !         !     !     ! !   !   ! messbuf(i):= (leftbyte-128)*256 + rightbyte;
52500 2047  796   ! ! !   !         !     !     ! !   !   ! IF messbuf(i)>0 THEN
52510 2048  797   ! ! !   !         !     !     ! !   !   !   messbuf(i):= -((32767-messbuf(i))+1)
52520 2049  798   ! ! !   !         !     !     ! !   !   ! ELSE messbuf(i):= -32768;
52530 2050  799   ! ! !   !         !     !     ! !   !   END
52540 2051  800   ! ! !   !         !     !     ! !   ! ELSE
52550 2052  801   ! ! !   !         !     !     ! !   !   messbuf(i):= leftbyte*256 + rightbyte;
52560 2053  802   ! ! !   !         !     !     ! !   ! i:= i+1;
52570 2054  803   ! ! !   !         !     !     ! !   END;
52580 2055  804   ! ! !   !         !     !     ! ! 
52590 2056  805   ! ! !   !         !     !     ! END (* case *);
52600 2057  806   ! ! !   !         !     !     ! 
52610 2058  807   ! ! !   !         !     !     ! j:= 1-j;
52620 2059  808   ! ! !   !         !     !     END;
52630 2060  809   ! ! !   !         !     ! 
52640 2061  810   ! ! !   !         !     ! IF (j=1) AND (i<=messbufsize) THEN
52650 2062  811   ! ! !   !         !     !   IF leftbyte>=128 THEN
52660 2063  812   ! ! !   !         !     !     BEGIN
52670 2064  813   ! ! !   !         !     !     ! IF messbuf(i)>0 THEN
52680 2065  814   ! ! !   !         !     !     !   messbuf(i):= (leftbyte-128)*256 + rightbyte
52690 2066  815   ! ! !   !         !     !     ! ELSE messbuf(i):= - 32768;
52700 2067  816   ! ! !   !         !     !     ! messbuf(i):= -((32767-messbuf(i))+1);
52710 2068  817   ! ! !   !         !     !     END
52720 2069  818   ! ! !   !         !     !   ELSE
52730 2070  819   ! ! !   !         !     !     messbuf(i):= leftbyte*256 + rightbyte;
52740 2071  820   ! ! !   !         !     END (* lock *);
52750 2072  821   ! ! !   !         END (* params ok *);
52760 2073  822   ! ! !   END (* partial *);
52770 2074  823   ! ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    70

53010 2075  824   ! ! ! "r": (* return *)
53020 2076  825   ! ! !     (* returns current buffer *)
53030 2077  826   ! ! !   IF nil(cur)
53040 2078  827   ! ! !     THEN outstring10("no buffer ")
53050 2079  828   ! ! !   ELSE return(cur);
53060 2080  829   ! ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    71

54010 2081  830   ! ! ! "s": (* signal *)
54020 2082  831   ! ! !     (* signals current buffer to one of the predefined semaphores.
54030 2083  832   ! ! !     1st param is semno *)
54040 2084  833   ! ! !   BEGIN
54050 2085  834   ! ! !   ! semno:= params(1);
54060 2086  835   ! ! !   ! 
54070 2087  836   ! ! !   ! IF noofparams >= 1 THEN
54080 2088  837   ! ! !   !   IF (1<=semno) AND (semno<=noofsemaphores) THEN
54090 2089  838   ! ! !   !     IF NOT nil(cur) THEN
54100 2090  839   ! ! !   !       signal (cur,ts_sem(semno))
54110 2091  840   ! ! !   !     ELSE outstring10("no buffer ")
54120 2092  841   ! ! !   !     ELSE
54130 2093  842   ! ! !   !       IF (semno <= -1) AND (semno >= -applsem_max) THEN
54140 2094  843   ! ! !   !         signal( cur, evavector( -semno))
54150 2095  844   ! ! !   !       ELSE outstring10(illegalno)
54160 2096  845   ! ! !   !       ELSE outstring10(noparam)
54170 2097  846   ! ! !   END (* signal *);
54180 2098  847   ! ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    72

55010 2099  848   ! ! ! "t": (* testsem *)
55020 2100  849   ! ! !     (* tests the status of the specified semaphores.
55030 2101  850   ! ! !     if none is specified, the status of all the
55040 2102  851   ! ! !     user semaphores is given.
55050 2103  852   ! ! !     in both cases nothing will be written for a semaphore
55060 2104  853   ! ! !     if it is passive. *)
55070 2105  854   ! ! !   BEGIN
55080 2106  855   ! ! !   ! IF noofparams=0 THEN
55090 2107  856   ! ! !   !   BEGIN (* test all semaphores *)
55100 2108  857   ! ! !   !   ! 
55110 2109  858   ! ! !   !   ! FOR i:= -applsem_max TO -1 DO
55120 2110  859   ! ! !   !   !   testsem( i,evavector(-i));
55130 2111  860   ! ! !   !   ! 
55140 2112  861   ! ! !   !   ! FOR i:=1 TO noofsemaphores DO
55150 2113  862   ! ! !   !   !   testsem(i,ts_sem(i))
55160 2114  863   ! ! !   !   END (* test all *)
55170 2115  864   ! ! !   ! ELSE
55180 2116  865   ! ! !   !   BEGIN (* test the specified semaphores *)
55190 2117  866   ! ! !   !   ! 
55200 2118  867   ! ! !   !   ! FOR i:=1 TO noofparams DO
55210 2119  868   ! ! !   !   !   IF (params(i)=0) OR (params(i)>noofsemaphores)
55220 2120  869   ! ! !   !   !     OR (params(i) < -applsem_max) THEN
55230 2121  870   ! ! !   !   !     BEGIN (* illegal no. *)
55240 2122  871   ! ! !   !   !     ! outstring20("illegal no.:        ");
55250 2123  872   ! ! !   !   !     ! outdecimal(params(i),3);
55260 2124  873   ! ! !   !   !     ! writenl;
55270 2125  874   ! ! !   !   !     END (* illegal no *)
55280 2126  875   ! ! !   !   !   ELSE
55290 2127  876   ! ! !   !   !     BEGIN
55300 2128  877   ! ! !   !   !     ! IF params(i)>0 THEN
55310 2129  878   ! ! !   !   !     !   testsem( params(i), ts_sem(params(i)))
55320 2130  879   ! ! !   !   !     ! ELSE
55330 2131  880   ! ! !   !   !     !   testsem( params(i), evavector(-params(i)));
55340 2132  881   ! ! !   !   !     END
55350 2133  882   ! ! !   !   END (* test the specified semaphores *)
55360 2134  883   ! ! !   END (* testsem *);
55370 2135  884   ! ! ! 
55380 2136  885   ! ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    73

56010 2137  886   ! ! ! "u": (* user parameters *)
56020 2138  887   ! ! !     (* inserts user param into header of current buffer
56030 2139  888   ! ! !     1st param is u1
56040 2140  889   ! ! !     2nd param is u2
56050 2141  890   ! ! !     3rd param is u3
56060 2142  891   ! ! !     4th param is u4 *)
56070 2143  892   ! ! !   BEGIN
56080 2144  893   ! ! !   ! IF nil(cur)
56090 2145  894   ! ! !   !   THEN outstring10("no buffer ")
56100 2146  895   ! ! !   ! ELSE
56110 2147  896   ! ! !   !   IF noofparams = 0 THEN
56120 2148  897   ! ! !   !     outstring10(noparam)
56130 2149  898   ! ! !   !   ELSE
56140 2150  899   ! ! !   !     WITH cur^ DO
56150 2151  900   ! ! !   !       BEGIN
56160 2152  901   ! ! !   !       ! IF testinterval (params(1),0,255) THEN u1:= params(1);
56170 2153  902   ! ! !   !       ! IF (noofparams>=2) THEN IF testinterval(params(2),0,255) THEN
56180 2154  903   ! ! !   !       !     u2:= params(2);
56190 2155  904   ! ! !   !       ! IF (noofparams>=3) THEN IF testinterval(params(3),0,255) THEN
56200 2156  905   ! ! !   !       !     u3:= params(3);
56210 2157  906   ! ! !   !       ! IF (noofparams>=4) THEN IF testinterval(params(4),0,255) THEN
56220 2158  907   ! ! !   !       !     u4:= params(4);
56230 2159  908   ! ! !   !       END
56240 2160  909   ! ! !   END; (* end user parameters *)
56250 2161  910   ! ! ! 
56260 2162  911   ! ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    74

57010 2163  912   ! ! ! "w": (* wait *)
57020 2164  913   ! ! !     (* waits for semaphore semno.
57030 2165  914   ! ! !     1st param is semno *)
57040 2166  915   ! ! !   BEGIN
57050 2167  916   ! ! !   ! semno:= params(1);
57060 2168  917   ! ! !   ! 
57070 2169  918   ! ! !   ! IF noofparams >= 1 THEN
57080 2170  919   ! ! !   !   IF nil(cur) THEN
57090 2171  920   ! ! !   !     IF ((semno>0) AND (semno <= noofsemaphores))
57100 2172  921   ! ! !   !       OR ((semno<0) AND (semno >= -applsem_max)) THEN
57110 2173  922   ! ! !   !       BEGIN
57120 2174  923   ! ! !   !       ! IF semno > 0 THEN
57130 2175  924   ! ! !   !       !   sensesem( cur, ts_sem(semno))
57140 2176  925   ! ! !   !       ! ELSE
57150 2177  926   ! ! !   !       !   sensesem( cur, evavector(-semno));
57160 2178  927   ! ! !   !       ! IF nil(cur) THEN
57170 2179  928   ! ! !   !       !   outstring20("semaphore not open  ")
57180 2180  929   ! ! !   !       ! ELSE
57190 2181  930   ! ! !   !       !   BEGIN
57200 2182  931   ! ! !   !       !   ! get_curbuftype;
57210 2183  932   ! ! !   !       !   ! outstring10("  bufsize ");
57220 2184  933   ! ! !   !       !   ! outinteger(curbufsize, 5);
57230 2185  934   ! ! !   !       !   ! outinteger(cur^.size, 5)
57240 2186  935   ! ! !   !       !   END;
57250 2187  936   ! ! !   !       END
57260 2188  937   ! ! !   !     ELSE outstring10(illegalno)
57270 2189  938   ! ! !   !     ELSE outstring20("you already have one")
57280 2190  939   ! ! !   !     ELSE outstring10(noparam)
57290 2191  940   ! ! !   END (* wait *);
57300 2192  941   ! ! !  
\f

fetsaoslst  81.05.13.   15.17.                                                    page    75

58010 2193  942   ! ! ! "x": (* exchange pointer *)
58020 2194  943   ! ! !   BEGIN
58030 2195  944   ! ! !   ! IF noofparams >= 2 THEN
58040 2196  945   ! ! !   !   IF (params(1)>0) AND (params(1)<=noofsemaphores) THEN
58050 2197  946   ! ! !   !     IF (params(2)>0) AND (params(2)<=noofsemaphores) THEN
58060 2198  947   ! ! !   !       BEGIN
58070 2199  948   ! ! !   !       ! worksem:= sem(params(1)).w;
58080 2200  949   ! ! !   !       ! sem(params(1)).w:= sem(params(2)).w;
58090 2201  950   ! ! !   !       ! sem(params(2)).w:= worksem;
58100 2202  951   ! ! !   !       END
58110 2203  952   ! ! !   !     ELSE outstring10(valparam)
58120 2204  953   ! ! !   !     ELSE outstring10(valparam)
58130 2205  954   ! ! !   !     ELSE outstring10(noparam)
58140 2206  955   ! ! !   END (* exchange pointer *);
58150 2207  956   ! ! ! 
58160 2208  957   ! ! ! 
58170 2209  958   ! ! ! OTHERWISE (* error *)
58180 2210  959   ! ! ! outstring20 ("illegal comm. type h");
58190 2211  960   ! ! END (* case *);
58200 2212  961   ! ! 
58210 2213  962   ! ! IF command<>";" THEN
58220 2214  963   ! !   writenl;
58230 2215  964   ! ! 
58240 2216  965   ! UNTIL false;
58250 2217  966   ! 
58260 2218  967   END.
58270 2219      
58280 2220      
58290 2221      
\f

fetsaoslst  81.05.13.   15.17.                                                    page    76

           0   39*   52*   81*  162*  162*  163*  169*  169*  169*  421   426   448   449   455   464 
              474:  474   486   512   514   563   653   663   697   701   706   795*  818   827   837 
              843   850   862   873   874   874   901   904   909   919   924   925  1024  1030  1032 
             1048  1095  1117  1124  1169  1184  1261  1262  1346  1369  1370  1372  1378  1379  1380 
             1381  1424  1699  1701  1799  1847  1849  1869  1885  1910  1920  1987  2012  2026  2036:
             2047  2064  2106  2119  2128  2147  2152  2153  2155  2157  2171  2172  2174  2196  2197 
           1   40*   51*   71*   72*   73*   74*   81*   84*   85*  108*  158*  159*  406   436   447 
              456   466   475:  527   530   539   605:  623   629   649   728   733   772   796*  809 
              812   826   827   832   837   845   857   859   862   866   867   881   896   900   922 
              926   928   934   938   953   961   970   986   988  1093  1102  1119  1134  1135  1193 
             1272  1294  1298  1315  1326  1333  1341  1365  1367  1397  1404  1410  1418  1421  1423 
             1427  1437  1459  1463: 1498  1501  1505  1512  1516  1565  1645  1645  1652  1659: 1669 
             1700  1701  1701  1702  1702  1711  1712  1715  1752  1754: 1781  1814  1820  1894  1962 
             1962  1962  1963  1964  1978: 2009  2009  2012  2019  2041: 2048  2053  2058  2061  2067 
             2085  2087  2088  2093  2109  2112  2118  2152  2152  2167  2169  2196  2196  2199  2200 
           2  407   425   437   449   468   476:  560   609:  631   671   722   722   727   732   847 
              848   850   851   859   860   862   863   869   870   873   874   880:  906  1078: 1106:
             1295  1298  1301  1404  1423  1470  1474: 1498  1559  1599  1617  1642  1654  1661: 1773 
             1791: 1811  1846  1870  1917  1966  1966  1967  1980: 1989  2006  2012  2020  2153  2153 
             2154  2195  2197  2197  2200  2201 
           3   94*  169*  408   423   470   477:  613:  671   673   717   722   739   886   899  1179 
             1197  1211  1264  1268  1481: 1489  1490  1517  1531  1533  1548  1575  1591  1607  1619 
             1663: 1832: 1850  1882  1918  1975  1982: 2031  2123  2155  2155  2156 
           4  164*  471   478:  617:  745   758   891   892  1090  1144  1157  1439  1497: 1665: 1722 
             1728  1861: 1911  1956  1957  1958  1959  1984: 2157  2157  2158 
           5  163*  164*  569   621:  648  1385  1386  1523: 1571  1775  1813  1848  1903: 1919  2184 
             2185 
           6   50*  447   627:  727   887  1085  1268  1540: 1574  1884 
           7  162*  163*  164*  451   625   633:  722   732  1456  1467  1760  1800  1838  1992 
           8  642:  885:  898  1083: 1107: 1404  1426  1776  1815 
           9  424   646:  916  1269  1887 
          10   84*  454   520   650:  738   783   814   953  1033  1046  1259  1269  1340  1342  1404 
             1556: 1890 
          11  654:  738  1584:
          12   96*  660:  961  1596:
          13  664: 1613: 1777  1816 
          14  454   456   669: 1269  1779  1819 
          15  675:  795*  845   857   867   904  1780  1818  1891 
          16   36*  882   890: 1029  1053  1080  1088: 1099  1108: 1260  1404  1805  1893 
          17  679: 1428  1990 
          18  687:
          19  694:
          20   85*  698:  792*  970 
          21  703:
\f

fetsaoslst  81.05.13.   15.17.                                                    page    77

          22  707: 1429 
          23  714: 1430 
          24  719: 1431 
          25  725: 1432 
          26  730: 1433 
          27   37*  735:
          40  619 
          50  158*  537 
          63  631 
          64   33*  673 
          80   31*   49*
          87 1042  1065  1114 
         100  566  1268 
         120   34*   35*
         128 2044  2046  2062  2065 
         255 2027  2152  2153  2155  2157 
         256  425  1870  1911  2027  2029  2038  2046  2052  2065  2070 
         257  625 
         512  653   663   697   701   706   728   733   739 
        1000 1268 
        1024 1339 
        2048 1108 
        3276 1056 
        4096 1107 
       16384 1106 
       32767 1119  2048  2067 
       32768 1058  1118  2049  2066 
a              89*  433*  435   436   437   438   445*  448=  451=  455=  457   458  1171= 1172= 1765:
             1771  1772  1773  1774  1775 
abs           824  2038 
abuf         1842: 1843 
aic_buf_type 1503 
aic_id       1505=
aic_q        1506=
al           1845  1846  1847  1848  1849 
alarmlabel   1765 
alarm_mess   1491  1534  1576  1608 
alarm_opsys     4*
alfa           66*  381*  549*  957*
alfa10         84*  378*  947*
alfa20         85*  384*  396*  965* 1152*
alfalength     50*
alloc        1300  1313  1328  1335  1373  1375 
alreadyexists                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
               44*  558   759 
\f

fetsaoslst  81.05.13.   15.17.                                                    page    78

al_env_version                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1257 
al_lam1      1289 
al_mac_addr  1776= 1815= 1890=
ap            167* 1171  1174= 1177  1209 
applsem_max  1370  2093  2109  2120  2172 
appl_vector     5*
as            489:  495:  769:  982: 1133: 1232: 1302: 1317: 1469: 1486: 1503: 1514: 1528: 1545: 1561:
             1589: 1601: 1618: 1659: 1661: 1663: 1665: 1764: 1803: 1842: 1873: 1914: 1978: 1980: 1982:
             1984: 2024:
atbuffer       81*
atconnector   234*  623 
atcsem        237*
atc_pri       626 
atc_sem_no    623   623 
atc_size      626 
athsem        240*
ath_pri       612 
ath_sem_no    624 
ath_size      612 
at_handler    212*  611 
a_l          1808  1809  1810  1811  1812  1813  1814  1877  1919  1920  1921 
base          132*  519   520=  533=  543=  782   783=  785=  814   824   825   879   898  1029  1033 
             1046  1053  1064  1065  1077  1099  1105  1112  1114  1340= 1399= 1407= 1410= 1989 
bit           795*
bits          795*  847=  850=  859=  862=  869   870=  870   873   874=  874   906 
block         186*
boolean       154*  187*  361*  510*  751*  806* 1008* 1138* 1166*
bp            167* 1172  1174  1177  1209 
break        1718 
buf          1469: 1470  1486: 1487  1503: 1505  1506  1514: 1516  1517  1528: 1529  1545: 1546  1561:
             1562  1589: 1590  1601: 1602  1618: 1619  1764: 1769  1803: 1805  1806  1873: 1874  1914:
             1915 
byte           78*   81*  168*  198*  205*  248*  265*  332*  364*  413*
call_buf     1567 
car_buf_type 1561 
ch            766*  773  1013* 1019= 1026  1027= 1028  1029  1040  1041  1042  1050= 1052  1053  1056 
             1063  1064  1065  1079  1084  1089  1097= 1098  1099  1111  1112  1114 
channelno     248*  265*
char           67*   84*   85*  128*  387*  766*  796*  977* 1013*
chr           824   917   918 
clear_buf_type                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1618 
command       128*  501=  503   516   531  1354  1717  2213 
\f

fetsaoslst  81.05.13.   15.17.                                                    page    79

com_pool      175*  625   631   638   657   673   683   711  1328  1756  1834 
com_pool_sem  339*
com_sem       243*  260*  276*
control      1532  1569  1606  1876  1917  1918 
controlinfo    78*
countref      112* 1187  1188  1192  1200  1201 
countsem      102* 1192  1198  1200 
create        562 
createchtype   76*
createerror    47*  567 
cur           115*  463   465   467   469  1328  1329  1335  1336  1368  1373  1375  1376  1386  1648 
             1659: 1661: 1663: 1665: 1949  1956  1957  1958  1959  1971  1978: 1980: 1982: 1984: 2015 
             2022  2024: 2077  2079  2089  2090  2094  2144  2150  2170  2175  2177  2178  2185 
curbufsize    145*  474=  475=  476=  477=  478= 1385  1656  1963  1966  1968  1969  1971  2184 
curbuftype    146*  464=  466=  468=  470=  471=  473  1658  1977 
curdigit      797*  896=  911   912   917   918   922   926=  926  1010* 1093= 1102= 1102  1103  1115 
curpos        798*  899=  900=  907   925=  928=  928 
c_b          1806 
c_i          1805=
da           1491= 1534= 1576= 1608= 1851=
data           67*  773=  985  1307= 1918=
dcaddr        262*
dcmodule      296*  656 
dcsem         272*
dc_addr       162*  215*  223*  245*  435=  611   615   625   631   673 
dc_int1       658 
dc_int2       658 
dc_int3       658 
dc_sem_no     636   658 
dc_sim_pri    659 
dc_sim_size   659 
diag_code    1619=
digit        1008* 1020= 1028= 1030  1038  1048  1052= 1054  1095  1098= 1100 
digits        796*  812=  824=  831=  837=  912=  917=  918=  940  1003* 1028  1040  1052  1063  1098 
             1111 
doesntexist    45*
done          312*
driversem     241*
dst           423=
dtesimulator  318*  689 
dte_addr      169*  327*  692  1261  1262  1263  1264 
dte_adr      1571=
dte_adr_l    1570=
dte_aic      1500  1591 
\f

fetsaoslst  81.05.13.   15.17.                                                    page    80

dte_car      1489  1558  1569 
dte_clr      1548  1615 
dte_pax_addr  402*  409=  422   423 
dte_rdata    1868  1909 
dte_rejic    1511 
dte_ric      1476  1798 
dte_sdata    1531  1598 
dte_sdata_data                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1601 
dte_sem       322*  341*
dte_sem_no    640   684   689  1335  1630 
d_a          1821=
evavector       5* 1279  1281  1283  1285  1287  1289  1375  2094  2110  2131  2177 
external      176*  182*  189*  199*  206*  210*  218*  226*  232*  249*  266*  283*  289*  294*  300*
              305*  316*  329*  343*  348*  353*  358*  362*  365*
ext_addr      408= 1264=
ext_no       1470=
ext_pax_addr  442*  445*
facility      424= 1574=
facility_l   1573=
false         524   534   732   760   921  1017  1020  1035  1059  1146  1189  1255  1506  1566  1604 
             1605  2216 
fesupervisor  172*  709 
fesup_pri     712 
fesup_que_down                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              710 
fesup_que_up  710 
fesup_sem_no  710  1294 
fesup_size    712 
fesup_write   710 
first          63*  498  1138* 1141  1305= 1320= 1564=
firstindex     50*   51*   67*  490   499  1233  1305  1307  1320 
firstword     133* 1341= 1964= 1973 
format        418=
format_1_packet_header                                           <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              414*
fpadriver     184*  727   732 
free          311*
from_link    1457 
getinput      482* 1352 
getparams     369*  505   508*
get_curbuftype                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              461* 1383  2182 
global_timeout                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              332*
\f

fetsaoslst  81.05.13.   15.17.                                                    page    81

glob_timeout  681 
h             799*  904=  906 
h2f          1718 
h30          1840  1921 
hac          1762  1809  1880 
hexdigits    1004* 1029  1053  1099 
i             134*  396*  402*  405   406   407   408   413*  422   423   444*  447=  448   449=  451 
              451   452   454=  455   456=  457   799*  812=  812   816=  824   826=  826   827   831 
              832=  832   835   845=  847   857=  859   867=  869   870   870   938=  940   951*  953=
              954   959*  961=  962   968*  970=  971  1138* 1141  1141  1144  1152* 1157  1162* 1169 
             1171  1172  1179  1211  1272= 1274  1274  1275  1275  1298= 1326= 1333= 1490= 1491  1491 
             1533= 1534  1534  1575= 1576  1576  1607= 1608  1608  1652= 1656  1660  1662  1664  1666 
             1669= 1669  1700= 1700  1700  1712= 1714  1766: 1779= 1850= 1851  1851  1973= 1975  1979 
             1981  1983  1985  2019= 2026  2027  2029  2033  2038  2046  2047  2048  2048  2049  2052 
             2053= 2053  2061  2064  2065  2066  2067  2067  2070  2109= 2110  2110  2112= 2113  2113 
             2118= 2119  2119  2120  2123  2128  2129  2129  2131  2131 
illegalno      46*  746  1143  1388  1440  1729  2095  2188 
incharsleft   135*  498=  988=  988  1024  1030  1048  1095  1124  1135= 1135 
incname      1256 
inc_name      549*  562   568 
index         364*  547*  557   562   564   576*  604   606   610   614   618   622   628   634   643 
              647   651   655   661   665   670   676   680   688   695   699   704   708   715   720 
              726   731   736   745 
indx         1818= 1887=
init_modul    576* 1426  1427  1428  1429  1430  1431  1432  1433  1443 
init_proc     546*  606   610   614   618   622   628   634   643   647   651   655   661   665   670 
              676   680   688   695   699   704   708   715   720   726   731   736 
inputsem      178*  193*  278*  288*
input_sem     174*
insem         356*
insert_code  1772  1810  1881 
int           372*  375*  777*  784   788*  818   824   825=  825   827   837   843   847   848=  848 
              850   851=  851   859   860=  860   862   863=  863 
integer        65*   71*   72*   73*   74*  148*  158*  179*  186*  231*  247*  264*  287*  364*  372*
              375*  390*  396*  402*  413*  431*  442*  444*  547*  552*  555*  576*  751*  777*  788*
              804*  951*  959*  968*  994* 1011* 1138* 1152* 1162* 1766 
int_pax_addr  169*  169*  327*  402*  403*
in_sem        202*
j             136* 1184= 1193= 1193  1197  1654= 1660  1662  1664  1666  1979= 1981= 1983= 1985= 1987=
             1990  1992  2020= 2035  2058= 2058  2061 
k             137* 2031= 2039  2043 
label_size   1490  1533  1575  1607  1850 
lam           285*  648 
lamsem        194*  258*  274*
\f

fetsaoslst  81.05.13.   15.17.                                                    page    82

lam_sem_no    624   637   648   656   722  1289  1290  1290 
lam_size      649 
last           64*  772=  772   773  1138* 1141  1233= 1321= 1565=
lastchar     1013* 1018= 1026= 1034 
lastindex      51*   67* 1321 
lastword      138* 1342= 1967= 1968  1969= 1973 
leftbyte      139* 2027= 2029= 2039= 2044  2046  2052  2062  2065  2070 
level         186*  287*
linelength     49*   51*
link          561 
local_sem_table                                                  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              337*
lock          489:  495:  769:  982: 1133: 1232: 1302: 1317: 1469: 1486: 1503: 1514: 1528: 1545: 1561:
             1589: 1601: 1618: 1659: 1661: 1663: 1665: 1764: 1803: 1842: 1873: 1914: 1978: 1980: 1982:
             1984: 2024:
locked       1207 
l_control    1565 
l_dte_adr    1570 
l_facilities 1573 
l_listen     1490  1533  1565  1575  1607  1771  1808  1845  1850  1879 
m             800*  866=  869   870   871=  873   874   875=
macro        1773= 1775= 1811= 1813= 1846= 1848= 1882= 1884= 1919=
macroaddr     162*  162*  163*  163*  164*  164*  216*  224*  246*  263*  431*  433*
main          310*
main_sem      336*
make_phead    412* 1489  1531  1548  1591 
max           231*
maxbuf       1663: 1664= 1982: 1983 
maxbufsize     35*   74*  467   477 
maxbuftype     74* 1663  1982 
maxpos        792*  796*  812   816   835   896   911   922   934   938   938 
max_alarm_mess                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1842 
max_retrans  1781= 1820= 1894=
messbuf      1661: 1662= 1980: 1981  2024: 2026  2027  2029  2038  2046= 2047  2048= 2048  2049= 2052=
             2064  2065= 2066= 2067= 2067  2070=
messbufpool    97* 1328 
messbufsize    33*   71*  465   476  2022  2033  2061 
messbuftype    71*   97* 1661  1980  2024 
messem        254*
micaddr       264*
micro        1774= 1812= 1814= 1847= 1849= 1883= 1885= 1920=
minbuf       1659: 1660= 1978: 1979 
minbufsize     36*   73*  463   475 
\f

fetsaoslst  81.05.13.   15.17.                                                    page    83

minbuftype     73* 1659  1978 
min_rut_mess   59*
mirror        200*  737 
moduleno      140*  751*  755   758  1421= 1424  1437  1437  1439  1443  1443  1714= 1715  1715  1716 
             1718  1719  1722  1728 
moduleready   751*  755=  760= 1443 
more         1166* 1181= 1185  1189=
m_bit        1605=
n1            578*  606   606 
n10           587*  651   651   661 
n11           588*  655   655 
n13           589*  665   665 
n14           590*  670   670 
n15           591*  676   676 
n16           592*
n17           593*  680   680 
n18           594*  688   688 
n19           595*  695   695 
n2            579*  610   610 
n20           596*  699   699 
n21           597*  704   704 
n22           598*  708   708 
n23           599*  715   715 
n24           600*  720   720 
n25           601*  726   731 
n27           602*  736   736 
n3            580*  614   614 
n4            581*  618   618 
n5            582*  622   622 
n6            583*  628   628 
n7            584*  634   634 
n8            585*  643   643 
n9            586*  647   647 
name           66*  548*  561  1306= 1322=
ncsem         273*
ncsup         307*  666 
ncsup_int1    666 
ncsup_int2    666 
nc_addr       163*  436=
nc_sem_no     637   666 
nc_sup_size   668 
negative      806*  818=  829  1008* 1034= 1035= 1056  1059= 1070  1079= 1084= 1089= 1103  1115 
netconnector  331*  681 
netc_locals   157*  682  1294= 1295=
\f

fetsaoslst  81.05.13.   15.17.                                                    page    84

netc_loc_sems                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              157*  337*
netc_mic_addr                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1774  1812  1883 
netc_pri      685   693 
netc_sem      175*  324*
netc_sem_no   638   656   667   682   690   711  1938 
netc_size     685   693 
net_addr      405= 1261=
net_sem       314*
newbase       510*  521=  524=  534=  541 
newm          800*  869=  871   873=  875 
next           65*  490=  498   499=  985   986=  986  1134= 1134 
nl           1228 
node_addr     407= 1263=
node_no       168* 1259  1260= 1260  1263  1268  1268  1269  1269 
noofdig       801*  882=  887=  892=  896 
noofdigit    1010* 1080= 1085= 1090= 1103  1115 
noofmodules    37*  159* 1437  1715 
noofparams    141*  514=  527=  527   528   529   530   537   539=  539   560  1346= 1367  1397  1418 
             1423  1642  1654  1699  1711  1712  1962  1966  2006  2031  2087  2106  2118  2147  2153 
             2155  2157  2169  2195 
noofpos       802*  881=  886=  891=  907 
noofsemaphores                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
               38* 1369  1700  1701  2088  2112  2119  2171  2196  2197 
noparam        43* 1390  1400  1445  2096  2148  2190  2205 
no_listen      97* 1326 
no_of_by     1771= 1808= 1845= 1879=
no_pax_bufs    59* 1333 
nref          111* 1452  1454  1456  1457  1465  1466  1467  1469: 1476  1477  1483  1484  1485  1486:
             1500  1501  1502  1503: 1511  1512  1513  1514: 1525  1526  1527  1528: 1542  1543  1544 
             1545: 1558  1559  1560  1561: 1586  1587  1588  1589: 1598  1599  1600  1601: 1615  1616 
             1617  1618: 1630  1756  1758  1760  1761  1762  1764: 1794  1796  1798  1799  1800  1801 
             1803: 1834  1836  1838  1839  1840  1842: 1864  1866  1868  1869  1870  1871  1873: 1905 
             1907  1909  1910  1911  1912  1914: 1937  1938 
nul          1018  1019 
oflow         361*
ok             52*  493   555*  562=  563   566=  566   569 
okl           554*  561=  566   571=
oldbase       142*  519=  533   543   782=  785  1399  1407 
op            173*  180*  188*  208*  213*  221*
opbuf         489:  490   495:  496   769:  770   982:  983  1133: 1134  1134  1232: 1233  1302: 1303 
             1317: 1318 
opbufpool      94* 1300  1313 
\f

fetsaoslst  81.05.13.   15.17.                                                    page    85

opbufsize      31*
opbuftype      61*   94*  489   495   769   982  1133  1232  1302  1317 
opc_command  1532  1606  1876 
open         1175  1198 
operatorsem  1253 
opinref       113*  489:  491   492   493   495:  982: 1133: 1313  1315  1317:
opoutref      114*  769: 1226  1229  1231  1232: 1300  1301  1302: 1309 
opsem         120*  229*  235*  252*  269*  286*  292*  297*  303*  308*  357*  491   607   611   615 
              619   623   629   635   644   648   652   656   662   666   671   677   696   700   705 
              709   717   721   727   732   737  1229  1253= 1256 
op_code       413*  425  1532= 1569= 1606= 1809= 1876= 1880= 1917= 1921=
op_sem        192*  201*  346*  351*
ord           503   824   917   918  1041  1041  1042  1064  1064  1065  1112  1112  1114 
org           422=
osif          191*  721 
osif_pri      723 
osif_sem_no   721 
osif_size     723 
outchar       766*  932   940   954   962   971  1178  1178  1180  1210  1210  1212  1228  1953  1954 
             1976 
outdecimal    372*  569   745   758   777* 1179  1197  1211  1439  1722  1728  1975  2123 
outinteger    375*  784   788* 1144  1157  1385  1386  1956  1957  1958  1959  1990  1992  2184  2185 
outstring10   378*  746   947* 1143  1213  1384  1388  1390  1400  1440  1445  1450  1628  1633  1643 
             1649  1703  1723  1729  1733  1749  1935  1940  1950  2007  2016  2078  2091  2095  2096 
             2145  2148  2183  2188  2190  2203  2204  2205 
outstring12   381*  568   957*
outstring20   384*  558   567   759   965* 1156  1389  1406  1646  1678  1679  1680  1681  1682  1683 
             1684  1685  1686  1687  1688  1689  1690  1691  1692  1693  1694  1695  1972  2010  2013 
             2023  2122  2179  2189  2210 
own          1256 
ownaddr       247*
p             414*  416   550*  561   562   571  1767: 1776  1777  1780  1781 
packet_type   420=
packextnode   441*  458=
packmacro     430*  438= 1773  1775  1776  1811  1813  1815  1846  1848  1882  1884  1890  1919 
par           431*  435   436   437   442*  451   452 
params        158*  405   406   407   408   424   425   435   436   437   451   452   528=  529  1365 
             1404  1410  1421  1423  1459  1470  1498  1517  1559  1571  1574  1599  1617  1619  1645 
             1652  1660  1662  1664  1666  1701  1701  1702  1702  1714  1752  1777  1779  1780  1805 
             1816  1818  1819  1870  1887  1891  1893  1911  1917  1918  1962  1963  1964  1966  1967 
             2009  2012  2019  2020  2039  2043  2085  2119  2119  2120  2123  2128  2129  2129  2131 
             2131  2152  2152  2153  2154  2155  2156  2157  2158  2167  2196  2196  2197  2197  2199 
             2200  2200  2201 
paxbufpool     98* 1335 
\f

fetsaoslst  81.05.13.   15.17.                                                    page    86

paxnet_config                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1268  1268  1269  1269  1571  1777  1816  1891 
paxnet_e     1767 
paxpooltype    59*   98*
pax_addr     1777= 1816= 1821  1891=
pax_adr       403*  405   406   407   408   409 
pax_ncp_sem   640  1287  1288  1288 
pax_pool      682   689  1336  1452  1794  1864  1905 
pax_pool_sem  321*  335*
pax_sem_1     639   691  1281  1282  1282 
pax_sem_2     639   691  1279  1280  1280 
pax_sem_3    1283  1284  1284 
pax_sem_4    1285  1286  1286 
phead        1489  1531  1548  1591 
point_rec      88*  167*
pool           59*   94*   96*   97*
port          198*
positions     372*  375*  777*  784   788*  932   934   935   936=  938 
pr             40*
prio          552*  564 
priority      419=
process         4*  172*  177*  184*  191*  200*  207*  212*  220*  228*  234*  251*  268*  285*  291*
              296*  302*  307*  318*  331*  345*  350*  355*
processrec    550*
processref    561   571 
pu             39*  287*  648 
px_ncp       1287 
px_urec1     1279 
px_urec2     1283 
px_utrm1     1281 
px_utrm2     1285 
p_e          1815  1816  1819  1820  1821  1888 
quesem        238*  255*
que_down      174*
que_up        174*
q_bit        1566= 1604=
readchar      387*  501   977*  985= 1027  1050  1097 
readinteger   390*  528   994* 1128=
readok        151*  537  1017= 1043=
readram       364* 1259 
rec           187*  204* 1773  1774  1811  1812  1846  1847  1882  1883  1919  1920 
receiver      178*
ref          1254  1274  1279  1281  1283  1285  1287  1289 
reference     116*
\f

fetsaoslst  81.05.13.   15.17.                                                    page    87

reg_addr      406= 1262=
rejic_buf_type                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1514 
rejic_diag   1517=
rejic_id     1516=
remove       1719 
repeatchar    393* 1126  1131*
res           803*  901=  906=  906   909   916   917   918   919   924=
result        364* 1011* 1032= 1041= 1042= 1056  1058= 1064= 1064  1065= 1065  1070= 1070  1106= 1106 
             1107= 1107  1108= 1108  1112= 1112  1114= 1114  1117  1118= 1119= 1119  1128 
retrans_max   179*
return       1309  1329  2079 
ric_first_val                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1564  1565 
rightbyte     143* 2038= 2043= 2046  2052  2065  2070 
rut_con      1465 
rut_default  1485  1527  1544  1588 
rut_format_1  418 
rut_ok       1466  1484  1526  1543  1587 
rut_pack_type                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              420 
rut_prefix_type                                                  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1469 
rut_prio_0    419 
rut_rec      1483  1525  1542  1586 
rut_rec_sem   326*
rut_trm_sem   325*
rut_trp_pdata                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1486  1528  1545  1589 
s             624   624   624   630   630   630   635   636   637   637   637   656   656   657   667 
              667   672   672   672   684   684   690   691   691   711   711   721   722   738  1171 
             1274= 1275  1279= 1280  1281= 1282  1283= 1284  1285= 1286  1287= 1288  1289= 1290  1294 
             1295  1328  1335  1336  1630  1700  1702  1938 
sem           122*  185*  293*  347*  352*  607   611   615   619   623   623   624   624   624   625 
              629   629   630   630   630   631   635   636   637   637   637   638   638   639   639 
              640   640   644   648   652   656   656   657   657   658   658   658   658   662   666 
              666   666   667   667   671   671   672   672   672   673   677   682   682   683   684 
              684   689   689   690   691   691   696   700   710   710   710   710   711   711   711 
              716   716   717   721   721   722   727   732   737   738  1171  1172  1274  1275  1275 
             1279  1280  1280  1281  1282  1282  1283  1284  1284  1285  1286  1286  1287  1288  1288 
             1289  1290  1290  1294  1295  1328  1335  1336  1452  1630  1700  1700  1702  1702  1756 
             1794  1834  1864  1905  1938  2199  2200  2200  2201 
sem1          298*
sem2          298*
\f

fetsaoslst  81.05.13.   15.17.                                                    page    88

sem3          298*
sem4          298*
sem5          299*
sem6          299*
sem7          299*
sem8          299*
semaphore     107*  108* 1162*
semint1       279*
semint2       280*
semint3       281*
semint4       282*
semno         144* 1365= 1369  1369  1370  1370  1372  1373  1375  2085= 2088  2088  2090  2093  2093 
             2094  2167= 2171  2171  2172  2172  2174  2175  2177 
sempointer     89*  119*  120*  121*  173*  175*  180*  188*  192*  194*  201*  203*  208*  213*  221*
              229*  235*  243*  252*  260*  269*  276*  286*  292*  297*  298*  303*  308*  315*  319*
              326*  333*  341*  346*  351*  357*
semvector       4* 1253 
send         1775  1813  1814  1848  1849  1884  1885 
sensesem     1187  1452  1756  1794  1834  1864  1905  2175  2177 
setoflowmask  361* 1344 
sh            159*  557   562   564   755  1716  1718  1719 
shadow        159*
signal        491  1192  1201  1229  1336  1630  1938  2090  2094 
signs        1005*
size          463   465   467   469   551*  560  1386  1971  2022  2185 
sp            812   932 
spool_sem     101* 1254 
spool_test_sem                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              119*  681   689   705  1254=
st            147*  560=  562  1339= 1423=
start         564 
state         421=
streambufs    196*
streamer      177*  716 
streamno      195*
streamsem     194*
stream_no    1780= 1819= 1893=
stream_pri    717 
stream_rec    717   727 
stream_sem    175*
stream_sem_no                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              711   716   721   738 
stream_size   717 
stream_xmit   716   732 
\f

fetsaoslst  81.05.13.   15.17.                                                    page    89

str_sem       203*
system_vector                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                4*
tab_sem       304*
tap           302*  652   662 
tap1_sem_no   662   737 
tapdte        345*  696 
tapnet        350*  700 
tap_dte_sem_no                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              696 
tap_net_sem_no                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              700 
tap_sem_no    652 
testbuf      1665: 1666= 1984: 1985 
testbufpool    96* 1373  1375 
testbufsize    34*   72*  469   478 
testbuftype    72*   96* 1665  1984 
testinterval 1138* 1146= 1149= 2152  2153  2155  2157 
testmode      153* 1154  1255= 1736= 1736 
testmodeout   396*  486   503   512   529  1152*
testopen     1256 
testout       452   457  1257  1267 
testoutput    355*  705 
testsem      1162* 2110  2113  2129  2131 
test_sem      319*  333*
text          378*  381*  384*  396*  947*  954   957*  962   965*  971  1152* 1156 
ticklength    231*
timeout        78*
timeoutsem    230*  259*  275*  315*
timeout_sem   340*
timeout_sem_no                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              619   624   630   637   657   667   672   684 
time_out_unit                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              619 
timout        228*  619 
timsem        242*
tim_pri       620 
tim_size      620 
top_of_data   426=
to_link      1477  1502  1513  1560  1600  1616  1801  1871  1912 
true          521   727   755   902  1043  1079  1084  1089  1149  1181  1344 
tsaddr        263*
tsconnector   268*  635 
tsc_pri       641 
\f

fetsaoslst  81.05.13.   15.17.                                                    page    90

tsc_size      641 
tsssem        271*
tssuper       207*  607 
tssup_sem_no  635  1295 
tss_pri       608   668 
tss_route    1761  1839 
tss_size      608 
tst_ric_type 1803 
tst_sdata_data                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
             1873  1914 
ts_addr       164*  216*  224*  246*  437=  611   615   625   631   673 
ts_pointer    174*  178*  185*  193*  202*  230*  238*  255*  282*  288*  299*  304*  312*  322*  336*
              347*  352*
ts_pointer_vector                                                <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              122*  209*  217*  225*  293*
ts_sem        108*  209*  217*  225* 1274  1373  2090  2113  2129  2175 
ts_sem_total   38*  108* 1272 
ttybufs       197*
t_sem        1162* 1175  1187  1201  1207 
u1           1301= 1315= 1378= 1465= 1476= 1483= 1500= 1511= 1525= 1542= 1558= 1586= 1598= 1615= 1798=
             1868= 1909= 1956  2152=
u2            493  1379= 1456= 1466= 1484= 1526= 1543= 1587= 1760= 1799= 1838= 1869= 1910= 1957  2154=
u3           1380= 1467= 1485= 1501= 1512= 1527= 1544= 1559= 1588= 1599= 1617= 1761= 1800= 1839= 1870=
             1911= 1958  2156=
u4           1381= 1457= 1477= 1502= 1513= 1560= 1600= 1616= 1762= 1801= 1840= 1871= 1912= 1959  2158=
unlink        571 
update       1772= 1810= 1881=
used          804*  809=  835=  922=  932   935   936 
user_field    425=
vac_size      632 
vagt          291*  644   677 
valparam       42* 1703  2203  2204 
vas_sem_no    630 
vas_size      645 
vcc           251*  629   671 
vcc_pri       632   674 
vcc_sem_no    629   629   671   671 
vchsem        257*
vch_pri       616 
vch_sem_no    630   672 
vch_size      616 
vc_handler    220*  615 
vc_sim_pri    645   678 
version        26* 1257 
\f

fetsaoslst  81.05.13.   15.17.                                                    page    91

vic_size      674 
vis_sem_no    672 
vis_size      678 
w             625   631   638   657   673   683   711  1172  1275= 1280= 1282= 1284= 1286= 1288= 1290=
             1452  1700= 1702= 1756  1794  1834  1864  1905  2199  2200= 2200  2201=
wait          492  1200  1231 
worksem       121* 2199= 2201 
writenl       399*  570  1145  1158  1204  1214  1222* 1311  1678  1679  1680  1681  1682  1683  1684 
             1685  1686  1687  1688  1689  1690  1691  1692  1693  1694  1724  1730  1960  1993  2124 
             2214 
write_sem     174*
wrsem         105*  492  1313 
wsem          103* 1231  1300 
xmit          205*
xmitter       178*
z             125*  452   457  1256  1257  1267 
zeroes        806*  902=  909   919   921=
zone          125*
\f

fetsaoslst  81.05.13.   15.17.                                                    page    92

AND               25
ARRAY             13
BEGIN            161
CASE              11
CONST              5
DIV                9
DO                88
DOWNTO             3
ELSE              78
END              176
FOR               30
FORWARD           11
FUNCTION           9
IF               124
IN                14
MOD               11
NIL               21
NOT               16
OF                28
OR                13
OTHERWISE          6
PROCEDURE         27
RECORD             4
REPEAT             5
THEN             124
TO                27
TYPE               1
UNTIL              5
VAR               52
WHILE              4
WITH              22
\f

jg8  1981.05.13  15.19
 fetsaos program
81.05.13.      15.19.                         pascal80     version 1981.04.01


   name        headline beginline endline  appetite(words) 

   dte_pax_addr   403       405     410  :       8            
   make_phead     415       418     428  :      17            
   packmacro      433       435     439  :       6            
   packextnode    444       447     459  :      29            
   get_curbufty   462       464     480  :       2            
   getinput       484       486     506  :      21            
   getparams      510       512     544  :      25            
   init_proc      554       558     574  :      29            
   init_modul     578       605     749  :      58            
   moduleready    754       755     762  :      19            
   outchar        768       769     775  :       9            
   outdecimal     781       782     786  :      10            
   outinteger     792       809     943  :      47            
   outstring10    951       953     955  :      17            
   outstring12    959       961     963  :      17            
   outstring20    968       970     972  :      17            
   readchar       981       982     989  :      11            
   readinteger   1003      1017    1129  :      17            
   repeatchar    1132      1133    1136  :       8            
   testinterval  1140      1142    1150  :      13            
   testmodeout   1153      1155    1160  :      18            
   testsem       1166      1170    1216  :      15            
   writenl       1225      1227    1234  :      11            
   alarm_opsys     26      1253    2218  :    1398            

 code: 7 . 1688  = 22688 bytes


end of PASCAL80 compilation 

end
blocksread = 53
▶EOF◀