DataMuseum.dk

Presents historical artifacts from the history of:

RC3500

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

See our Wiki for more about RC3500

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦59012a79e⟧ TextFileVerbose

    Length: 11520 (0x2d00)
    Types: TextFileVerbose
    Names: »konsollst«

Derivation

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

TextFileVerbose

\f

konsollst   81.03.09.   10.03.                                                    page     1

   10    1           
\f

konsollst   81.03.09.   10.03.                                                    page     2

 1010    2          
 1020    3        PROCESS konsol (
 1030    4          VAR main : !ts_pointer;           (*  main semaphore   *)
 1040    5          VAR driv : !sempointer            (*  lam driver       *)
 1050    6          );
 1060    7          
 1070    8        CONST
 1080    9          
 1090   10          version = "vers 0.00  / ";
 1100   11          
 1110   12        TYPE
 1120   13          
 1130   14          ttybuffer = RECORD
 1140   15                      !  first, last, next : integer;
 1150   16                      !  text : ARRAY (1..80) OF byte;
 1160   17                      END;
 1170   18          
 1180   19          atbuffer = RECORD
 1190   20                     !  b0, b1 : byte
 1200   21                     END;
 1210   22          
 1220   23          ttyzone = RECORD
 1230   24                    !  free : semaphore;
 1240   25                    !  cur : reference;
 1250   26                    !  next, top : integer
 1260   27                    END;
 1270   28          
 1280   29          
 1290   30        CONST
 1300   31          
 1310   32          end_of_line = 10;
 1320   33          ibufs = 1;
 1330   34          obufs = 2;
 1340   35          book = #hc3;
 1350   36          
 1360   37           
\f

konsollst   81.03.09.   10.03.                                                    page     3

 2010   38          
 2020   39        VAR
 2030   40          inchn,          (*  input kanal nr  *)
 2040   41          outchn: byte:=16;   (*  output kanal nr  *)
 2050   42          h: integer;
 2060   43          data0,
 2070   44          data1: byte;        (*  from debug cable  *)
 2080   45          msg : reference;
 2090   46          ipool : pool ibufs OF atbuffer;
 2100   47          opool : pool obufs OF ttybuffer;
 2110   48          tty : ttyzone;
 2120   49          
 2130   50           
\f

konsollst   81.03.09.   10.03.                                                    page     4

 3010   51          
 3020   52          PROCEDURE openfile (
 3030   53            VAR f: ttyzone;
 3040   54            bufs : integer;
 3050   55            VAR reso: pool 1;
 3060   56            v1: byte
 3070   57            );
 3080   58          BEGIN
 3090   59    1     ! WITH f DO
 3100   60    2     !   BEGIN
 3110   61    3     !   ! WHILE bufs > 0 DO
 3120   62    4     !   !   BEGIN
 3130   63    5     !   !   ! alloc ( cur, reso, free);
 3140   64    6     !   !   ! cur^.u1:= v1;
 3150   65    7     !   !   ! cur^.u3:= lam_route;
 3160   66    8     !   !   ! cur^.u4:= #h40 + v1;
 3170   67    9     !   !   ! signal ( cur, free);
 3180   68   10     !   !   ! bufs:= bufs-1
 3190   69   11     !   !   END
 3200   70   12     !   END
 3210   71   13     END;
 3220   72          
 3230   73           
\f

konsollst   81.03.09.   10.03.                                                    page     5

 4010   74          
 4020   75          PROCEDURE outblock ( VAR f: ttyzone);
 4030   76          BEGIN
 4040   77    1     ! WITH f DO
 4050   78    2     !   BEGIN
 4060   79    3     !   ! LOCK cur AS buf: ttybuffer DO
 4070   80    4     !   !   BEGIN
 4080   81    5     !   !   ! buf.first:= 1;
 4090   82    6     !   !   ! buf.last:= next-1
 4100   83    7     !   !   END;
 4110   84    8     !   ! cur^.u2:= outchn;         (*  channel no   *)
 4120   85    9     !   ! signal ( cur, driv^)
 4130   86   10     !   END;
 4140   87   11     END;
 4150   88          
 4160   89          
 4170   90          
 4180   91          
 4190   92          
 4200   93          PROCEDURE printchar ( VAR f: ttyzone;  ch: byte );
 4210   94          BEGIN
 4220   95    1     ! WITH f DO
 4230   96    2     !   BEGIN
 4240   97    3     !   ! 
 4250   98    4     !   ! IF nil ( cur) THEN      (*  get a new free buffer  *)
 4260   99    5     !   !   BEGIN
 4270  100    6     !   !   ! wait ( cur, free);
 4280  101    7     !   !   ! next:= 1;
 4290  102    8     !   !   END;
 4300  103    9     !   ! 
 4310  104   10     !   ! LOCK cur AS buf: ttybuffer DO  buf.text(next):= ch;
 4320  105   11     !   ! next:= next+1;
 4330  106   12     !   ! IF ( next > top ) OR
 4340  107   13     !   !   ( ch = end_of_line ) THEN outblock ( f);
 4350  108   14     !   END
 4360  109   15     END;
 4370  110          
 4380  111          
 4390  112          
 4400  113           
\f

konsollst   81.03.09.   10.03.                                                    page     6

 5010  114            (*------------------------- main program ---------------------------*)
 5020  115          
 5030  116        BEGIN
 5040  117    1   ! 
 5050  118    2   ! openfile ( tty, obufs, opool, write_tty );
 5060  119    3   ! 
 5070  120    4   ! inchn:= 16;
 5080  121    5   ! REPEAT
 5090  122    6   ! ! wait ( msg, main.w^);
 5100  123    7   ! ! IF msg^.u4 = book THEN
 5110  124    8   ! !   LOCK msg AS at: atbuffer DO
 5120  125    9   ! !     BEGIN
 5130  126   10   ! !     ! inchn:= at.b0 MOD 16;
 5140  127   11   ! !     ! outchn:= at.b1 MOD 16;
 5150  128   12   ! !     END;
 5160  129   13   ! ! return ( msg)
 5170  130   14   ! UNTIL inchn < 16;
 5180  131   15   ! 
 5190  132   16   ! FOR h:= 1 TO ibufs DO
 5200  133   17   !   BEGIN
 5210  134   18   !   ! alloc ( msg, ipool, main.s^);
 5220  135   19   !   ! msg^.u1:= read_at;
 5230  136   20   !   ! msg^.u3:= lam_route;
 5240  137   21   !   ! msg^.u4:= #h40 + read_at;
 5250  138   22   !   ! signal ( msg, driv^);
 5260  139   23   !   END;
 5270  140   24   ! 
 5280  141   25   !  
\f

konsollst   81.03.09.   10.03.                                                    page     7

 6010  142   26   ! 
 6020  143   27   !   (*------ main loop ------------*)
 6030  144   28   ! 
 6040  145   29   ! REPEAT
 6050  146   30   ! ! wait ( msg, main.w^);
 6060  147   31   ! ! CASE msg^.u3 OF
 6070  148   32   ! ! ! 
 6080  149   33   ! ! ! lam_route:
 6090  150   34   ! ! !   BEGIN
 6100  151   35   ! ! !   ! LOCK msg AS at: atbuffer DO
 6110  152   36   ! ! !   !   BEGIN
 6120  153   37   ! ! !   !   ! data0:= at.b0;
 6130  154   38   ! ! !   !   ! data1:= at.b1;
 6140  155   39   ! ! !   !   END;
 6150  156   40   ! ! !   ! msg^.u2:= inchn;
 6160  157   41   ! ! !   ! signal ( msg, driv^);
 6170  158   42   ! ! !   ! printchar ( tty, data0);
 6180  159   43   ! ! !   ! printchar ( tty, data1);
 6190  160   44   ! ! !   END
 6200  161   45   ! ! !   OTHERWISE
 6210  162   46   ! ! !   BEGIN
 6220  163   47   ! ! !   ! IF msg^.u4 = book THEN
 6230  164   48   ! ! !   !   LOCK msg AS at: atbuffer DO
 6240  165   49   ! ! !   !     BEGIN
 6250  166   50   ! ! !   !     ! inchn:= at.b0 MOD 16;
 6260  167   51   ! ! !   !     ! outchn:= at.b1 MOD 16;
 6270  168   52   ! ! !   !     END;
 6280  169   53   ! ! !   ! return ( msg)
 6290  170   54   ! ! !   END
 6300  171   55   ! ! !   
 6310  172   56   ! ! END  (* case  *)
 6320  173   57   ! ! 
 6330  174   58   ! UNTIL false
 6340  175   59   ! 
 6350  176   60   END  .  (*  of konsol converter    *)
 6360  177        
 6370  178        
 6380  179        
\f

konsollst   81.03.09.   10.03.                                                    page     8

           0   61 
           1   16*   33*   55*   68    81    82   101   105   132 
           2   34*
          10   32*
          16   41*  120   126   127   130   166   167 
          80   16*
alloc          63   134 
as             79:  104:  124:  151:  164:
at            124:  126   127   151:  153   154   164:  166   167 
atbuffer       19*   46*  124   151   164 
b0             20*  126   153   166 
b1             20*  127   154   167 
book           35*  123   163 
buf            79:   81    82   104:  104 
bufs           54*   61    68=   68 
byte           16*   20*   41*   44*   56*   93*
ch             93*  104   107 
cur            25*   63    64    65    66    67    79:   84    85    98   100   104:
data0          43*  153=  158 
data1          44*  154=  159 
driv            5*   85   138   157 
end_of_line    32*  107 
f              53*   59    75*   77    93*   95   107 
false         174 
first          15*   81=
free           24*   63    67   100 
h              42*  132=
h40            66   137 
hc3            35*
ibufs          33*   46*  132 
inchn          40*  120=  126=  130   156   166=
integer        15*   26*   42*   54*
ipool          46*  134 
konsol          3*
lam_route      65   136   149:
last           15*   82=
lock           79:  104:  124:  151:  164:
main            4*  122   134   146 
msg            45*  122   123   124:  129   134   135   136   137   138   146   147   151:  156   157 
              163   164:  169 
next           15*   26*   82   101=  104   105=  105   106 
obufs          34*   47*  118 
openfile       52*  118 
opool          47*  118 
\f

konsollst   81.03.09.   10.03.                                                    page     9

outblock       75*  107 
outchn         41*   84   127=  167=
pool           46*   47*   55*
printchar      93*  158   159 
process         3*
read_at       135   137 
reference      25*   45*
reso           55*   63 
return        129   169 
s             134 
semaphore      24*
sempointer      5*
signal         67    85   138   157 
text           16*  104=
top            26*  106 
ts_pointer      4*
tty            48*  118   158   159 
ttybuffer      14*   47*   79   104 
ttyzone        23*   48*   53*   75*   93*
u1             64=  135=
u2             84=  156=
u3             65=  136=  147 
u4             66=  123   137=  163 
v1             56*   64    66 
version        10*
w             122   146 
wait          100   122   146 
write_tty     118 
\f

konsollst   81.03.09.   10.03.                                                    page    10

ARRAY              1
BEGIN             16
CASE               1
CONST              2
DO                10
END               20
FOR                1
IF                 4
MOD                4
NIL                1
OF                 4
OR                 1
OTHERWISE          1
PROCEDURE          3
RECORD             3
REPEAT             2
THEN               4
TO                 1
TYPE               1
UNTIL              2
VAR                7
WHILE              1
WITH               3
 konsol
81.03.09.      10.03.                         pascal80     version 1981.02.09


   name        headline beginline endline  appetite(words)

   openfile        56        61      71  :      14
   outblock        75        79      87  :       8
   printchar       93        99     109  :      12
   konsol           8       118     176  :      99

 code: 1 . 234  = 1234 bytes


end of PASCAL80 compilation 

end
blocksread = 53
«eof»