<<================================================>>                    00005000
<<                                                >>                    00010000
<<                 incltrl - g0                   >>                    00015000
<<                                                >>                    00020000
<<================================================>>                    00025000
                                                                        00030000
                                                                        00035000
$if x8=on                                                               00040000
                                                                        00045000
comment:                                                                00050000
           timer request list (trl) for mpe v                           00055000
           ----------------------------------                           00060000
                                                                        00065000
                                                                        00070000
the system clock interrupts every 100 ms, with the cr being             00075000
automatically cleared.  an exception is the shared clock                00080000
interface measurement service which allows rates as fast as 5 ms.       00085000
the interrupt handler is the procedure tick.  on entry, db is           00090000
pointing to the base of timer request list.  besides timeout            00095000
requests, the clock also controls time slicing.                         00100000
                                                                        00105000
                                                                        00110000
        -------------------------------|                                00115000
    / 0|       number of entries       |                                00120000
    |  |-------------------------------|                                00125000
    | 1|        entry size (4)         |                                00130000
ent0|  |-------------------------------|                                00135000
    | 2|        free list ptr          |                                00140000
    |  |-------------------------------|                                00145000
    \ 3|  # of days since last start   |  series 30/33 only             00150000
       |-------------------------------|                                00155000
    / 4|        quantum/100 ms         |  qtime                         00160000
    |  |-------------------------------|                                00165000
    | 5|                               |                                00170000
    |  |          time of day*         |  dtime*                        00175000
ent1| 6|                               |                                00180000
    |  |-------------------------------|                                00185000
    \ 7|     year      |  julian day   |                                00190000
       |-------------------------------|                                00195000
    / 8|  ptr to most active request   |  head                          00200000
    |  |-------------------------------|                                00205000
    | 9|          trace word           |                                00210000
ent2|  |-------------------------------|                                00215000
    |10|               0               |                                00220000
    |  |                               |  dummy time                    00225000
    \11|               0               |  ----------                    00230000
       |-------------------------------|       |                        00235000
    /12|a|   code   | entry # of next  |       |                        00240000
    |  |-------------------------------|       |                        00245000
    |13|              req              |       |                        00250000
ent3|  |-------------------------------|  assignable                    00255000
    |14|     time to service after     |  entries                       00260000
    |  |                               |       |                        00265000
    \15| request in front (unit= 100ms)|       |                        00270000
       |-------------------------------|       |                        00275000
       |                               |       |                        00280000
       |                               |       |                        00285000
     a:  0 if inactive request            ----------                    00290000
         1 if active request                                            00295000
                                                                        00300000
trl (cont.)                                                             00305000
---                                                                     00310000
                                                                        00315000
                                                                        00320000
code & req indicate the type of request.                                00325000
     code:        req:                 type:                            00330000
       0          ditp                 hangup                           00335000
       1          ditp                 carrier failure                  00340000
       2          ditp                 202 turnaround                   00345000
       3          ditp                 read                             00350000
       4          ditp                 logon                            00355000
       5          pcbb index           delay                            00360000
                  to process                                            00365000
       6          ditp                 lp not ready                     00370000
       7          ditp                 2640                             00375000
     %10          port mask            msg port timeout                 00380000
     %11          ditp                 block mode read                  00385000
                                       timeout (30 secs)                00390000
     %12          pcbb index           watchdog timer for               00395000
                  to process           process                          00400000
                                                                        00405000
                                                                        00410000
the list of pending requests is kept ordered by time with later         00415000
entries at the tail.                                                    00420000
                                                                        00425000
    %20-%37       ditp                 sio device timeout:              00430000
                                       dit8.  (code_1 on                00435000
                                       expiration, cleared              00440000
                                       on timereq.                      00445000
                                                                        00450000
    %5/%6        *dtime                for series 30/33, dtime is       00455000
                                       # of tics (0.091457 ms)          00460000
                                       since last midnight.             00465000
                                                                        00470000
                                                                        00475000
;                                                                       00480000
$if                                                                     00485000
<<definitions for timer request list>>                                  00490000
                                                                        00495000
integer pointer                                                         00500000
   trl              = %12;                                              00505000
                                                                        00510000
equate                                                                  00515000
   trldst           = %23;                                              00520000
                                                                        00525000
define                                                                  00530000
   trlnumentries    = trl(0)#,                                          00535000
   trlentrysize     = trl(1)#,                                          00540000
   trlfreelistp     = trl(2)#,                                          00545000
   trlnumdays       = trl(3)#,                                          00550000
   trlqtime         = trl(4)#,                                          00555000
   trldtime1        = trl(5)#,                                          00560000
   trldtime2        = trl(6)#,                                          00565000
   trldate          = trl(7)#,                                          00570000
   trlyear          = trl(7).(0:7)#,                                    00575000
   trljulianday     = trl(7).(7:9)#,                                    00580000
   trlactvrqhd      = trl(8)#,                                          00585000
   trltraceword     = trl(9)#;                                          00590000
                                                                        00595000
<<defines for assignable entries>>                                      00600000
                                                                        00605000
<<use trllink to access the pointer to next entry>>                     00610000
<<and trlptrnext to access the next entry>>                             00615000
                                                                        00620000
define                                                                  00625000
   trlactvrqflag    = trl(trlptr).(0:1)#,                               00630000
   trlcode          = trl(trlptr).(1:5)#,                               00635000
   trllink          = trl(trlptr).(6:10)#,                              00640000
   trlptrnext       = trllink*trlentrysize#,                            00645000
   trlrequest       = trl(trlptr+1)#,                                   00650000
   trlservtime1     = trl(trlptr+2)#,                                   00655000
   trlservtime2     = trl(trlptr+3)#;                                   00660000
                                                                        00665000
<<==============================================>>                      00670000
<<                                              >>                      00675000
<<            end of incltrl                    >>                      00680000
<<                                              >>                      00685000
<<==============================================>>                      00690000
