home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / vol_300 / 349_01 / sss.arc / EX_0407.BAS < prev    next >
BASIC Source File  |  1991-04-16  |  2KB  |  117 lines

  1. ' Program EX_0407.BAS
  2. ' Listing 8B - see documentation in TUTOR.SSS
  3.  
  4. const ARRIVL = 1, STARTA = 2, ENDACT = 3, NEXTAC = 4
  5. const STRTDY = 5
  6. const CLOSES = 0, WATCH = 1
  7. const FALSE = 0, TRUE = not FALSE
  8.  
  9. common shared ecode, opens, repars, n, r, d
  10. common shared inter, rept
  11.  
  12. declare sub prime ()
  13. declare sub clshop ()
  14. declare sub box ()
  15. declare sub newday ()
  16.  
  17. rem $include: 'SSSB.H'
  18.  
  19.   call prime
  20.  
  21.   do
  22.     ecode = NEXTEV
  23.     if ecode > 0 then
  24.       select case ecode
  25.  
  26.       case ARRIVL
  27.              if IDE = WATCH then
  28.                CREATE EX(inter), WATCH
  29.                SCHED 0, NEXTAC, WATCH
  30.              else
  31.                SCHED .5, STRTDY, CLOSES
  32.                clshop
  33.              end if
  34.  
  35.       case NEXTAC
  36.              if opens then
  37.                r = r + 1
  38.                TALLY 2, r
  39.                if repars then
  40.                  DISPOS
  41.                else
  42.                  SCHED 0, STARTA, IDE
  43.                end if
  44.              else
  45.                box
  46.              end if
  47.  
  48.       case STARTA
  49.              SCHED EX(rept), ENDACT, 0
  50.              r = r - 1
  51.              TALLY 2, r
  52.              repars = TRUE
  53.  
  54.       case ENDACT
  55.              d = d + 1
  56.              TALLY 3, d
  57.              if r > 0 then
  58.                SCHED 0, STARTA, 0
  59.              else
  60.                DISPOS
  61.                repars = FALSE
  62.              end if
  63.  
  64.       case STRTDY
  65.              newday
  66.  
  67.       end select
  68.     end if
  69.   loop while ecode > 0
  70.  
  71.   title$ = "  "
  72.   SUMRY sadd(title$)
  73.  
  74. sub box
  75.   DISPOS
  76.   n = n + 1
  77.   TALLY 1, n
  78. end sub
  79.  
  80. sub clshop
  81.   opens = FALSE
  82.   d = 0
  83.   TALLY 3, d
  84. end sub
  85.  
  86. sub newday
  87.   CREATE .5, CLOSES
  88.   DISPOS
  89.   opens = TRUE
  90.   repars = FALSE
  91.   r = r + n
  92.   TALLY 2, r
  93.   n = 0
  94.   TALLY 1, n
  95. end sub
  96.  
  97. sub prime
  98.   INIQUE 0, 0, 3
  99.   title$ = "Night                  "
  100.   INISTA 1, sadd(title$), 1, 0, 0, 0
  101.   title$ = "W f repair             "
  102.   INISTA 2, sadd(title$), 1, 0, 0, 0
  103.   title$ = "W f delivery           "
  104.   INISTA 3, sadd(title$), 1, 0, 0, 0
  105.   CREATE 0, WATCH
  106.   CREATE .5, CLOSES
  107.   SIMEND 10!
  108.   n = 0
  109.   r = 0
  110.   d = 0
  111.   opens = TRUE
  112.   repars = FALSE
  113.   inter = 7 / 25
  114.   rept = 2 / 24
  115. end sub
  116.  
  117.