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

⟦498047efe⟧ TextFile

    Length: 59136 (0xe700)
    Types: TextFile
    Names: »pxalclst«

Derivation

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

TextFile

\f

lst         81.05.05.   10.26.                                                    page     1

   10    1        PROCESS alc (                (*  asynchr link control     *)
   20    2          VAR sem : !ts_pointer;     (*  main semaphore           *)
   30    3          VAR lamsem: !sempointer;   (*  lam driver sem           *)
   40    4          port : byte    );          (*  lam port used            *)
   50    5        CONST
   60    6          recsize=300;
   70    7          xmtsize=300;
   80    8          testmax=3;
   90    9          
  100   10        TYPE
  110   11          commandfield = byte;
  120   12          framehead   =PACKED RECORD a: 0..255;  c: commandfield  END;
  130   13          headbuf     =RECORD first,last,next: integer; fh: framehead END;
  140   14          headbuf1    =RECORD first,last,next: integer; op: framehead END;
  150   15          cmdrinf     =PACKED RECORD cmd,cnt: commandfield; cause: 0..255 END;
  160   16          pntbuf      =RECORD first,last,next: integer END;
  170   17          minbuf      =RECORD first,last,next: integer; inf: cmdrinf END;
  180   18          errortype   = 0..63;
  190   19          pnttype     =PACKED RECORD notused:0..8191; p: 0..7 END;
  200   20          hxtype      =PACKED RECORD h0,h1,h2,h3: 0..15 END;
  210   21          modemtype   =PACKED RECORD f:byte; notused:0..3;
  220   22                              !  rts,dtr,ci,rate,txe,rxe: 0..1
  230   23                              END;
  240   24          
  250   25          status      = RECORD
  260   26                        !  lambits, res : byte;
  270   27                        END;
  280   28          
  290   29          testtype=RECORD
  300   30                   !  first,last,next: integer;
  310   31                   !  d:ARRAY (0..testmax) OF PACKED RECORD
  320   32                   !                                 !  nt,tt:integer;
  330   33                   !                                 !  at:0..255;
  340   34                   !                                 !  ct:byte;
  350   35                   !                                 !  stt:status;
  360   36                   !                                 !    (* extended testoutput ****************
  370   37                   !                                 !    *
  380   38                   !                                 !    b: 0..4;
  390   39                   !                                 !    r,x: 0..15;
  400   40                   !                                 !    y: 0..2;
  410   41                   !                                 !    m: boolean;
  420   42                   !                                 !    jt: 0..3;
  430   43                   !                                 !    vt,tnt: 0..7;
  440   44                   !                                 !    t0t: 0..127;
  450   45                   !                                 !    snd,sif,ab: boolean;
  460   46                   !                                 !    p0,p1,p2,p3,p4,p5,p6,p7: 0..15;
\f

lst         81.05.05.   10.26.                                                    page     2

  470   47                   !                                 !    (**************************************)
  480   48                   !                                 END;
  490   49                   END;
  500   50          
  510   51          bytes6 = ARRAY (0..5) OF byte;
  520   52          array6 = ARRAY (1..6) OF integer;
  530   53          array8 = ARRAY (0..7) OF integer;
  540   54          
  550   55          statistics = RECORD                       (*  for statistics     *)
  560   56                       !  na1, na2, na3 : integer;          (*  not used         *)
  570   57                       !  recnu,    recs,                   (*     -    , received blocks   *)
  580   58                       !  tranu,    trans,                  (*     -    , transmitted blocks *)
  590   59                       !  skipnu,   skips,                  (*     -    , give ups           *)
  600   60                       !  retrnu,  retrans : integer;       (*      -   , retransmissions    *)
  610   61                       !  rec_rnr,                          (*  last received rec error      *)
  620   62                       !  xmt_rnr,                          (*  last received xmt error status  *)
  630   63                       !  rec_rej,                          (*  timeouts after enq          *)
  640   64                       !  xmt_rej,                          (*  waits for xmt               *)
  650   65                       !  ack_times,                        (*  timeouts after data          *)
  660   66                       !  dsr, dcd, sqd,                    (*  lambit  12  11  10  off   *)
  670   67                       !  ci :               integer;       (*  lam u4   lam u2        *)
  680   68                       !  last_rec,                         (*  last opcode received       *)
  690   69                       !  last_xmt : byte;                  (*  last opcode transmitted    *)
  700   70                       !  xmterr, recerr :   integer;       (*  times when u2 <> 0 and 5  *)
  710   71                       !  fut : array6;                     (*  counter(lam u2 div 8)      *)
  720   72                       END;
  730   73          
  740   74          statetype = ( discon, connec, idle, wack, wrep );     (*  xstate   *)
  750   75          inputtype = ( data, ackn, enqu, rese, nons );
  760   76          arow = ARRAY (inputtype) OF byte;
  770   77          actiontabletype = ARRAY ( connec..wrep) OF arow;
  780   78          
  790   79          flag        =PACKED ARRAY (0..15) OF boolean;
  800   80          
  810   81        CONST
  820   82          maxinputs = 2;
  830   83          
  840   84          v24 = bytes6 ( 0, 32, 0, 32, 64, 96);
  850   85          zeroes = statistics (
  860   86                               0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
  870   87                               0,0,0,0,0, 0,0,0,0, array6(6***0) );
  880   88          
  890   89          timeru3 = 250;         (*  250,2 = 1000 = 1 sec   *)
  900   90          timeru4 = 2;
  910   91          
  920   92          send_ok = 0;
\f

lst         81.05.05.   10.26.                                                    page     3

  930   93          down   = 1;
  940   94          trouble = 1+8;
  950   95          waiting = 10;
  960   96          nonsens = 26;
  970   97          discp = 99;
  980   98          
  990   99          enq    = 5;              (*  operation codes     *)
 1000  100          reset  = 21;
 1010  101          ack_0  = 19;
 1020  102          ack_1  = ack_0+1;
 1030  103          data_0 = 28;
 1040  104          data_1 = data_0+1;
 1050  105          codediff = data_0 - ack_0;
 1060  106          
 1070  107          actiontable =
 1080  108          actiontabletype (
 1090  109                             (*              data   ack   enq  reset  nons    *)
 1100  110                             (*connec*) arow(  3,    2,    7,    1,    0 ),
 1110  111                             (* idle *) arow(  3,    0,    7,    0,    0 ),
 1120  112                             (* wack *) arow(  3,    4,    7,    0,    0 ),
 1130  113                             (* wrep *) arow(  3,    5,    7,    6,    0 ));
 1140  114          
 1150  115          message         =7;
 1160  116          timeransw       =6;
 1170  117          recansw         =read_it;
 1180  118          xmtansw         =write_it;
 1190  119          conansw         =create_it_ch;
 1200  120          
 1210  121          inputmess       =1;
 1220  122          outputmess      =2;
 1230  123          sensemess       =0;
 1240  124          connectmess     =4;
 1250  125          disconnectmess  =8;
 1260  126          returnallmess   =12;
 1270  127          returnunusedmess=16;
 1280  128          modemmess       =24;
 1290  129          statmess        =28;
 1300  130          statclrmess     =32;
 1310  131          linespeedmess   =36;
 1320  132          eventmess       =40;
 1330  133          testmess        =44;
 1340  134          setspeedmess = 48;
 1350  135          
 1360  136           
\f

lst         81.05.05.   10.26.                                                    page     4

 2010  137          
 2020  138        VAR
 2030  139          retrans, auto : boolean:= false;
 2040  140          test,test1,mstate: boolean:=true;
 2050  141          bstate,ystate,t,tn,time,vi,vs:integer:=0;
 2060  142          recerr,xmterr: integer:=0;
 2070  143          eventlost: integer:=-1;
 2080  144          k,n2,t1,t2,i,j,l:integer:= 0;
 2090  145          st: status;
 2100  146          testbit: flag:=flag(16***false);
 2110  147          m,mx,mw,mc, pending : reference;
 2120  148          testbuf: testtype;
 2130  149          eventqueue,ique,testsem,small: semaphore;
 2140  150          headpool: pool 3+maxinputs;
 2150  151          framepool: pool 1+maxinputs OF headbuf;
 2160  152          priq1: ARRAY (-1..7) OF semaphore;
 2170  153          
 2180  154          xstate : statetype;    (*  process state          *)
 2190  155          input  : inputtype;    (*  received from lam      *)
 2200  156          
 2210  157          alc_control: byte:= 4+24+96;     (*  1200 pbs is standard   *)
 2220  158          alc_time : byte:= 5;
 2230  159          
 2240  160          lastack,               (*  save for enq   *)
 2250  161          func,                  (*  returned u1           *)
 2260  162          opk,                   (*  u3 to/from lam         *)
 2270  163          action,                (*   selected action       *)
 2280  164          modem_state,           (*   lambits div 8         *)
 2290  165          result,                (*  for answer to router   *)
 2300  166          block_no : byte:=0;    (*  last send data code    *)
 2310  167          
 2320  168          mr : ARRAY (0..maxinputs-1) OF reference;
 2330  169          vcodes : ARRAY (1..6) OF byte;         (*  saved opcodes  *)
 2340  170          
 2350  171          stc : statistics := zeroes;   (*  stat counters         *)
 2360  172          
 2370  173           
\f

lst         81.05.05.   10.26.                                                    page     5

 3010  174          
 3020  175          PROCEDURE asgnbit=asgnintset(VAR bit:flag; w:integer); EXTERNAL;
 3030  176          
 3040  177          
 3050  178          PROCEDURE exception ( cause: integer);
 3060  179          FORWARD;
 3070  180          
 3080  181          
 3090  182          PROCEDURE event ( cause: integer);
 3100  183          FORWARD;
 3110  184          
 3120  185          
 3130  186          PROCEDURE asgnintset ( VAR d: integer;  s: status );
 3140  187          EXTERNAL;
 3150  188          
 3160  189          
 3170  190          
 3180  191          
 3190  192          
 3200  193          PROCEDURE answ;           (*  return m with ok result   *)
 3210  194          BEGIN
 3220  195    1     ! m^.u2:= 0;
 3230  196    2     ! m^.u3:= port;
 3240  197    3     ! return ( m)
 3250  198    4     END;
 3260  199          
 3270  200          
 3280  201          
 3290  202          
 3300  203          
 3310  204          PROCEDURE answer ( res: byte);      (*  return m with  res   *)
 3320  205          BEGIN
 3330  206    1     ! m^.u2:= res;
 3340  207    2     ! m^.u3:= port;
 3350  208    3     ! return ( m)
 3360  209    4     END;
 3370  210          
 3380  211          
 3390  212           
\f

lst         81.05.05.   10.26.                                                    page     6

 4010  213          
 4020  214          PROCEDURE readlam;
 4030  215              (*                 send input request to lam driver    *)
 4040  216          VAR um: reference;
 4050  217            
 4060  218          BEGIN
 4070  219    1     ! IF (bstate < maxinputs) AND (xstate > discon) THEN
 4080  220    2     !   BEGIN
 4090  221    3     !   ! sensesem ( um, ique);       (*  get receive buffer if possible  *)
 4100  222    4     !   ! IF nil ( um) THEN
 4110  223    5     !   !   IF mstate THEN sensesem ( um, small);  (*  get small if legal  *)
 4120  224    6     !   ! IF NOT nil ( um) THEN
 4130  225    7     !   !   BEGIN
 4140  226    8     !   !   ! push ( mr(bstate), um);
 4150  227    9     !   !   ! bstate:= bstate+1;
 4160  228   10     !   !   ! um^.u2:= port;
 4170  229   11     !   !   ! um^.u3:= data_0;      (*  gives check of first, last in lam  *)
 4180  230   12     !   !   ! signal ( um, lamsem^);
 4190  231   13     !   !   !   (*q  trace ( bstate);   q*)
 4200  232   14     !   !   END;
 4210  233   15     !   END
 4220  234   16     END;
 4230  235          
 4240  236          
 4250  237          
 4260  238          
 4270  239          
 4280  240          PROCEDURE create_channel;
 4290  241          BEGIN
 4300  242    1     ! IF NOT nil ( mc) THEN
 4310  243    2     !   BEGIN
 4320  244    3     !   ! LOCK mc AS h: headbuf DO
 4330  245    4     !   !   h.first:= alc_control*256+alc_time;
 4340  246    5     !   ! mc^.u2:= port;
 4350  247    6     !   !   (*q  trace ( port*256+alc_control);   q*)
 4360  248    7     !   ! signal ( mc, lamsem^)
 4370  249    8     !   END
 4380  250    9     END;
 4390  251          
 4400  252          
 4410  253           
\f

lst         81.05.05.   10.26.                                                    page     7

 5010  254          
 5020  255          PROCEDURE getresult;
 5030  256          BEGIN
 5040  257    1     ! st.res:= m^.u2;
 5050  258    2     ! st.lambits:= m^.u4;
 5060  259    3     ! modem_state:= v24((m^.u4 DIV 8) AND 5);
 5070  260    4     ! asgnintset ( stc.ci, st);
 5080  261    5     ! i:= m^.u2 DIV 8;
 5090  262    6     ! IF i> 0 THEN count ( stc.fut(i));
 5100  263    7     ! IF modem_state < 96 THEN
 5110  264    8     !   BEGIN
 5120  265    9     !   ! IF modem_state MOD 64 = 0 THEN count ( stc.dsr);
 5130  266   10     !   ! IF modem_state < 64 THEN count ( stc.dcd);
 5140  267   11     !   ! IF xstate >= idle THEN event ( 9);
 5150  268   12     !   END
 5160  269   13     END;
 5170  270          
 5180  271          
 5190  272          
 5200  273           
\f

lst         81.05.05.   10.26.                                                    page     8

 6010  274          PROCEDURE release_buf;
 6020  275          BEGIN
 6030  276    1     ! pending^.u2:= result;
 6040  277    2     ! pending^.u3:= port;
 6050  278    3     ! return ( pending);
 6060  279    4     ! result:= waiting;
 6070  280    5     ! tn:= 0;
 6080  281    6     ! time:= -1;
 6090  282    7     END;
 6100  283          
 6110  284          
 6120  285          
 6130  286          
 6140  287          PROCEDURE trans ( transcode : byte);
 6150  288          BEGIN
 6160  289    1     ! IF nil ( mx) THEN
 6170  290    2     !   BEGIN
 6180  291    3     !   ! count ( stc.xmt_rej);
 6190  292    4     !   ! vi:= vi+1;
 6200  293    5     !   ! IF vi > 6 THEN         (*  lam in exception or stopped    *)
 6210  294    6     !   !   BEGIN
 6220  295    7     !   !   ! event ( 10);
 6230  296    8     !   !   ! vi:= 2;
 6240  297    9     !   !   END;
 6250  298   10     !   ! vcodes(vi):= transcode;
 6260  299   11     !   END  ELSE
 6270  300   12     !   BEGIN
 6280  301   13     !   ! mx^.u2:= port;
 6290  302   14     !   ! mx^.u3:= transcode;
 6300  303   15     !   ! signal ( mx, lamsem^);
 6310  304   16     !   !   (*q  trace ( transcode);   q*)
 6320  305   17     !   ! stc.last_xmt:= transcode;
 6330  306   18     !   ! time:= t2;
 6340  307   19     !   END
 6350  308   20     END;   (*  of trans  *)
 6360  309           
\f

lst         81.05.05.   10.26.                                                    page     9

 7010  310          
 7020  311          
 7030  312          
 7040  313          PROCEDURE transdata;
 7050  314          BEGIN
 7060  315    1     !   (*  pending and mx is not nil    *)
 7070  316    2     ! mx^.u2:= port;
 7080  317    3     ! mx^.u3:= block_no;
 7090  318    4     ! push ( mx, pending);
 7100  319    5     ! signal ( pending, lamsem^);
 7110  320    6     !   (*q  trace ( block_no);   q*)
 7120  321    7     ! stc.last_xmt:= block_no;
 7130  322    8     ! time:= t2;
 7140  323    9     ! result:= waiting;
 7150  324   10     ! xstate:= wack;
 7160  325   11     END;
 7170  326          
 7180  327          
 7190  328          
 7200  329          
 7210  330          
 7220  331          PROCEDURE block_ok;
 7230  332          BEGIN
 7240  333    1     ! result:= send_ok;
 7250  334    2     ! IF nil ( pending) THEN
 7260  335    3     !   BEGIN
 7270  336    4     !   !   (*   ack received before lam xmt finished    *)
 7280  337    5     !   ! event ( 4);
 7290  338    6     !   END  ELSE
 7300  339    7     !   BEGIN
 7310  340    8     !   !   (* count ( xmt_cnt );    *)
 7320  341    9     !   ! xstate:= idle;
 7330  342   10     !   ! release_buf; (* pending *)
 7340  343   11     !   END
 7350  344   12     END;
 7360  345          
 7370  346           
\f

lst         81.05.05.   10.26.                                                    page    10

 8010  347          
 8020  348          PROCEDURE give_up ( cause : byte);
 8030  349          BEGIN
 8040  350    1     ! result:= cause;
 8050  351    2     !   (*q  trace ( cause);   q*)
 8060  352    3     ! count ( stc.skips);
 8070  353    4     ! IF nil ( pending) THEN
 8080  354    5     !   BEGIN
 8090  355    6     !   !   (*    lam xmt is dead, when i give up    *)
 8100  356    7     !   ! event ( 3);
 8110  357    8     !   END  ELSE
 8120  358    9     !   release_buf;
 8130  359   10     ! time:= t2;
 8140  360   11     ! 
 8150  361   12     ! IF xstate > connec THEN
 8160  362   13     !   IF auto THEN                      (*  try to connect again   *)
 8170  363   14     !     BEGIN
 8180  364   15     !     ! event ( 11);
 8190  365   16     !     ! mstate:= true;
 8200  366   17     !     ! xstate:= connec;
 8210  367   18     !     END  ELSE
 8220  368   19     !     BEGIN
 8230  369   20     !     ! event ( 12);
 8240  370   21     !     ! xstate:= discon;
 8250  371   22     !     END
 8260  372   23     END;
 8270  373          
 8280  374          
 8290  375          
 8300  376          
 8310  377          PROCEDURE answer_stat;
 8320  378          BEGIN
 8330  379    1     ! LOCK m AS buf: statistics DO buf:= stc;
 8340  380    2     ! answ;
 8350  381    3     END;
 8360  382          
 8370  383          
 8380  384           
\f

lst         81.05.05.   10.26.                                                    page    11

 9010  385          
 9020  386          PROCEDURE copytest(VAR m:reference);
 9030  387          BEGIN
 9040  388    1     ! LOCK m AS b:testtype DO BEGIN
 9050  389    2     !   ! b:=testbuf;
 9060  390    3     !   ! WITH testbuf DO BEGIN next:=first; last:=first END;
 9070  391    4     !   ! WITH b DO IF last<testmax THEN last:=next-1;
 9080  392    5     !   END;
 9090  393    6     END;
 9100  394          
 9110  395          PROCEDURE otest(n:integer; a:0..255; c:byte);
 9120  396          BEGIN
 9130  397    1     ! WITH testbuf DO IF next>testmax THEN
 9140  398    2     !     IF open(testsem) THEN BEGIN
 9150  399    3     !       ! wait(mw,testsem); copytest(mw); return(mw);
 9160  400    4     !       END ELSE BEGIN last:=testmax; next:=first END;
 9170  401    5     ! WITH testbuf.d(testbuf.next) DO BEGIN
 9180  402    6     !   ! nt:=n; at:=a; ct:=c; stt:=st; tt:=time;
 9190  403    7     !   !   (* extended testoutput ************************************************
 9200  404    8     !   !   *
 9210  405    9     !   !   b:=bstate; r:=rstate; x:=ord(xstate); y:=ystate; m:=mstate; jt:=j;
 9220  406   10     !   !   vt:=vi; tnt:=tn; t0t:=t; snd:=nil(mx); sif:=nil(pending); ab:=retrans;
 9230  407   11     !   !   (***********************************************************************)
 9240  408   12     !   END;
 9250  409   13     ! WITH testbuf DO next:=next+1;
 9260  410   14     END;
 9270  411          
 9280  412          PROCEDURE event(cause: integer);
 9290  413          BEGIN
 9300  414    1     !   (*q  trace ( cause);   q*)
 9310  415    2     ! IF open(eventqueue) THEN BEGIN
 9320  416    3     !   ! wait(mw,eventqueue);
 9330  417    4     !   ! mw^.u2:=8*cause; mw^.u3:=port;
 9340  418    5     !   ! return(mw);
 9350  419    6     !   END ELSE IF eventlost=-1 THEN eventlost:=cause ELSE eventlost:=cause+16;
 9360  420    7     END;
 9370  421          
 9380  422          PROCEDURE exception(cause: integer);
 9390  423          VAR r: reference;
 9400  424          BEGIN
 9410  425    1     ! trace(cause);
 9420  426    2     ! otest(8,cause,discp);
 9430  427    3     ! event(15);
 9440  428    4     ! REPEAT
 9450  429    5     ! ! wait(r,sem.w^);
 9460  430    6     ! ! WITH r^ DO
\f

lst         81.05.05.   10.26.                                                    page    12

 9470  431    7     ! !   IF u2=message THEN BEGIN
 9480  432    8     ! !     ! IF (u1=testmess) AND (u3 MOD 2 = 1) THEN BEGIN
 9490  433    9     ! !     !   ! copytest(r); u3:=port; u2:=0; return(r);
 9500  434   10     ! !     !   END ELSE
 9510  435   11     ! !     !   IF (u1=eventmess) AND (eventlost<>-1) THEN BEGIN
 9520  436   12     ! !     !     ! signal(r,eventqueue); event(eventlost); eventlost:=-1;
 9530  437   13     ! !     !     END ELSE BEGIN u2:=15*8+3;  u3:= port; return(r) END;
 9540  438   14     ! !     END ELSE release(r);
 9550  439   15     ! UNTIL false;
 9560  440   16     END;
 9570  441          
 9580  442           
\f

lst         81.05.05.   10.26.                                                    page    13

10010  443          
10020  444            (*--------------------------- main program ----------------------------*)
10030  445          
10040  446          
10050  447        BEGIN
10060  448    1   !   (*  trace(29);      (*--------- version ---------*)
10070  449    2   ! lastack:= reset;
10080  450    3   ! block_no:= data_1;
10090  451    4   ! xstate:= discon;
10100  452    5   ! result:= waiting;
10110  453    6   ! 
10120  454    7   ! WITH testbuf DO BEGIN first:=0; last:=0; next:=0 END;
10130  455    8   ! 
10140  456    9   ! alloc(mc,framepool,sem.s^);
10150  457   10   ! mc^.u1:= conansw;
10160  458   11   ! alloc(m,headpool, priq1(-1));          (*  see 'xmt next block'  line 766    *)
10170  459   12   ! signal(m,priq1(-1));
10180  460   13   ! 
10190  461   14   ! alloc(mx,headpool,sem.s^);
10200  462   15   ! mx^.u1:= xmtansw;
10210  463   16   ! FOR l:= 0 TO maxinputs-1 DO
10220  464   17   !   BEGIN
10230  465   18   !   ! alloc ( mr(l), headpool, sem.s^);
10240  466   19   !   ! mr(l)^.u1:= recansw;
10250  467   20   !   ! alloc ( m, framepool, small);
10260  468   21   !   ! LOCK m AS buf: headbuf DO
10270  469   22   !   !   BEGIN
10280  470   23   !   !   ! buf.first:= 6;
10290  471   24   !   !   ! buf.last:= 7;
10300  472   25   !   !   END;
10310  473   26   !   ! return ( m)
10320  474   27   !   END;
10330  475   28   ! 
10340  476   29   ! alloc(m,headpool,sem.s^);
10350  477   30   ! m^.u1:=timeransw;  m^.u2:= m^.u1; m^.u3:=timeru3; m^.u4:= timeru4;
10360  478   31   ! sendtimer(m);
10370  479   32   ! 
10380  480   33   !  
\f

lst         81.05.05.   10.26.                                                    page    14

11010  481   34   ! 
11020  482   35   !   (*----------------------- main loop -----------------------------------*)
11030  483   36   ! 
11040  484   37   ! REPEAT
11050  485   38   ! ! wait(m,sem.w^);
11060  486   39   ! ! func:= m^.u1;
11070  487   40   ! ! IF m^.u2 = message THEN
11080  488   41   ! !   BEGIN
11090  489   42   ! !   ! IF test THEN IF testbit(11) THEN
11100  490   43   ! !   !     otest(((m^.u3+128) MOD 256 - 128)* 256+2,m^.u1,opk);
11110  491   44   ! !   ! CASE m^.u1 OF
11120  492   45   ! !   ! ! 
11130  493   46   ! !   ! ! sensemess:
11140  494   47   ! !   ! !   BEGIN
11150  495   48   ! !   ! !   ! i:= ord(xstate);
11160  496   49   ! !   ! !   ! IF i>2 THEN i:= 2;
11170  497   50   ! !   ! !   ! answer ( modem_state +i*8);
11180  498   51   ! !   ! !   END;
11190  499   52   ! !   ! ! 
11200  500   53   ! !   ! ! inputmess:
11210  501   54   ! !   ! !   BEGIN
11220  502   55   ! !   ! !   ! signal ( m, ique);
11230  503   56   ! !   ! !   ! mstate:= false;      (*  dont use small buffers     *)
11240  504   57   ! !   ! !   !   (*  until next connect or auto-connect  *)
11250  505   58   ! !   ! !   !   (*q  trace ( 1);    q*)
11260  506   59   ! !   ! !   ! readlam;
11270  507   60   ! !   ! !   END;
11280  508   61   ! !   ! ! 
11290  509   62   ! !   ! ! outputmess:  signal(m,priq1(m^.u3));
11300  510   63   ! !   ! ! 
11310  511   64   ! !   ! ! connectmess:
11320  512   65   ! !   ! !   BEGIN
11330  513   66   ! !   ! !   ! LOCK m AS h:RECORD
11340  514   67   ! !   ! !   !               !  first,last,next:integer;
11350  515   68   ! !   ! !   !               !  auto:boolean;
11360  516   69   ! !   ! !   !               !  id,t1,n2,k:integer
11370  517   70   ! !   ! !   !   END DO BEGIN
11380  518   71   ! !   ! !   !   ! l:=h.id; k:=h.k; n2:=h.n2; auto:=h.auto;
11390  519   72   ! !   ! !   !   ! t2:= (h.t1+9) DIV 10;
11400  520   73   ! !   ! !   !   END;
11410  521   74   ! !   ! !   ! answ;
11420  522   75   ! !   ! !   ! mstate:= true;
11430  523   76   ! !   ! !   ! IF xstate < idle THEN
11440  524   77   ! !   ! !   !   BEGIN
11450  525   78   ! !   ! !   !   ! xstate:= connec;
11460  526   79   ! !   ! !   !   ! create_channel;
\f

lst         81.05.05.   10.26.                                                    page    15

11470  527   80   ! !   ! !   !   ! time:= t2;
11480  528   81   ! !   ! !   !   END;
11490  529   82   ! !   ! !   END; <* connectmess *>
11500  530   83   ! !   ! ! 
11510  531   84   ! !   ! ! disconnectmess:
11520  532   85   ! !   ! !   BEGIN
11530  533   86   ! !   ! !   ! xstate:= discon;
11540  534   87   ! !   ! !   ! event ( 1);
11550  535   88   ! !   ! !   ! answ;
11560  536   89   ! !   ! !   ! tn:= 0;
11570  537   90   ! !   ! !   END;
11580  538   91   ! !   ! ! 
11590  539   92   ! !   ! !  
\f

lst         81.05.05.   10.26.                                                    page    16

12010  540   93   ! !   ! ! statmess:   answer_stat;
12020  541   94   ! !   ! ! 
12030  542   95   ! !   ! ! statclrmess:
12040  543   96   ! !   ! !   BEGIN   answer_stat;   stc:= zeroes;   END;
12050  544   97   ! !   ! ! 
12060  545   98   ! !   ! ! setspeedmess:
12070  546   99   ! !   ! !   BEGIN
12080  547  100   ! !   ! !   ! LOCK m AS buf: RECORD ctr, tim:byte  END DO
12090  548  101   ! !   ! !   !   BEGIN
12100  549  102   ! !   ! !   !   ! alc_control:= buf.ctr;
12110  550  103   ! !   ! !   !   ! alc_time:= buf.tim;
12120  551  104   ! !   ! !   !   END;
12130  552  105   ! !   ! !   ! answ;
12140  553  106   ! !   ! !   END;
12150  554  107   ! !   ! ! 
12160  555  108   ! !   ! ! 
12170  556  109   ! !   ! ! linespeedmess:
12180  557  110   ! !   ! !   BEGIN
12190  558  111   ! !   ! !   ! IF xstate < idle THEN answer ( 0)
12200  559  112   ! !   ! !   ! ELSE answer ( 56);                  (*  1200 bps  *)
12210  560  113   ! !   ! !   END;
12220  561  114   ! !   ! ! 
12230  562  115   ! !   ! ! modemmess:   answ;
12240  563  116   ! !   ! ! 
12250  564  117   ! !   ! !  
\f

lst         81.05.05.   10.26.                                                    page    17

13010  565  118   ! !   ! ! 
13020  566  119   ! !   ! ! returnallmess,
13030  567  120   ! !   ! ! returnunusedmess:
13040  568  121   ! !   ! !   BEGIN
13050  569  122   ! !   ! !   ! WHILE open ( ique) DO
13060  570  123   ! !   ! !   !   BEGIN
13070  571  124   ! !   ! !   !   ! wait ( mw, ique);
13080  572  125   ! !   ! !   !   ! mw^.u2:= down;
13090  573  126   ! !   ! !   !   ! mw^.u3:= port;
13100  574  127   ! !   ! !   !   ! return ( mw)
13110  575  128   ! !   ! !   !   END;
13120  576  129   ! !   ! !   ! FOR i:= 7 DOWNTO 0 DO
13130  577  130   ! !   ! !   !   WHILE open ( priq1(i)) DO
13140  578  131   ! !   ! !   !     BEGIN
13150  579  132   ! !   ! !   !     ! wait ( mw, priq1(i));
13160  580  133   ! !   ! !   !     ! mw^.u2:= down;
13170  581  134   ! !   ! !   !     ! mw^.u3:= port;
13180  582  135   ! !   ! !   !     ! return ( mw);
13190  583  136   ! !   ! !   !     END;
13200  584  137   ! !   ! !   ! IF m^.u1 = returnallmess THEN
13210  585  138   ! !   ! !   !   BEGIN
13220  586  139   ! !   ! !   !   ! xstate:= discon;
13230  587  140   ! !   ! !   !   ! mstate:= true;
13240  588  141   ! !   ! !   !   ! event ( 1);
13250  589  142   ! !   ! !   !   ! tn:= t2;
13260  590  143   ! !   ! !   !   END;
13270  591  144   ! !   ! !   ! answ;
13280  592  145   ! !   ! !   END;
13290  593  146   ! !   ! ! 
13300  594  147   ! !   ! ! 
13310  595  148   ! !   ! ! testmess:
13320  596  149   ! !   ! !   BEGIN
13330  597  150   ! !   ! !   ! asgnbit(testbit,m^.u3);
13340  598  151   ! !   ! !   ! m^.u3:=port; m^.u2:=0;
13350  599  152   ! !   ! !   ! test:=testbit(13);
13360  600  153   ! !   ! !   ! IF testbit(15) THEN copytest(m);
13370  601  154   ! !   ! !   ! IF testbit(14) THEN
13380  602  155   ! !   ! !   !   IF testbit(15) THEN WHILE open(testsem) DO BEGIN
13390  603  156   ! !   ! !   !       ! return(m); wait(m,testsem); m^.u2:=1;
13400  604  157   ! !   ! !   !       END ELSE WITH testbuf DO
13410  605  158   ! !   ! !   !         IF last>first THEN BEGIN
13420  606  159   ! !   ! !   !           ! copytest(m); return(m);
13430  607  160   ! !   ! !   !           END ELSE signal(m,testsem)
13440  608  161   ! !   ! !   !         ELSE return(m);
13450  609  162   ! !   ! !   END;
13460  610  163   ! !   ! ! 
\f

lst         81.05.05.   10.26.                                                    page    18

13470  611  164   ! !   ! ! eventmess:
13480  612  165   ! !   ! !   BEGIN
13490  613  166   ! !   ! !   ! signal(m,eventqueue);
13500  614  167   ! !   ! !   ! IF eventlost<>-1 THEN BEGIN event(eventlost); eventlost:=-1; END;
13510  615  168   ! !   ! !   END;
13520  616  169   ! !   ! !  
\f

lst         81.05.05.   10.26.                                                    page    19

14010  617  170   ! !   ! ! OTHERWISE m^.u2:=4;  m^.u3:= port; return(m);
14020  618  171   ! !   ! END;
14030  619  172   ! !   END <* message *>
14040  620  173   ! ! ELSE
14050  621  174   ! !   
14060  622  175   ! !   CASE func OF
14070  623  176   ! !   ! 
14080  624  177   ! !   ! recansw:
14090  625  178   ! !   !   BEGIN
14100  626  179   ! !   !   ! getresult;
14110  627  180   ! !   !   ! opk:= nonsens;
14120  628  181   ! !   !   ! IF m^.u2 = 0 THEN  BEGIN  opk:= m^.u3;  recerr:= 0  END  ELSE
14130  629  182   ! !   !   !   IF m^.u2 = 5 THEN  recerr:= 0  ELSE
14140  630  183   ! !   !   !     BEGIN
14150  631  184   ! !   !   !     ! count ( stc.recerr);
14160  632  185   ! !   !   !     ! stc.rec_rnr:= stc.ci;
14170  633  186   ! !   !   !     !   (*q  trace ( m^.u2);   q*)
14180  634  187   ! !   !   !     ! recerr:= recerr+1;
14190  635  188   ! !   !   !     ! IF recerr >= n2 THEN
14200  636  189   ! !   !   !     !   BEGIN
14210  637  190   ! !   !   !     !   ! recerr:= 0;
14220  638  191   ! !   !   !     !   ! event ( 13);
14230  639  192   ! !   !   !     !   END
14240  640  193   ! !   !   !     END;
14250  641  194   ! !   !   ! bstate:= bstate-1;
14260  642  195   ! !   !   ! pop ( mr(bstate), m);
14270  643  196   ! !   !   ! readlam;
14280  644  197   ! !   !   ! stc.last_rec:= opk;
14290  645  198   ! !   !   ! 
14300  646  199   ! !   !   ! CASE opk OF
14310  647  200   ! !   !   ! ! enq:    input:= enqu;
14320  648  201   ! !   !   ! ! ack_0,
14330  649  202   ! !   !   ! ! ack_1:   input:= ackn;
14340  650  203   ! !   !   ! ! reset:   input:= rese;
14350  651  204   ! !   !   ! ! data_0,
14360  652  205   ! !   !   ! ! data_1:  input:= data;
14370  653  206   ! !   !   ! ! nonsens: input:= nons;
14380  654  207   ! !   !   ! ! OTHERWISE
14390  655  208   ! !   !   ! ! BEGIN
14400  656  209   ! !   !   ! ! ! event ( 7);
14410  657  210   ! !   !   ! ! ! input:= nons;
14420  658  211   ! !   !   ! ! END
14430  659  212   ! !   !   ! END;
14440  660  213   ! !   !   ! 
14450  661  214   ! !   !   ! IF xstate < connec THEN action:= 0  ELSE
14460  662  215   ! !   !   !   action:= actiontable(xstate,input);
\f

lst         81.05.05.   10.26.                                                    page    20

14470  663  216   ! !   !   ! IF test THEN
14480  664  217   ! !   !   !   IF testbit(12) THEN otest ( bstate, action, opk);
14490  665  218   ! !   !   !   (*q   trace ( opk);        q*)
14500  666  219   ! !   !   ! 
14510  667  220   ! !   !   !  
\f

lst         81.05.05.   10.26.                                                    page    21

15010  668  221   ! !   !   ! 
15020  669  222   ! !   !   ! CASE action OF
15030  670  223   ! !   !   ! ! 
15040  671  224   ! !   !   ! ! 0:   ;  (*  do nothing   *)
15050  672  225   ! !   !   ! ! 
15060  673  226   ! !   !   ! ! 1:      (*  reset received   *)
15070  674  227   ! !   !   ! !   BEGIN
15080  675  228   ! !   !   ! !   ! xstate:= idle;
15090  676  229   ! !   !   ! !   ! event ( 0);
15100  677  230   ! !   !   ! !   END;
15110  678  231   ! !   !   ! ! 
15120  679  232   ! !   !   ! ! 
15130  680  233   ! !   !   ! ! 2:   (*  ack received when connecting   *)
15140  681  234   ! !   !   ! !   BEGIN
15150  682  235   ! !   !   ! !   ! block_no:= opk+codediff;
15160  683  236   ! !   !   ! !   ! xstate:= idle;
15170  684  237   ! !   !   ! !   ! event ( 0);
15180  685  238   ! !   !   ! !   END;
15190  686  239   ! !   !   ! ! 
15200  687  240   ! !   !   ! ! 
15210  688  241   ! !   !   ! ! 3:   (*  data  received    *)
15220  689  242   ! !   !   ! !   BEGIN
15230  690  243   ! !   !   ! !   ! m^.u2:= 0;
15240  691  244   ! !   !   ! !   ! m^.u3:= port;
15250  692  245   ! !   !   ! !   ! return ( m);
15260  693  246   ! !   !   ! !   ! lastack:= opk-codediff;
15270  694  247   ! !   !   ! !   ! trans ( lastack);
15280  695  248   ! !   !   ! !   ! count ( stc.recs);
15290  696  249   ! !   !   ! !   END;
15300  697  250   ! !   !   ! ! 
15310  698  251   ! !   !   ! ! 
15320  699  252   ! !   !   ! ! 4:      (*  ack received    *)
15330  700  253   ! !   !   ! !   IF opk+codediff = block_no THEN block_ok;
15340  701  254   ! !   !   ! ! 
15350  702  255   ! !   !   ! ! 
15360  703  256   ! !   !   ! ! 5:      (*  ack received after enq   *)
15370  704  257   ! !   !   ! !   IF opk+codediff = block_no THEN block_ok
15380  705  258   ! !   !   ! !   ELSE retrans:= true;
15390  706  259   ! !   !   ! ! 
15400  707  260   ! !   !   ! ! 
15410  708  261   ! !   !   ! ! 6:      (*  reset received after data    *)
15420  709  262   ! !   !   ! !   BEGIN
15430  710  263   ! !   !   ! !   ! retrans:= true;
15440  711  264   ! !   !   ! !   ! event ( 0);
15450  712  265   ! !   !   ! !   END;
15460  713  266   ! !   !   ! ! 
\f

lst         81.05.05.   10.26.                                                    page    22

15470  714  267   ! !   !   ! ! 7:      (*  enq received   *)
15480  715  268   ! !   !   ! !   BEGIN
15490  716  269   ! !   !   ! !   ! trans ( lastack);
15500  717  270   ! !   !   ! !   ! count ( stc.rec_rej);
15510  718  271   ! !   !   ! !   ! IF xstate < idle THEN
15520  719  272   ! !   !   ! !   !   BEGIN
15530  720  273   ! !   !   ! !   !   ! xstate:= idle;
15540  721  274   ! !   !   ! !   !   ! event ( 0);
15550  722  275   ! !   !   ! !   !   END;
15560  723  276   ! !   !   ! !   END
15570  724  277   ! !   !   ! END;  (*  case  *)
15580  725  278   ! !   !   ! 
15590  726  279   ! !   !   ! IF input <> data THEN
15600  727  280   ! !   !   !   IF ownertest ( framepool, m ) THEN return ( m)  ELSE
15610  728  281   ! !   !   !     IF (xstate=discon) AND (mstate) THEN       (*  release input  *)
15620  729  282   ! !   !   !       answer ( down)  ELSE
15630  730  283   ! !   !   !       signal ( m, ique);
15640  731  284   ! !   !   ! readlam;
15650  732  285   ! !   !   END;  (*  receiver answer   *)
15660  733  286   ! !   ! 
15670  734  287   ! !   !  
\f

lst         81.05.05.   10.26.                                                    page    23

16010  735  288   ! !   ! 
16020  736  289   ! !   ! xmtansw:
16030  737  290   ! !   !   BEGIN
16040  738  291   ! !   !   ! getresult;
16050  739  292   ! !   !   ! IF test THEN
16060  740  293   ! !   !   !   IF testbit(12) THEN otest ( 16, action, m^.u3 );
16070  741  294   ! !   !   ! IF m^.u2 = 0 THEN
16080  742  295   ! !   !   !   BEGIN
16090  743  296   ! !   !   !   ! xmterr:= 0;
16100  744  297   ! !   !   !   !   (*q  trace ( m^.u3);     q*)
16110  745  298   ! !   !   !   END  ELSE
16120  746  299   ! !   !   !   BEGIN
16130  747  300   ! !   !   !   ! count ( stc.xmterr);
16140  748  301   ! !   !   !   ! stc.xmt_rnr:= stc.ci;
16150  749  302   ! !   !   !   ! xmterr:= xmterr+1;
16160  750  303   ! !   !   !   ! IF xmterr >= n2 THEN
16170  751  304   ! !   !   !   !   BEGIN
16180  752  305   ! !   !   !   !   ! xmterr:= 0;
16190  753  306   ! !   !   !   !   ! event ( 14);
16200  754  307   ! !   !   !   !   END
16210  755  308   ! !   !   !   END;
16220  756  309   ! !   !   ! pop ( mx, m);
16230  757  310   ! !   !   ! IF mx^.u3 >= data_0 THEN
16240  758  311   ! !   !   !   BEGIN
16250  759  312   ! !   !   !   ! pending :=: m;
16260  760  313   ! !   !   !   ! IF result <> waiting THEN release_buf;
16270  761  314   ! !   !   !   END;
16280  762  315   ! !   !   ! readlam;
16290  763  316   ! !   !   END;
16300  764  317   ! !   ! 
16310  765  318   ! !   ! 
16320  766  319   ! !   ! 
16330  767  320   ! !   ! conansw:
16340  768  321   ! !   !   BEGIN
16350  769  322   ! !   !   ! mc:=: m;
16360  770  323   ! !   !   ! IF mc^.u2 <> 0 THEN event ( 14);
16370  771  324   ! !   !   END;
16380  772  325   ! !   ! 
16390  773  326   ! !   ! 
16400  774  327   ! !   !  
\f

lst         81.05.05.   10.26.                                                    page    24

17010  775  328   ! !   ! timeransw:
17020  776  329   ! !   !   BEGIN
17030  777  330   ! !   !   ! IF time > 0 THEN time:= time-1;
17040  778  331   ! !   !   ! IF time = 0 THEN
17050  779  332   ! !   !   !     (*  timeout   *)
17060  780  333   ! !   !   !   CASE xstate OF
17070  781  334   ! !   !   !   ! 
17080  782  335   ! !   !   !   ! connec:
17090  783  336   ! !   !   !   !   BEGIN
17100  784  337   ! !   !   !   !   ! tn:= tn+1;
17110  785  338   ! !   !   !   !   ! IF tn >= n2 THEN
17120  786  339   ! !   !   !   !   !   BEGIN
17130  787  340   ! !   !   !   !   !   ! event ( 11);
17140  788  341   ! !   !   !   !   !   ! tn:= 1;
17150  789  342   ! !   !   !   !   !   END;
17160  790  343   ! !   !   !   !   ! trans ( enq);
17170  791  344   ! !   !   !   !   END;
17180  792  345   ! !   !   !   ! 
17190  793  346   ! !   !   !   ! wack:
17200  794  347   ! !   !   !   !   BEGIN
17210  795  348   ! !   !   !   !   ! tn:= 1;
17220  796  349   ! !   !   !   !   ! trans ( enq);
17230  797  350   ! !   !   !   !   ! count ( stc.ack_times);
17240  798  351   ! !   !   !   !   ! xstate:= wrep;
17250  799  352   ! !   !   !   !   END;
17260  800  353   ! !   !   !   ! 
17270  801  354   ! !   !   !   ! wrep:
17280  802  355   ! !   !   !   !   BEGIN
17290  803  356   ! !   !   !   !   ! tn:= tn+1;
17300  804  357   ! !   !   !   !   ! count ( stc.rec_rej);
17310  805  358   ! !   !   !   !   ! IF tn >= n2 THEN give_up ( trouble)
17320  806  359   ! !   !   !   !   ! ELSE trans ( enq);
17330  807  360   ! !   !   !   !   END
17340  808  361   ! !   !   !   !   
17350  809  362   ! !   !   !   !   OTHERWISE
17360  810  363   ! !   !   !   !   time:= -1;
17370  811  364   ! !   !   !   ! 
17380  812  365   ! !   !   !   END;  (*  timeout  *)
17390  813  366   ! !   !   ! 
17400  814  367   ! !   !   ! m^.u3:= timeru3;   m^.u4:= timeru4;
17410  815  368   ! !   !   ! sendtimer ( m);
17420  816  369   ! !   !   END;  (*  timer  *)
17430  817  370   ! !   ! 
17440  818  371   ! !   ! OTHERWISE              (*  unknown answer    *)
17450  819  372   ! !   ! IF st.lambits = func THEN  release ( m)
17460  820  373   ! !   ! ELSE return ( m);
\f

lst         81.05.05.   10.26.                                                    page    25

17470  821  374   ! !   ! st.lambits:= func;
17480  822  375   ! !   ! event ( 5);
17490  823  376   ! !   END;   (*  handling of arriving message    *)
17500  824  377   ! !  
\f

lst         81.05.05.   10.26.                                                    page    26

18010  825  378   ! ! 
18020  826  379   ! ! 
18030  827  380   ! !   (*   xmt  if requested     *)
18040  828  381   ! ! 
18050  829  382   ! ! IF NOT nil ( mx) THEN
18060  830  383   ! !   BEGIN
18070  831  384   ! !   ! IF vi > 0 THEN
18080  832  385   ! !   !   BEGIN
18090  833  386   ! !   !   ! mx^.u2:= port;
18100  834  387   ! !   !   ! mx^.u3:= vcodes(1);
18110  835  388   ! !   !   ! signal ( mx, lamsem^);
18120  836  389   ! !   !   ! FOR i:= 2 TO vi DO vcodes(i-1):= vcodes(i);
18130  837  390   ! !   !   ! vi:= vi-1;
18140  838  391   ! !   !   END  ELSE
18150  839  392   ! !   !   
18160  840  393   ! !   !   IF (retrans) AND (NOT nil ( pending)) THEN
18170  841  394   ! !   !     BEGIN
18180  842  395   ! !   !     ! transdata;
18190  843  396   ! !   !     ! count ( stc.retrans);
18200  844  397   ! !   !     ! retrans:= false;
18210  845  398   ! !   !     END  ELSE
18220  846  399   ! !   !     
18230  847  400   ! !   !     IF (nil ( pending)) AND ( xstate < wack ) THEN    (*  xmt next block   *)
18240  848  401   ! !   !       BEGIN
18250  849  402   ! !   !       ! i:= 7;
18260  850  403   ! !   !       ! WHILE passive ( priq1(i)) DO i:= i-1;
18270  851  404   ! !   !       ! IF i> -1 THEN
18280  852  405   ! !   !       !   BEGIN
18290  853  406   ! !   !       !   ! wait ( pending, priq1(i));
18300  854  407   ! !   !       !   ! IF xstate = idle THEN        (*  xmit   *)
18310  855  408   ! !   !       !   !   BEGIN
18320  856  409   ! !   !       !   !   ! block_no:= data_0 + data_1 - block_no;
18330  857  410   ! !   !       !   !   ! transdata;
18340  858  411   ! !   !       !   !   ! count ( stc.trans);
18350  859  412   ! !   !       !   !   END  ELSE
18360  860  413   ! !   !       !   !   give_up ( down);               (*  if line down   *)
18370  861  414   ! !   !       !   END
18380  862  415   ! !   !       END
18390  863  416   ! !   END   (*  mx unused    *)
18400  864  417   ! !   
18410  865  418   ! UNTIL false
18420  866  419   ! 
18430  867  420   END .   (*  of alc  program   *)
\f

lst         81.05.05.   10.26.                                                    page    27

           0   12*   15*   18*   19*   19*   20*   21*   22*   31*   33*   51*   53*   79*   84*   84*
               86*   86*   86*   86*   86*   86*   86*   86*   86*   86*   86*   86*   86*   86*   86*
               87*   87*   87*   87*   87*   87*   87*   87*   87*   87*   92*  110*  111*  111*  111*
              112*  112*  113*  123*  141*  142*  144*  166*  168*  195   262   265   280   395*  433 
              454   454   454   463   536   558   576   598   628   628   629   637   661   671:  676 
              684   690   711   721   741   743   752   770   777   778   831 
           1   22*   52*   93*   94*  102*  104*  110*  121*  143*  151*  152*  168*  169*  227   281 
              292   391   409   419   432   435   436   458   459   463   534   588   603   614   614 
              634   641   673:  749   777   784   788   795   803   810   834   836   837   850   851 
           2   82*   90*  110*  122*  296   432   490   496   496   680:  836 
           3    8*   21*  110*  111*  112*  113*  150*  356   437   688:
           4  112*  124*  157*  337   617   699:
           5   51*   99*  113*  158*  259   629   703:  822 
           6   52*   87*  113*  116*  169*  293   470   708:
           7   19*   53*  110*  111*  112*  113*  115*  152*  471   576   656   714:  849 
           8   94*  125*  259   261   417   426   437   497 
           9  267   519 
          10   95*  295   519 
          11  364   489   787 
          12  126*  369   664   740 
          13  599   638 
          14  601   753   770 
          15   20*   79*  427   437   600   602 
          16  127*  146*  419   740 
          19  101*
          21  100*
          24  128*  157*
          26   96*
          28  103*  129*
          32   84*   84*  130*
          36  131*
          40  132*
          44  133*
          48  134*
          56  559 
          63   18*
          64   84*  265   266 
          96   84*  157*  263 
          99   97*
         128  490   490 
         250   89*
         255   12*   15*   33*  395*
         256  245   490   490 
         300    6*    7*
\f

lst         81.05.05.   10.26.                                                    page    28

        8191   19*
a              12*  395*  402 
ackn           75*  649 
ack_0         101*  102*  105*  648:
ack_1         102*  649:
ack_times      65*  797 
action        163*  661=  662=  664   669   740 
actiontable   107*  662 
actiontabletype                                                  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
               77*  108*
alc             1*
alc_control   157*  245   549=
alc_time      158*  245   550=
alloc         456   458   461   465   467   476 
answ          193*  380   521   535   552   562   591 
answer        204*  497   558   559   729 
answer_stat   377*  540   543 
arow           76*   77*  110*  111*  112*  113*
array6         52*   71*   87*
array8         53*
as            244:  379:  388:  468:  513:  547:
asgnbit       175*  597 
asgnintset    175*  186*  260 
at             33*  402=
auto          139*  362   515:  518=  518 
b             388:  389=  391 
bit           175*
block_no      166*  317   321   450=  682=  700   704   856=  856 
block_ok      331*  700   704 
boolean        79*  139*  140*  515 
bstate        141*  219   226   227=  227   641=  641   642   664 
buf           379:  379=  468:  470   471   547:  549   550 
byte            4*   11*   21*   26*   34*   51*   69*   76*  157*  158*  166*  169*  204*  287*  348*
              395*  547 
bytes6         51*   84*
c              12*  395*  402 
cause          15*  178*  182*  348*  350   412*  417   419   419   422*  425   426 
ci             22*   67*  260   632   748 
cmd            15*
cmdrinf        15*   17*
cnt            15*
codediff      105*  682   693   700   704 
commandfield   11*   12*   15*
conansw       119*  457   767:
\f

lst         81.05.05.   10.26.                                                    page    29

connec         74*   77*  361   366   525   661   782:
connectmess   124*  511:
copytest      386*  399   433   600   606 
count         262   265   266   291   352   631   695   717   747   797   804   843   858 
create_channel                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              240*  526 
create_it_ch  119*
ct             34*  402=
ctr           547:  549 
d              31*  186*  401 
data           75*  652   726 
data_0        103*  104*  105*  229   651:  757   856 
data_1        104*  450   652:  856 
dcd            66*  266 
discon         74*  219   370   451   533   586   728 
disconnectmess                                                   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              125*  531:
discp          97*  426 
down           93*  572   580   729   860 
dsr            66*  265 
dtr            22*
enq            99*  647:  790   796   806 
enqu           75*  647 
errortype      18*
event         182*  267   295   337   356   364   369   412*  427   436   534   588   614   638   656 
              676   684   711   721   753   770   787   822 
eventlost     143*  419   419=  419=  435   436   436=  614   614   614=
eventmess     132*  435   611:
eventqueue    149*  415   416   436   613 
exception     178*  422*
external      175*  187*
f              21*
false         139*  146*  439   503   844   865 
fh             13*
first          13*   14*   16*   17*   30*  245=  390   390   400   454=  470=  514:  605 
flag           79*  146*  146*  175*
framehead      12*   13*   14*
framepool     151*  456   467   727 
func          161*  486=  622   819   821 
fut            71*  262 
getresult     255*  626   738 
give_up       348*  805   860 
h             244:  245   513:  518   518   518   518   519 
h0             20*
\f

lst         81.05.05.   10.26.                                                    page    30

h1             20*
h2             20*
h3             20*
headbuf        13*  151*  244   468 
headbuf1       14*
headpool      150*  458   461   465   476 
hxtype         20*
i             144*  261=  262   262   495=  496   496=  497   576=  577   579   836=  836   836   849=
              850   850=  850   851   853 
id            516:  518 
idle           74*  267   341   523   558   675   683   718   720   854 
inf            17*
input         155*  647=  649=  650=  652=  653=  657=  662   726 
inputmess     121*  500:
inputtype      75*   76*  155*
integer        13*   14*   16*   17*   30*   32*   52*   53*   56*   60*   67*   70*  141*  142*  143*
              144*  175*  178*  182*  186*  395*  412*  422*  514   516 
ique          149*  221   502   569   571   730 
j             144*
k             144*  516:  518=  518 
l             144*  463=  465   466   518=
lambits        26*  258=  819   821=
lamsem          3*  230   248   303   319   835 
last           13*   14*   16*   17*   30*  390=  391   391=  400=  454=  471=  514:  605 
lastack       160*  449=  693=  694   716 
last_rec       68*  644=
last_xmt       69*  305=  321=
linespeedmess                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              131*  556:
lock          244:  379:  388:  468:  513:  547:
m             147*  195   196   197   206   207   208   257   258   259   261   379:  386*  388:  458 
              459   467   468:  473   476   477   477   477   477   477   478   485   486   487   490 
              490   491   502   509   509   513:  547:  584   597   598   598   600   603   603   603 
              606   606   607   608   613   617   617   617   628   628   629   642   690   691   692 
              727   727   730   740   741   756   759   769   814   814   815   819   820 
maxinputs      82*  150*  151*  168*  219   463 
mc            147*  242   244:  246   248   456   457   769=  770 
message       115*  431   487 
minbuf         17*
modemmess     128*  562:
modemtype      21*
modem_state   164*  259=  263   265   266   497 
mr            168*  226   465   466   642 
mstate        140*  223   365=  503=  522=  587=  728 
\f

lst         81.05.05.   10.26.                                                    page    31

mw            147*  399   399   399   416   417   417   418   571   572   573   574   579   580   581 
              582 
mx            147*  289   301   302   303   316   317   318   461   462   756   757   829   833   834 
              835 
n             395*  402 
n2            144*  516:  518=  518   635   750   785   805 
na1            56*
na2            56*
na3            56*
next           13*   14*   16*   17*   30*  390=  391   397   400=  401   409=  409   454=  514:
nons           75*  653   657 
nonsens        96*  627   653:
notused        19*   21*
nt             32*  402=
op             14*
open          398   415   569   577   602 
opk           162*  490   627=  628=  644   646   664   682   693   700   704 
ord           495 
otest         395*  426   490   664   740 
outputmess    122*  509:
ownertest     727 
p              19*
passive       850 
pending       147*  276   277   278   318   319   334   353   759=  840   847   853 
pntbuf         16*
pnttype        19*
pool          150*  151*
pop           642   756 
port            4*  196   207   228   246   277   301   316   417   433   437   573   581   598   617 
              691   833 
priq1         152*  458   459   509   577   579   850   853 
process         1*
push          226   318 
r             423*  429   430   433   433   436   437   438 
rate           22*
readlam       214*  506   643   731   762 
read_it       117*
recansw       117*  466   624:
recerr         70*  142*  628=  629=  631   634=  634   635   637=
recnu          57*
recs           57*  695 
recsize         6*
rec_rej        63*  717   804 
rec_rnr        61*  632=
\f

lst         81.05.05.   10.26.                                                    page    32

reference     147*  168*  216*  386*  423*
release       438   819 
release_buf   274*  342   358   760 
res            26*  204*  206   257=
rese           75*  650 
reset         100*  449   650:
result        165*  276   279=  323=  333=  350=  452=  760 
retrans        60*  139*  705=  710=  840   843   844=
retrnu         60*
return        197   208   278   399   418   433   437   473   574   582   603   606   608   617   692 
              727   820 
returnallmess                                                    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              126*  566:  584 
returnunusedmess                                                 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
              127*  567:
rts            22*
rxe            22*
s             186*  456   461   465   476 
sem             2*  429   456   461   465   476   485 
semaphore     149*  152*
sempointer      3*
sendtimer     478   815 
send_ok        92*  333 
sensemess     123*  493:
sensesem      221   223 
setspeedmess  134*  545:
signal        230   248   303   319   436   459   502   509   607   613   730   835 
skipnu         59*
skips          59*  352 
small         149*  223   467 
sqd            66*
st            145*  257   258   260   402   819   821 
statclrmess   130*  542:
statetype      74*  154*
statistics     55*   85*  171*  379 
statmess      129*  540:
status         25*   35*  145*  186*
stc           171*  260   262   265   266   291   305   321   352   379   543=  631   632   632   644 
              695   717   747   748   748   797   804   843   858 
stt            35*  402=
t             141*
t1            144*  516:  519 
t2            144*  306   322   359   519=  527   589 
test          140*  489   599=  663   739 
\f

lst         81.05.05.   10.26.                                                    page    33

test1         140*
testbit       146*  489   597   599   600   601   602   664   740 
testbuf       148*  389   390   397   401   401   409   454   604 
testmax         8*   31*  391   397   400 
testmess      133*  432   595:
testsem       149*  398   399   602   603   607 
testtype       29*  148*  388 
tim           547:  550 
time          141*  281=  306=  322=  359=  402   527=  777   777=  777   778   810=
timeransw     116*  477   775:
timeru3        89*  477   814 
timeru4        90*  477   814 
tn            141*  280=  536=  589=  784=  784   785   788=  795=  803=  803   805 
trace         425 
trans          58*  287*  694   716   790   796   806   858 
transcode     287*  298   302   305 
transdata     313*  842   857 
tranu          58*
trouble        94*  805 
true          140*  365   522   587   705   710 
ts_pointer      2*
tt             32*  402=
txe            22*
u1            432   435   457=  462=  466=  477=  477   486   490   491   584 
u2            195=  206=  228=  246=  257   261   276=  301=  316=  417=  431   433=  437=  477=  487 
              572=  580=  598=  603=  617=  628   629   690=  741   770   833=
u3            196=  207=  229=  277=  302=  317=  417=  432   433=  437=  477=  490   509   573=  581=
              597   598=  617=  628   691=  740   757   814=  834=
u4            258   259   477=  814=
um            216*  221   222   223   224   226   228   229   230 
v24            84*  259 
vcodes        169*  298=  834   836=  836 
vi            141*  292=  292   293   296=  298   831   836   837=  837 
vs            141*
w             175*  429   485 
wack           74*  324   793:  847 
wait          399   416   429   485   571   579   603   853 
waiting        95*  279   323   452   760 
wrep           74*   77*  798   801:
write_it      118*
xmtansw       118*  462   736:
xmterr         70*  142*  743=  747   749=  749   750   752=
xmtsize         7*
xmt_rej        64*  291 
\f

lst         81.05.05.   10.26.                                                    page    34

xmt_rnr        62*  748=
xstate        154*  219   267   324=  341=  361   366=  370=  451=  495   523   525=  533=  558   586=
              661   662   675=  683=  718   720=  728   780   798=  847   854 
ystate        141*
zeroes         85*  171*  543 
\f

lst         81.05.05.   10.26.                                                    page    35

AND                7
ARRAY             10
BEGIN             89
CASE               5
CONST              2
DIV                3
DO                21
DOWNTO             1
ELSE              27
END              109
FOR                3
FORWARD            2
IF                66
MOD                3
NIL                9
NOT                4
OF                16
OTHERWISE          4
PACKED             7
PROCEDURE         19
RECORD            15
REPEAT             2
THEN              66
TO                 2
TYPE               1
UNTIL              2
VAR                8
WHILE              4
WITH               8
 pascal
81.05.05.      10.26.                         pascal80     version 1981.04.01


   name        headline beginline endline  appetite(words) 

   answ           194       195     197  :       5            
   answer         205       206     208  :       5            
   readlam        216       220     234  :      10            
   create_chann   241       243     250  :       8            
   getresult      256       257     269  :      13            
   release_buf    275       276     282  :       5            
   trans          288       290     308  :      11            
   transdata      314       316     325  :       5            
   block_ok       332       333     344  :      10            
   give_up        349       350     372  :      11            
   answer_stat    378       379     381  :      10            
   copytest       387       388     393  :       9            
   otest          396       398     410  :      12            
   event          413       415     420  :       6            
   exception      423       425     440  :      18            
   alc              6       449     867  :     247            

 code: 0 . 6560  = 6560 bytes


end of PASCAL80 compilation 

end
blocksread = 52
▶EOF◀