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

⟦30f27cfa6⟧ TextFile

    Length: 43008 (0xa800)
    Types: TextFile
    Names: »listdellink «

Derivation

└─⟦01e83a425⟧ Bits:30008166 Bånd med SW8010 og SW8500 source code
    └─⟦75ff9bef3⟧ 
        └─⟦this⟧ »listdellink « 

TextFile


deletlinktx d.881207.1507
  0     1 begin
  1     2 
  1     2 <* LAN device delete link   declarations first level      page ...  1... *>
  1     3 
  1     3 
  1     3 
  1     3   boolean             repeat_param                  ,
  1     4                       test                          ;
  1     5 
  1     5   integer             item_count                    ,
  1     6                       action                        ,
  1     7                       sub_action                    ,
  1     8                       point_int                     ,
  1     9                       point_txt                     ,
  1    10                       space_int                     ,
  1    11                       space_txt                     ,
  1    12                       seplength                     ,
  1    13                       old_length                    ,
  1    14                       users                         ,
  1    15                       modekind                      ,
  1    16                       devno                         ,
  1    17                       devtype                       ,
  1    18                       status                        ,
  1    19                       result                        ,
  1    20                       links_removed                 ,
  1    21                       i                             ,
  1    22                       j                             ,
  1    23                       k                             ;
  1    24 
  1    24   long                reason                        ;
  1    25 
  1    25   real    array       outfile                       ,
  1    26                       progname                      ,
  1    27                       chainname                     ,
  1    28                       item                          ,
  1    29                       old_item                      ,
  1    30                       main                          ,
  1    31                       old_main                      ,
  1    32                       devname                       ,
  1    33                       csp                      (1:2);
  1    34 
  1    34   zone                z_ld        (1  , 1, stderror);
  1    35 
  1    35 
  1    35 \f

  1    35 
  1    35 <* LAN device delete link   parameter scanning            page ...  2... *>
  1    36 
  1    36 
  1    36 
  1    36   procedure display_param_synt (z);
  1    37   zone                          z ;
  1    38   
  1    38   <***********************************************************>
  1    39   <*                                                         *>
  1    40   <* The procedure displays on the zone z a parameter syn-   *>
  1    41   <* tax survey.                                             *>
  1    42   <*                                                         *>
  1    43   <***********************************************************>
  1    44 
  1    44 <*write (z,
  1    45   <:
  1    46 
  1    46 
  1    46 
  1    46                                  (                                      )* 
  1    47 (             )1                 ( (             )1  ( <s><devname> )*  )  
  1    48 ( <outfile> = )    deletelink    ( ( main.<main> )   (              )   )  
  1    49 (             )0                 ( (             )0  ( <s><devno>   )1  )  
  1    50                                  (                                      )1 
  1    51 
  1    51 
  1    51 <s>       ::= ('sp'/.)
  1    52 <main>    ::= name          of     main process,    default : lanmain1
  1    53 <devname> ::= name          of external process           
  1    54 <devno>   ::= device number of external process           
  1    55 
  1    55     :>, "nl", 2);
  1    56 *>
  1    57 
  1    57   write (z,
  1    58   <:
  1    59 
  1    59 
  1    59 
  1    59                                  (                                    )* 
  1    60 (             )1                 ( (           )1  ( <s><devname> )*  )  
  1    61 ( <outfile> = )    deletelink    ( ( l.<lanno> )   (              )   )  
  1    62 (             )0                 ( (           )0  ( <s><devno>   )1  )  
  1    63                                  (                                    )1 
  1    64 
  1    64 
  1    64 <s>       ::= ('sp'/.)
  1    65 <lanno>   ::= number        of lan      controller, default : 1
  1    66 <devname> ::= name          of external process           
  1    67 <devno>   ::= device number of external process           
  1    68 
  1    68     :>, "nl", 2);
  1    69 
  1    69 
  1    69 
  1    69 
  1    69 
  1    69 
  1    69 \f

  1    69 
  1    69 <* LAN device delete link   parameter scanning            page ...  3... *>
  1    70 
  1    70 
  1    70 
  1    70   procedure prepare_param_scan (item_no);
  1    71   value                         item_no ;
  1    72   integer                       item_no ;
  1    73   
  1    73   <***********************************************************>
  1    74   <*                                                         *>
  1    75   <* The procedure prepares a sequential scan of the fp pa-  *>
  1    76   <* rameters in the fp command stack.                       *>
  1    77   <* The scan is supposed to be carried out by the procedu-  *>
  1    78   <* re scan_param.                                          *>
  1    79   <* The scan is prepared to start in the fp item number     *>
  1    80   <* item_no.                                                *>
  1    81   <* The scan is implemented by means of the global variab-  *>
  1    82   <* les :                                                   *>
  1    83   <* zone_level, item_count and repeat_param                 *>
  1    84   <* where zone_level is the zone stack level and item_count *>
  1    85   <* is the number of the item in the fp command stack to be *>
  1    86   <* taken next.                                             *>
  1    87   <*                                                         *>
  1    88   <* Call:   prepare_param_scan (item_no);                   *>
  1    89   <*                                                         *>
  1    90   <* item_no  (call value, integer). The item number in the  *>
  1    91   <*          fp command stack where the parameter scan car- *>
  1    92   <*          ried out by scan_param or repeat_param will be *>
  1    93   <*          started.                                       *>
  1    94   <*                                                         *>
  1    95   <* Function :                                              *>
  1    96   <*           item_no is assigned to the global item_count  *>
  1    97   <* and the global boolean repeat_param is set false.       *>
  1    98   <*                                                         *>
  1    99   <***********************************************************>
  1   100 
  1   100   begin
  2   101 
  2   101     item_count := item_no;
  2   102     repeat_param := false;
  2   103 
  2   103   end prepare_param_scan;
  1   104 
  1   104 \f

  1   104 
  1   104 
  1   104 <* LAN device delete link   parameter scanning            page ...  4... *>
  1   105 
  1   105 
  1   105 
  1   105   integer
  1   106   procedure scan_param ( item );
  1   107   real array             item  ;
  1   108   
  1   108   <***********************************************************>
  1   109   <*                                                         *>
  1   110   <* The procedure either returns the parameter which was la-*>
  1   111   <* test returned or it returns the next parameter governed *>
  1   112   <* by the global boolean repeat_param.                     *>
  1   113   <* The parameter is coded as an item as for system (4,..)  *>
  1   114   <* and is taken        from fp command stack               *>
  1   115   <*                                                         *>
  1   116   <* Call:   scan_param ( item );                            *>
  1   117   <*                                                         *>
  1   118   <* scan_param  (return value, integer). Separator < 12 +   *>
  1   119   <*             length as for system (4, ...).              *>
  1   120   <* item        (return value, array). An item is returned  *>
  1   121   <*             in item (1:2) as for system (4, ...).       *>
  1   122   <*                                                         *>
  1   123   <***********************************************************>
  1   124 
  1   124   begin
  2   125     own integer old_seplength;
  2   126     own real    old_param1, old_param2;
  2   127 
  2   127     if repeat_param then 
  2   128     begin <*the item id repeated*>
  3   129       scan_param    := old_seplength;
  3   130       item   (1)    := old_param1   ;
  3   131       item   (2)    := old_param2   ;
  3   132       repeat_param  := false;
  3   133     end else
  2   134     begin <*take next item*>
  3   135       old_seplength := system (4, increase (item_count), item); 
  3   136       old_param1    := item   (1)                             ;
  3   137       old_param2    := item   (2)                             ;
  3   138       scan_param    := old_seplength                          ;
  3   139     end;
  2   140 
  2   140   end scan_param;
  1   141 
  1   141 \f

  1   141 
  1   141 
  1   141 <* LAN device delete link   parameter scanning            page ... 5... *>
  1   142 
  1   142 
  1   142 
  1   142   procedure param_warning (z, text);
  1   143   zone                     z       ;
  1   144   string                      text ;
  1   145 
  1   145   <***********************************************************>
  1   146   <*                                                         *>
  1   147   <* The procedure writes on the zone z the text :           *>
  1   148   <* <:<10>*** <prog name>  :>                               *>
  1   149   <* followed by the text given in text and the current pa-  *>
  1   150   <* rameter.                                                *>
  1   151   <* At return, the fp mode bits are : warning.yes           *>
  1   152   <*                                                         *>
  1   153   <* Call :   param_warning (z, text);                       *>
  1   154   <*                                                         *>
  1   155   <* z        (call and return value, zone).The name of the  *>
  1   156   <*          document. Determines further the document, the *>
  1   157   <*          buffering and the position of the document.    *>
  1   158   <* text     (call value, string). The text to be written.  *>
  1   159   <*                                                         *>
  1   160   <***********************************************************>
  1   161 
  1   161   begin
  2   162     integer             seplength;
  2   163     real    array       item (1:2);
  2   164 
  2   164     repeat_param := true; <*repeat current parameter*>
  2   165 
  2   165     seplength    := scan_param (item);
  2   166 
  2   166     write_alarm (z, text);
  2   167     write_param (z, seplength, item);
  2   168     write       (z, "nl", 1);
  2   169 
  2   169     errorbits := 2 + errorbits extract 1 ; <*add warning.yes*>
  2   170 
  2   170   end param_warning;
  1   171 
  1   171 \f

  1   171 
  1   171 
  1   171 <* LAN device delete link   parameter scanning            page ... 6... *>
  1   172 
  1   172 
  1   172 
  1   172   integer
  1   173   procedure write_alarm (z, text);
  1   174   zone                   z       ;
  1   175   string                    text ;
  1   176   
  1   176   <***********************************************************>
  1   177   <*                                                         *>
  1   178   <* The procedure writes on the zone z the text :           *>
  1   179   <* <:<10>_<program name>__<text>__                         *>
  1   180   <* and returns the number of characters written.           *>
  1   181   <*                                                         *>
  1   182   <* call :   write_alarm (z, text);                         *>
  1   183   <*                                                         *>
  1   184   <* write_alarm  (return value, integer). The number of     *>
  1   185   <*              characters written.                        *>
  1   186   <* z            (call and return value, zone). The name    *>
  1   187   <*              of the document. Determines further the    *>
  1   188   <*              document, the buffering and the position   *>
  1   189   <*              of the document.                           *>
  1   190   <* text         (call value, string). The text to be       *>
  1   191   <*              written after the program name.            *>
  1   192   <*                                                         *>
  1   193   <**********************************************************>
  1   194 
  1   194   begin
  2   195     long    array field laf;
  2   196 
  2   196     laf := 0;
  2   197 
  2   197     write       (z, "nl", 2);
  2   198     write_alarm :=
  2   199     write       (z, <:*** :>, prog_name.laf, <:  :>, text, <: : :>);
  2   200 
  2   200   end write_alarm;
  1   201 
  1   201 \f

  1   201 
  1   201 
  1   201 <* LAN device delete link   parameter scanning            page ... 7... *>
  1   202 
  1   202 
  1   202 
  1   202   integer
  1   203   procedure write_param (z, seplength, item);
  1   204 
  1   204   value                     seplength       ;
  1   205   zone                   z                  ;
  1   206   integer                   seplength       ;
  1   207   real    array                        item ;
  1   208   
  1   208   <***********************************************************>
  1   209   <*                                                         *>
  1   210   <* The procedure writes on the zone z the parameter coded  *>
  1   211   <* as an item as for system (4, ...), and returns the num- *>
  1   212   <* ber of characters written.                              *>
  1   213   <*                                                         *>
  1   214   <* Call :   write_param (z, seplength, item);              *>
  1   215   <*                                                         *>
  1   216   <* write_param   (return parameter, integer). The number   *>
  1   217   <*               of characters written.                    *>
  1   218   <* z             (call and return value, zone). The name   *>
  1   219   <*               of the document. Determines further the   *>
  1   220   <*               document, the buffering and the position  *>
  1   221   <*               of the document.                          *>
  1   222   <* seplength     (call value, integer). Separator < 12 +   *>
  1   223   <*               length as for system (4, ...).            *>
  1   224   <* item          (call value, array). An item in item(1:2) *>
  1   225   <*               as for system (4, ...).                   *>
  1   226   <*                                                         *>
  1   227   <***********************************************************>
  1   228 
  1   228   begin
  2   229     integer             separator, length, chars;
  2   230     long    array field laf;
  2   231 
  2   231 \f

  2   231 
  2   231 
  2   231 <* LAN device delete link   parameter scanning            page ... 8... *>
  2   232 
  2   232 
  2   232     laf := 0; <*fields array to long array*>
  2   233 
  2   233     separator := seplength shift (-12) extract 12; <*2, 4, 6, or      8*>
  2   234     length    := seplength             extract 12; <*4 or 10, or 10+n*8*>
  2   235 
  2   235     write_param :=
  2   236     if seplength = 0 then
  2   237       write (z, <:<end parameter list>:>)
  2   238     else
  2   239       write (z, case (separator//2+1) of ("(", "nul", "sp", "=", "."), 1) +
  2   240       (if length = 4 then
  2   241         write (z, <<d>, round (item(1)))
  2   242       else
  2   243       if length = 10 then
  2   244         write (z, item.laf)
  2   245       else
  2   246         write (z, <:":>, item.laf));
  2   247 
  2   247   end write_param;
  1   248 
  1   248 \f

  1   248 
  1   248 
  1   248 <* LAN device delete link   parameter scanning            page ...  9..*>
  1   249 
  1   249 
  1   249 
  1   249   integer
  1   250   procedure write_char (z, char);
  1   251   value                    char ;
  1   252   zone                  z       ;
  1   253   integer                  char ;
  1   254   
  1   254   <***********************************************************>
  1   255   <*                                                         *>
  1   256   <* The procedure writes on the zone z the character with   *>
  1   257   <* the iso-value char as a graphical and returns the num-  *>
  1   258   <* ber of characters written.                              *>
  1   259   <*                                                         *>
  1   260   <* Call :   write_char (z, char);                          *>
  1   261   <*                                                         *>
  1   262   <* write_char    (return value, integer). The number of    *>
  1   263   <*               characters written.                       *>
  1   264   <* z             (call and return value, zone). The name   *>
  1   265   <*               of the document. Determines further the   *>
  1   266   <*               document, the buffering and the position  *>
  1   267   <*               of the document.                          *>
  1   268   <* char          (call value, integer).The character with  *>
  1   269   <*               iso-value char is written as a graphical. *>
  1   270   <*                                                         *>
  1   271   <***********************************************************>
  1   272 
  1   272   begin
  2   273     write_char := if char <= 'sp' then
  2   274     write (z, <<d>, "<", 1, char, ">", 1) else
  2   275     write (z, false add char, 1         )    ;
  2   276 
  2   276   end write_char;
  1   277 
  1   277 \f

  1   277 
  1   277 
  1   277 <* LAN device delete link   parameter scanning            page ... 10... *>
  1   278 
  1   278 
  1   278 
  1   278   integer
  1   279   procedure stack_current_output (file_name);
  1   280   array                           file_name ;
  1   281 
  1   281   <***********************************************************>
  1   282   <*                                                         *>
  1   283   <* The procedure stacks the current output zone, establi-  *>
  1   284   <* shing a stack zone chain in the global long array       *>
  1   285   <* chain_name, connects the zone to the file file_name and *>
  1   286   <* returns zero.                                           *>
  1   287   <* If the zone cannot be connected to the file, the proce- *>
  1   288   <* dure returns a value > 0 with the zone unstacked again. *>
  1   289   <*                                                         *>
  1   290   <* Call : stack_current_output (file_name);                *>
  1   291   <*                                                         *>
  1   292   <* stack_current_output  (return value, integer). The re-  *>
  1   293   <*                       sult of the connection.           *>
  1   294   <* file_name             (call value, real array). After   *>
  1   295   <*                       stacking the zone is connected to *>
  1   296   <*                       the file whose name is in         *>
  1   297   <*                       file_name (1:2).                  *>
  1   298   <*                                                         *>
  1   299   <***********************************************************>
  1   300 
  1   300   begin
  2   301     integer             result;
  2   302 
  2   302     result := 1 shift 2; <*1<2 <=> 1 segment, temporary is enough*>
  2   303 
  2   303     fp_proc (29,      0, out, chain_name); <*stack c o*>
  2   304     fp_proc (28, result, out, file__name); <*connect  *>
  2   305 
  2   305     if result <> 0 then
  2   306       fp_proc (30,    0, out, chain_name); <*unstack  *>
  2   307 
  2   307     stack_current_output := result;
  2   308 
  2   308   end stack_current_output;
  1   309 
  1   309 \f

  1   309 
  1   309 
  1   309 <* LAN device delete link   parameter scanning            page ... 11... *>
  1   310 
  1   310 
  1   310 
  1   310   procedure unstack_current_output;
  1   311 
  1   311   <***********************************************************>
  1   312   <*                                                         *>
  1   313   <* The procedure unstacks the current output file from the *>
  1   314   <* stack zone chain given in the global long array chain_  *>
  1   315   <* name after having closed it up with an 'em' character   *>
  1   316   <* or a 'nl' character and terminated it.                  *>
  1   317   <*                                                         *>
  1   318   <***********************************************************>
  1   319 
  1   319   begin
  2   320     integer             char;
  2   321     integer array       zdescr (1:20);
  2   322 
  2   322     getzone6 (out, zdescr);
  2   323 
  2   323     char :=
  2   324       if zdescr (1) extract 12 =  4 <*bs*> 
  2   325       or zdescr (1) extract 12 = 18 <*mt*> then 'em' else 'nl';
  2   326     
  2   326     fp_proc (34, 0, out,       char); <*close up *>
  2   327     fp_proc (79, 0, out,          0); <*terminate*>
  2   328     fp_proc (30, 0, out, chain_name); <*unstack  *>
  2   329 
  2   329   end unstack_current_output;
  1   330 
  1   330 \f

  1   330 
  1   330 
  1   330 <* LAN device delete link   parameter interpretation      page ... 12... *>
  1   331 
  1   331 
  1   331 
  1   331   integer                                                     
  1   332   procedure unlink__param (seplength, item);                  
  1   333   value                    seplength       ;                  
  1   334   integer                  seplength       ;                  
  1   335   array                               item ;                  
  1   336                                                               
  1   336   <*********************************************************>  
  1   337   <*                                                       *>  
  1   338   <* The procedure returns the kind of the item given,     *>  
  1   339   <*    using one look ahead.                              *>  
  1   340   <*                                                       *>  
  1   341   <* Call :   unlink__param (seplength, item);             *>  
  1   342   <*                                                       *>  
  1   343   <* unlink__param   (return value, integer). The kind of  *>  
  1   344   <*                 the item :                            *>  
  1   345   <*                 0  end parameter list                 *>  
  1   346   <*                 1  <s>l.<integer>                     *>  
  1   347   <*                 2  <s><name>                          *>  
  1   348   <*                 3  <s><integer>                       *>  
  1   349   <*                 4  <s><unknown> or .<unknown>         *>
  1   350   <* seplength       (call value, integer). Separator < 12 *>  
  1   351   <*                 + length as for system (4, ...).      *>  
  1   352   <* item            (call value, array). An item in       *>  
  1   353   <*                 item (1:2) as for system (4, ...).    *>  
  1   354   <*                                                       *>  
  1   355   <*                                                       *>  
  1   356   <*********************************************************>  
  1   357 
  1   357 \f

  1   357 
  1   357 
  1   357 <*make link       parameter interpretation      page ... 13... *>
  1   358 
  1   358 
  1   358 
  1   358 
  1   358   begin                                                    
  2   359     integer             i, j, 
  2   360                         space_txt, point_txt, space_int, point_int,
  2   361                         next_seplength;
  2   362 
  2   362     real    array       next_item (1:2);
  2   363 
  2   363     space_txt := 4 shift 12 + 10;                          
  2   364     point_txt := 8 shift 12 + 10;                          
  2   365     space_int := 4 shift 12 +  4;
  2   366     point_int := 8 shift 12 +  4;
  2   367              
  2   367     next_seplength := scan_param (next_item);
  2   368     repeat_param := true;
  2   369 
  2   369     if      sep_length            = space_txt        and   
  2   370             item (1)              = real <:l:>       and
  2   371        next_sep_length            = point_int       then
  2   372       j := 1                                               
  2   373     else                                                   
  2   374     if     (seplength            >= space_txt        and   
  2   375             seplength            <  point_int)
  2   376     or      seplength            >= point_txt       then
  2   377       j := 2                                               
  2   378     else                                                   
  2   379     if      seplength             = space_int              
  2   380     or      seplength             = point_int       then
  2   381       j := 3
  2   382     else
  2   383     if      seplength shift (-12) > 2               then
  2   384       j := 4
  2   385     else
  2   386       j := 0;                                              
  2   387                                                            
  2   387                                                            
  2   387     unlink__param := j;                                    
  2   388                                                            
  2   388     if test then
  2   389       write (out,
  2   390       "nl", 1, "*", 3, <: unlink_param = :>, case (j + 1) of (
  2   391       <:<end param list>:>, <:<s>l.<integer>:>, <:<s><name>:>, 
  2   392       <:<s><integer>:>, <:< >unknown:>),
  2   393       "nl", 1);
  2   394 
  2   394 end unlink_param;                                          
  1   395 
  1   395 
  1   395 \f

  1   395 
  1   395 
  1   395 <* LAN device delete link    program head                   page ... 14... *>
  1   396 
  1   396 
  1   396 
  1   396   outfile (1) := chain_name (1) := real <::>; <*no outfile, no zone stack*>  
  1   397                                                                             
  1   397   prepare_param_scan (0);                                                   
  1   398                                                                             
  1   398   scan_param (outfile);                                                     
  1   399                                                                             
  1   399   if scan_param (progname) shift (-12) extract 12 <> 6 <*equal*> then       
  1   400   begin <*no outfile, progname  is next param after program name*>          
  2   401     for i := 1, 2 do                                                        
  2   402     begin                                                                   
  3   403       progname (i) := outfile (i);                                          
  3   404       outfile  (i) := real   <::>;                                          
  3   405       repeat_param := true       ; <*progname must be repeated*>            
  3   406     end;                                                                    
  2   407   end <*no outfile*>;                                                       
  1   408                                                                             
  1   408   if outfile (1) <> real <::> then                                          
  1   409   begin <*stack current out and connect*>                                   
  2   410     result := stack_current_output (outfile);                               
  2   411     if result <> 0 then                                                     
  2   412     begin <*connect not ok*>                                                
  3   413       param_warning (out, <:warning outfile param connect impossible:>);    
  3   414       write       (out, <: :>, case result of (                             
  3   415       <:no resources:>, <:malfunction:>, <:not user, non exist:>,           
  3   416       <:convention error:>, <:not allowed:>, <:name format error:>));       
  3   417     end <*connect not ok*>;                                                 
  2   418   end <*stack current out and connect*>;                                     
  1   419 
  1   419 \f

  1   419 
  1   419 
  1   419 <* LAN device delete link    program head                   page ... 15... *>
  1   420 
  1   420 
  1   420   point_int := 8 shift 12 + 4; point_txt := 8 shift 12 + 10;
  1   421   space_int := 4 shift 12 + 4; space_txt := 4 shift 12 + 10;
  1   422 
  1   422   trapmode := 1 shift 10; <*no end <segs>*>
  1   423 
  1   423   replacechar (8, 0); <*changes last character in write to array to null*>
  1   424 
  1   424   links_removed := devtype := 0;
  1   425 
  1   425   movestring (old_main, 1, <::>        );
  1   426   movestring (    main, 1, <:lanmain1:>); <*default*>
  1   427 
  1   427   open       (zld, 0, main, 0);
  1   428 
  1   428   test := false;
  1   429   seplength := scan_param  (item);
  1   430 
  1   430   if seplength = space_txt and
  1   431      item  (1) = real <:test:> then
  1   432   begin
  2   433     test := true;
  2   434     seplength := scan_param (item);
  2   435   end;
  1   436 
  1   436 \f

  1   436 
  1   436 
  1   436 <* LAN device delete link    program                        page ... 16... *>
  1   437 
  1   437 
  1   437   for action := unlink_param (seplength, item) while action > 0 do
  1   438   begin <*l.<lanno>, <s>name, or <s>integer*>
  2   439 
  2   439     case action of
  2   440     begin
  3   441 
  3   441       begin <*lanno*>
  4   442         devtype    := 0; <*a new device expected*>
  4   443 
  4   443         seplength  := scan_param (item);
  4   444 
  4   444         if seplength <> point_int then
  4   445           param_warning (out, <: l.<lanno>:>)
  4   446         else
  4   447         begin
  5   448           write (main, <:lanmain:>, <<d>, round item (1));
  5   449           main  (2) := main (2) shift (-8) shift 8;
  5   450           close  (zld , true);
  5   451           open   (zld , 0, main, 0);
  5   452         end;
  4   453 
  4   453         seplength  := scan_param (item);
  4   454       end <*l.<lanno>*>;
  3   455 
  3   455       begin <*<s>name*>
  4   456         devtype     := 1; <*device read*>
  4   457         tofrom        (devname, item, 8);
  4   458         devname (2) := devname (2) shift (-8) shift 8; <*at most 11 chars*>
  4   459         devno       := 0;
  4   460 
  4   460         seplength := scanparam (item);
  4   461       end <*<s><name>*>;
  3   462 
  3   462       begin <*<s><integer>*>
  4   463         devtype     := 2; <*device read*>
  4   464         devno       := item (1) ;
  4   465         devname (1) := devname (2) := real <::>;
  4   466 
  4   466         seplength   := scanparam (item);
  4   467       end <*<s><integer>*>;
  3   468 
  3   468       begin <*unknown parameter*>
  4   469         devtype      := 0; <*device not read*>
  4   470 
  4   470         param_warning (out, <: unknown parameter :>);
  4   471 
  4   471         seplength := scanparam (item);
  4   472       end;
  3   473 
  3   473     end <*case action*>;
  2   474 
  2   474 \f

  2   474 
  2   474 
  2   474 <* LAN device delete link    program                        page ... 17... *>
  2   475 
  2   475 
  2   475     <*lan device unlink*>
  2   476 
  2   476     if devtype > 0 then  
  2   477     begin <*device accepted*>
  3   478 
  3   478       if old_main (1) <> main (1) 
  3   479       or old_main (2) <> main (2) then
  3   480         write (out,                   
  3   481         "nl", 2, <:main : :>, main, <:  : :>,
  3   482         "nl", 1);                                     
  3   483                                                       
  3   483       tofrom (old_main, main, 8);                     
  3   484                                                       
  3   484       if ld_unlink (zld, devno, devname, reason) then 
  3   485       begin <*unlinked*>                              
  4   486         links_removed := links_removed + 1;           
  4   487                                                       
  4   487         write (out, <<ddd>,                           
  4   488           "nl", 1, <:link     removed : :>,           
  4   489           true, 12, devname, <: dev. no : :>, devno);  
  4   490                                                       
  4   490       end <*unlinked*>                                
  3   491 \f

  3   491 
  3   491 
  3   491 <* LAN device delete link    program                        page ... 18... *>
  3   492 
  3   492 
  3   492       else                                                            
  3   493       begin <*not unlinked*>                                            
  4   494         errorbits := errorbits shift  (-1) shift 1 + 1; <*add alarm*>
  4   495         result    := reason    shift (-24) extract 12 ;                                 
  4   496                                                                       
  4   496         write (out,                                                
  4   497           "nl", 1, <:link not removed : :>,                        
  4   498           true, 12, devname, <: dev. no : :>);                      
  4   499                                                                    
  4   499         if devno <= 0 then                                             
  4   500           write (out, <: - :>)                                        
  4   501         else                                                          
  4   502           write (out, <<ddd>, devno);                                 
  4   503                                                                       
  4   503         write (out, <<ddd>, "sp", 3, "*", 1);
  4   504 
  4   504         write (out, case result of (                            
  4   505         <: result 1:>,
  4   506         <: could not be reserved:>,                                   
  4   507         <: does not identify a link:>,                                
  4   508         <: malfunction:>,                                             
  4   509         <: does not exist:>));                                        
  4   510                                                                    
  4   510       end <*not unlinked*>;                                             
  3   511     end <*device accepted*>;                                       
  2   512                                                                    
  2   512   end <*case action*>;                                                 
  1   513 
  1   513 \f

  1   513 
  1   513 
  1   513 <* LAN device delete link    program                        page ... 19... *>
  1   514 
  1   514 
  1   514   if item_count <= 
  1   515     (if chain_name (1) = real <::> then 
  1   516        (if not test then 3 else 4)
  1   517      else 
  1   518        (if not test then 4 else 5))                         then
  1   519     display_param_synt (out)
  1   520   else
  1   521     write (out,
  1   522     "nl", 2, <:links    removed : :>, links_removed,
  1   523     "nl", 1);
  1   524 
  1   524   close (zld, true);
  1   525 
  1   525   if chain_name (1) <> real <::> then
  1   526     unstack_current_output;
  1   527 
  1   527 end;\f


 1.   1188838  7860778   12    0    0
action   D:     6
         A:   437
         U:   437   439
chainname
         D:    27
         A:   396
         U:   303   306   328   515   525
char     D:   253   320
         A:   323
         U:   250   273   274   275   326
chars    D:   229
close    U:   450   524
csp      D:    33
devname  D:    32
         A:   458   465
         U:   457   458   484   489   498
devno    D:    16
         A:   459   464
         U:   484   489   499   502
devtype  D:    17
         A:   424   442   456   463   469
         U:   476
displayparamsynt
         D:    36
         U:   519
errorbits
         A:   169   494
         U:   169   494
filename D:   280
         U:   279   304
fpproc   U:   303   304   306   326   327   328
getzone6 U:   322
i        D:    21   359
         A:   401
         U:   403   404
increase U:   135
item     D:    28   107   163   207   335
         A:   130   131
         U:   106   135   136   137   165   167   203   241
              244   246   332   370   429   431   434   437
              443   448   453   457   460   464   466   471
itemcount
         D:     5
         A:   101
         U:   135   514
itemno   D:    72
         U:    70   101
j        D:    22   359
         A:   372   377   381   384   386
         U:   387   390
k        D:    23
laf      D:   195   230
         A:   196   232
         U:   199   244   246
ldunlink U:   484
length   D:   229
         A:   234
         U:   240   243
linksremoved
         D:    20
         A:   424   486
         U:   486   522
main     D:    30
         A:   449
         U:   426   427   448   449   451   478   479   481
              483
modekind D:    15
movestring
         U:   425   426
nextitem D:   362
         U:   367
nextseplength
         D:   361
         A:   367
         U:   371
olditem  D:    29
oldlength
         D:    13
oldmain  D:    31
         U:   425   478   479   483
oldparam1
         D:   126
         A:   136
         U:   130
oldparam2
         D:   126
         A:   137
         U:   131
oldseplength
         D:   125
         A:   135
         U:   129   138
open     U:   427   451
out      U:   303   304   306   322   326   327   328   389
              413   414   445   470   480   487   496   500
              502   503   504   519   521
outfile  D:    25
         A:   396   404
         U:   398   403   408   410
paramwarning
         D:   142
         U:   413   445   470
pointint D:     8   360
         A:   366   420
         U:   371   375   380   444
pointtxt D:     9   360
         A:   364   420
         U:   376
prepareparamscan
         D:    70
         U:   397
progname D:    26
         A:   403
         U:   199   399
reason   D:    24
         U:   484   495
repeatparam
         D:     3
         A:   102   132   164   368   405
         U:   127
replacechar
         U:   423
result   D:    19   301
         A:   302   410   495
         U:   304   305   307   411   414   504
scanparam
         D:   106
         A:   129   138
         U:   165   367   398   399   429   434   443   453
              460   466   471
separator
         D:   229
         A:   233
         U:   239
seplength
         D:    12   162   206   334
         A:   165   429   434   443   453   460   466   471
         U:   167   203   233   234   236   332   369   374
              375   376   379   380   383   430   437   444
spaceint D:    10   360
         A:   365   421
         U:   379
spacetxt D:    11   360
         A:   363   421
         U:   369   374   430
stackcurrentoutput
         D:   279
         A:   307
         U:   410
status   D:    18
stderror U:    34
subaction
         D:     7
system   U:   135
test     D:     4
         A:   428   433
         U:   388   516   518
text     D:   144   175
         U:   142   166   173   199
tofrom   U:   457   483
trapmode A:   422
unlinkparam
         D:   332
         A:   387
         U:   437
unstackcurrentoutput
         D:   310
         U:   526
users    D:    14
write    U:    57   168   197   199   237   239   241   244
              246   274   275   389   414   448   480   487
              496   500   502   503   504   521
writealarm
         D:   173
         A:   198
         U:   166
writechar
         D:   250
         A:   273
writeparam
         D:   203
         A:   235
         U:   167
z        D:    37   143   174   205   252
         U:    36    57   142   166   167   168   173   197
              199   203   237   239   241   244   246   250
              274   275
zdescr   D:   321
         U:   322   324   325
zld      D:    34
         U:   427   450   451   484   524
no. of identifiers=72\f


12.   2377676  8158702   12    0    0
 2.   4390397 14855875    8    0    0
 3.   6314119 10146347    8   11    0
 4.   8298492 13052482    8  258  146
 5.  12454575 10200563   10  300   20
 6.  16014839 10818730   10    0    0
 7.   3699038  1219720    9    0    0
 8.   3699038  1219720   14 64114 31002
 9.     16   476    16     4 881207 152319 deletelink
         6     0  1988  1001 algftnrts
         0     1     0     2 *version
        32   420    30    14 stderror
        30    46    30    14 880817 164010 system
        34   176    33    14 881111 153754 write
        32   378    30    14 increase
         1   658     0     0 errorbits
        39    32    39   148 880822 100236 fpproc
         0   410     0     0 out
        41   244    41   148 880801 163204 getzone6
         0  1700     0     0 trapmode
        33    26    33    14 replacechar
        42   238    42   148 movestring
        42    56    42   148 880601 123132 outdate
        43    80    43   148 881201 122231 open
        44   344    43   148 close
        47    24    47   148 880821 193743 tofrom
        49    34    49   148 ldunlink
        49    36    49   148 880927 124225 ldlink
            0      181   52  156    0
algol end 52
▶EOF◀