_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

QUEUES

FILE INFORMATION

FILENAME(S): QUEUES

FILE TYPE(S): PRG

FILE SIZE: 10.4K

FIRST SEEN: 2025-10-19 22:49:31

APPEARS ON: 1 disk(s)

FILE HASH

5d0ceb25eb888fad8edb1d3e0b9ad8c72afc45b850eb52eb5b5bcadeebb3d3a2

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
GOLD DISK 8 QUEUES PRG Radd Maxx 5 2 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

> DETECTED: COMMODORE BASIC PROGRAM (LOAD ADDRESS $0801)

00000000: 01 08 1D 08 01 00 8F 20  28 43 29 31 39 38 35 20  |....... (C)1985 |
00000010: 47 4F 4C 44 20 44 49 53  4B 20 49 4E 43 00 23 08  |GOLD DISK INC.#.|
00000020: 02 00 8F 00 30 08 03 00  8F 20 51 55 45 55 45 53  |....0.... QUEUES|
00000030: 00 36 08 04 00 8F 00 4A  08 05 00 97 20 35 33 32  |.6.....J.... 532|
00000040: 38 31 2C 30 3A 99 22 05  22 3B 00 50 08 06 00 8F  |81,0:.".";.P....|
00000050: 00 74 08 07 00 8F 20 20  44 45 46 49 4E 45 20 4E  |.t....  DEFINE N|
00000060: 45 43 43 45 53 53 41 52  59 20 46 55 4E 43 54 49  |ECCESSARY FUNCTI|
00000070: 4F 4E 53 3A 00 A5 08 08  00 8F 20 20 46 55 4E 43  |ONS:......  FUNC|
00000080: 54 49 4F 4E 20 54 4F 20  41 44 44 20 54 4F 20 54  |TION TO ADD TO T|
00000090: 48 45 20 43 49 52 43 55  4C 41 52 20 20 20 20 51  |HE CIRCULAR    Q|
000000A0: 55 45 55 45 3A 00 CA 08  09 00 96 20 A5 20 41 44  |UEUE:...... . AD|
000000B0: 44 28 58 29 B2 28 58 AA  31 29 AA 28 58 AA 31 B1  |D(X).(X.1).(X.1.|
000000C0: 4E 51 29 AC 28 4E 51 AA  31 29 00 D0 08 0A 00 8F  |NQ).(NQ.1)......|
000000D0: 00 08 09 0B 00 8F 20 20  46 55 4E 43 54 49 4F 4E  |......  FUNCTION|
000000E0: 20 54 4F 20 44 45 54 45  52 4D 49 4E 45 20 49 46  | TO DETERMINE IF|
000000F0: 20 54 48 45 20 20 20 20  20 20 20 51 55 45 55 45  | THE       QUEUE|
00000100: 20 49 53 20 46 55 4C 4C  00 31 09 0C 00 96 20 A5  | IS FULL.1.... .|
00000110: 20 46 55 4C 4C 28 58 29  B2 28 4C 41 B2 46 52 AB  | FULL(X).(LA.FR.|
00000120: 31 29 B0 28 46 52 B2 30  20 AF 20 4C 41 B2 4E 51  |1).(FR.0 . LA.NQ|
00000130: 29 00 37 09 0D 00 8F 00  7F 09 0E 00 8F 20 20 4E  |).7..........  N|
00000140: 45 58 54 20 57 45 20 48  41 56 45 20 41 20 46 55  |EXT WE HAVE A FU|
00000150: 4E 43 54 49 4F 4E 20 54  4F 20 47 49 56 45 20 20  |NCTION TO GIVE  |
00000160: 20 20 52 41 4E 44 4F 4D  20 4E 55 4D 42 45 52 53  |  RANDOM NUMBERS|
00000170: 2E 20 54 57 4F 20 46 55  4E 43 54 49 4F 4E 53 00  |. TWO FUNCTIONS.|
00000180: CA 09 0F 00 8F 20 20 41  52 45 20 50 52 4F 56 49  |.....  ARE PROVI|
00000190: 44 45 44 2E 20 4F 4E 45  20 55 53 45 53 20 54 48  |DED. ONE USES TH|
000001A0: 45 20 4C 4F 47 20 20 20  20 20 46 55 4E 43 54 49  |E LOG     FUNCTI|
000001B0: 4F 4E 20 54 4F 20 59 49  45 4C 44 20 4E 55 4D 42  |ON TO YIELD NUMB|
000001C0: 45 52 53 20 57 49 54 48  20 41 00 11 0A 10 00 8F  |ERS WITH A......|
000001D0: 20 20 50 4F 49 53 53 4F  4E 20 44 49 53 54 52 49  |  POISSON DISTRI|
000001E0: 42 55 54 49 4F 4E 2E 20  54 48 45 20 4F 54 48 45  |BUTION. THE OTHE|
000001F0: 52 20 20 20 20 59 49 45  4C 44 53 20 55 4E 49 46  |R    YIELDS UNIF|
00000200: 4F 52 4D 4C 59 20 44 49  53 54 52 49 42 55 54 45  |ORMLY DISTRIBUTE|
00000210: 44 00 47 0A 11 00 8F 20  20 4E 55 4D 42 45 52 53  |D.G....  NUMBERS|
00000220: 2E 20 4F 4E 4C 59 20 4F  4E 45 20 4D 41 59 20 42  |. ONLY ONE MAY B|
00000230: 45 20 55 53 45 44 20 20  20 20 20 20 41 54 20 41  |E USED      AT A|
00000240: 4E 59 20 54 49 4D 45 00  65 0A 12 00 8F 20 44 45  |NY TIME.e.... DE|
00000250: 46 20 46 4E 20 52 41 28  58 29 3D 52 4E 44 28 30  |F FN RA(X)=RND(0|
00000260: 29 2A 58 2A 32 00 7E 0A  13 00 96 20 A5 20 52 41  |)*X*2.~.... . RA|
00000270: 28 58 29 B2 AB 58 AC BC  28 BB 28 30 29 29 00 84  |(X)..X..(.(0))..|
00000280: 0A 14 00 8F 00 CC 0A 15  00 8F 20 20 4E 4F 57 20  |..........  NOW |
00000290: 57 45 20 4D 55 53 54 20  49 4E 49 54 49 41 4C 49  |WE MUST INITIALI|
000002A0: 5A 45 20 54 48 45 20 20  20 20 20 20 20 20 20 43  |ZE THE         C|
000002B0: 4F 4E 53 54 41 4E 54 53  2E 20 4F 46 20 49 4D 50  |ONSTANTS. OF IMP|
000002C0: 4F 52 54 41 4E 43 45 20  41 52 45 3A 00 12 0B 16  |ORTANCE ARE:....|
000002D0: 00 8F 20 4E 54 3D 4E 55  4D 42 45 52 20 4F 46 20  |.. NT=NUMBER OF |
000002E0: 54 45 4C 4C 45 52 53 20  20 20 20 20 20 20 20 20  |TELLERS         |
000002F0: 20 20 20 20 20 20 20 20  20 20 20 53 41 3D 41 56  |           SA=AV|
00000300: 45 52 41 47 45 20 53 45  52 56 49 43 45 20 54 49  |ERAGE SERVICE TI|
00000310: 4D 45 00 5F 0B 17 00 8F  20 41 52 3D 41 56 45 52  |ME._.... AR=AVER|
00000320: 41 47 45 20 41 52 52 49  56 41 4C 20 54 49 4D 45  |AGE ARRIVAL TIME|
00000330: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000340: 20 50 41 3D 4C 45 4E 47  54 48 20 4F 46 20 50 41  | PA=LENGTH OF PA|
00000350: 55 53 45 20 41 46 54 45  52 20 50 52 49 4E 54 00  |USE AFTER PRINT.|
00000360: AC 0B 18 00 8F 20 49 51  3D 4E 55 4D 42 45 52 20  |..... IQ=NUMBER |
00000370: 49 4E 49 54 49 41 4C 4C  59 20 49 4E 20 51 55 45  |INITIALLY IN QUE|
00000380: 55 45 20 20 20 20 20 20  20 20 20 20 20 20 4D 58  |UE            MX|
00000390: 54 3D 43 4C 4F 53 49 4E  47 20 54 49 4D 45 20 28  |T=CLOSING TIME (|
000003A0: 54 48 45 52 45 20 41 52  45 20 4E 4F 00 F2 0B 19  |THERE ARE NO....|
000003B0: 00 8F 20 20 20 20 20 4E  45 57 20 41 52 52 49 56  |..     NEW ARRIV|
000003C0: 41 4C 53 20 41 46 54 45  52 20 4D 58 54 29 20 20  |ALS AFTER MXT)  |
000003D0: 20 20 20 20 20 20 20 20  20 20 20 4E 51 3D 4C 45  |           NQ=LE|
000003E0: 4E 47 54 48 20 4F 46 20  54 48 45 20 51 55 45 55  |NGTH OF THE QUEU|
000003F0: 45 2E 00 36 0C 1A 00 4E  51 B2 32 36 3A 20 4E 54  |E..6...NQ.26: NT|
00000400: B2 32 3A 20 53 41 B2 33  3A 20 41 52 B2 31 2E 34  |.2: SA.3: AR.1.4|
00000410: 3A 20 50 41 B2 30 3A 45  4D 50 54 59 B2 39 45 39  |: PA.0:EMPTY.9E9|
00000420: 3A 20 4D 58 54 B2 35 30  20 3A 20 49 51 B2 30 3A  |: MXT.50 : IQ.0:|
00000430: 20 5A 5A B2 49 51 00 3C  0C 1B 00 8F 00 7E 0C 1C  | ZZ.IQ.<.....~..|
00000440: 00 8F 20 20 49 4E 49 54  49 41 4C 49 5A 45 20 54  |..  INITIALIZE T|
00000450: 48 45 20 56 41 4C 55 45  53 20 55 53 45 44 20 54  |HE VALUES USED T|
00000460: 4F 20 20 20 20 20 20 44  45 54 45 52 4D 49 4E 45  |O      DETERMINE|
00000470: 20 54 48 45 20 41 56 45  52 41 47 45 53 2E 00 84  | THE AVERAGES...|
00000480: 0C 1D 00 8F 00 A0 0C 1E  00 51 48 B2 30 3A 20 41  |.........QH.0: A|
00000490: 56 B2 30 3A 20 51 54 B2  30 3A 20 51 4E B2 49 51  |V.0: QT.0: QN.IQ|
000004A0: 00 A6 0C 1F 00 8F 00 EE  0C 20 00 8F 20 20 4E 4F  |......... ..  NO|
000004B0: 57 20 53 45 54 20 55 50  20 54 48 45 20 4E 45 43  |W SET UP THE NEC|
000004C0: 45 53 53 41 52 59 20 41  52 52 41 59 53 20 20 20  |ESSARY ARRAYS   |
000004D0: 20 46 4F 52 20 54 48 45  20 51 55 45 55 45 20 41  | FOR THE QUEUE A|
000004E0: 4E 44 20 54 48 45 20 54  45 4C 4C 45 52 53 00 13  |ND THE TELLERS..|
000004F0: 0D 21 00 8F 20 20 41 4E  44 20 45 4D 50 54 59 20  |.!..  AND EMPTY |
00000500: 54 48 45 20 54 45 4C 4C  45 52 53 20 41 52 52 41  |THE TELLERS ARRA|
00000510: 59 53 2E 00 2D 0D 22 00  86 20 54 45 28 4E 54 29  |YS..-.".. TE(NT)|
00000520: 2C 54 46 28 4E 54 29 2C  51 28 4E 51 29 00 4C 0D  |,TF(NT),Q(NQ).L.|
00000530: 23 00 81 20 49 B2 31 20  A4 20 4E 54 3A 20 54 45  |#.. I.1 . NT: TE|
00000540: 28 49 29 B2 45 4D 50 54  59 3A 20 82 00 52 0D 24  |(I).EMPTY: ..R.$|
00000550: 00 8F 00 9A 0D 25 00 8F  20 20 53 45 54 20 54 48  |.....%..  SET TH|
00000560: 45 20 54 57 4F 20 50 4F  49 4E 54 45 52 53 20 49  |E TWO POINTERS I|
00000570: 4E 54 4F 20 54 48 45 20  20 20 20 20 20 51 55 45  |NTO THE      QUE|
00000580: 55 45 2C 46 52 20 41 4E  44 20 4C 41 2C 20 54 4F  |UE,FR AND LA, TO|
00000590: 20 30 20 41 4E 44 20 54  48 45 00 E1 0D 26 00 8F  | 0 AND THE...&..|
000005A0: 20 20 4E 55 4D 42 45 52  20 4F 46 20 50 45 4F 50  |  NUMBER OF PEOP|
000005B0: 4C 45 20 49 4E 49 54 49  41 4C 4C 59 20 49 4E 20  |LE INITIALLY IN |
000005C0: 20 20 20 20 20 54 48 45  20 51 55 45 55 45 2E 20  |     THE QUEUE. |
000005D0: 53 45 54 20 54 48 45 20  54 49 4D 45 20 54 4F 20  |SET THE TIME TO |
000005E0: 30 00 29 0E 27 00 8F 20  20 41 4E 44 20 54 48 45  |0.).'..  AND THE|
000005F0: 20 54 49 4D 45 20 4F 46  20 4E 45 58 54 20 41 52  | TIME OF NEXT AR|
00000600: 52 49 56 41 4C 20 54 4F  20 20 20 20 30 20 4F 52  |RIVAL TO    0 OR|
00000610: 20 41 20 52 41 4E 44 4F  4D 20 54 49 4D 45 2C 20  | A RANDOM TIME, |
00000620: 44 45 50 45 4E 44 49 4E  47 00 6B 0E 28 00 8F 20  |DEPENDING.k.(.. |
00000630: 20 4F 4E 20 57 48 45 54  48 45 52 20 54 48 45 52  | ON WHETHER THER|
00000640: 45 20 41 52 45 20 41 4E  59 20 50 45 4F 50 4C 45  |E ARE ANY PEOPLE|
00000650: 20 20 20 20 49 4E 20 54  48 45 20 51 55 45 55 45  |    IN THE QUEUE|
00000660: 20 49 4E 49 54 49 41 4C  4C 59 2E 00 71 0E 29 00  | INITIALLY..q.).|
00000670: 8F 00 9F 0E 2A 00 46 52  B2 30 3A 20 4C 41 B2 49  |....*.FR.0: LA.I|
00000680: 51 3A 20 54 4D 45 B2 30  3A 20 4E 58 54 B2 AB 28  |Q: TME.0: NXT..(|
00000690: 49 51 B3 B1 30 29 AC A5  20 52 41 28 41 52 29 00  |IQ..0).. RA(AR).|
000006A0: A5 0E 2B 00 8F 00 ED 0E  2C 00 8F 20 20 49 46 20  |..+.....,..  IF |
000006B0: 54 48 45 52 45 20 41 52  45 20 50 45 4F 50 4C 45  |THERE ARE PEOPLE|
000006C0: 20 57 41 49 54 49 4E 47  2C 20 57 45 20 20 20 20  | WAITING, WE    |
000006D0: 4D 55 53 54 20 50 55 54  20 54 48 45 4D 20 49 4E  |MUST PUT THEM IN|
000006E0: 54 4F 20 54 48 45 20 51  55 45 55 45 2E 00 30 0F  |TO THE QUEUE..0.|
000006F0: 2D 00 8F 20 20 54 48 45  59 20 41 52 45 20 49 4E  |-..  THEY ARE IN|
00000700: 53 45 52 54 45 44 20 41  54 20 4C 41 53 54 2C 20  |SERTED AT LAST, |
00000710: 20 20 20 20 20 20 20 20  57 48 49 43 48 20 57 41  |        WHICH WA|
00000720: 53 20 53 45 54 20 45 41  52 4C 49 45 52 20 54 4F  |S SET EARLIER TO|
00000730: 00 65 0F 2E 00 8F 20 20  52 45 46 4C 45 43 54 20  |.e....  REFLECT |
00000740: 54 48 45 20 4E 55 4D 42  45 52 20 57 41 49 54 49  |THE NUMBER WAITI|
00000750: 4E 47 20 41 54 20 20 20  20 20 20 54 48 45 20 53  |NG AT      THE S|
00000760: 54 41 52 54 2E 00 6B 0F  2F 00 8F 00 93 0F 30 00  |TART..k./.....0.|
00000770: 8B 20 49 51 B3 B1 30 20  A7 20 81 20 49 B2 46 52  |. IQ..0 . . I.FR|
00000780: 20 A4 20 4C 41 AB 31 3A  51 28 49 29 B2 49 AA 31  | . LA.1:Q(I).I.1|
00000790: 3A 20 82 00 99 0F 31 00  8F 00 BA 0F 32 00 8F 20  |: ....1.....2.. |
000007A0: 20 50 52 49 4E 54 20 4F  55 54 20 41 20 48 45 41  | PRINT OUT A HEA|
000007B0: 44 49 4E 47 53 20 45 54  43 2E 00 C0 0F 33 00 8F  |DINGS ETC....3..|
000007C0: 00 F9 0F 34 00 99 22 93  22 3A 20 99 22 0E 0E 08  |...4..".": ."...|
000007D0: 08 22 3A 20 99 22 20 20  20 20 20 20 20 D4 48 45  |.": ."       .HE|
000007E0: 20 C7 52 45 41 54 20 C2  41 4E 4B 20 D3 49 4D 55  | .REAT .ANK .IMU|
000007F0: 4C 41 54 49 4F 4E 22 3A  99 00 28 10 35 00 99 22  |LATION":..(.5.."|
00000800: 20 20 D4 48 45 20 44 49  53 50 4C 41 59 20 43 48  |  .HE DISPLAY CH|
00000810: 41 4E 47 45 53 20 41 54  20 45 41 43 48 20 4E 45  |ANGES AT EACH NE|
00000820: 57 20 45 56 45 4E 54 22  00 6E 10 36 00 99 22 54  |W EVENT".n.6.."T|
00000830: 48 41 54 20 4F 43 43 55  52 53 2C 20 41 4E 44 20  |HAT OCCURS, AND |
00000840: 54 48 45 20 45 56 45 4E  54 20 49 53 20 48 49 47  |THE EVENT IS HIG|
00000850: 48 2D 22 3A 99 22 4C 49  47 48 54 45 44 2E 20 C1  |H-":."LIGHTED. .|
00000860: 20 53 50 41 43 45 20 49  4E 20 41 20 22 3B 00 AD  | SPACE IN A ";..|
00000870: 10 37 00 99 22 54 45 4C  4C 45 52 27 53 20 53 50  |.7.."TELLER'S SP|
00000880: 4F 54 22 3A 99 22 49 4E  44 49 43 41 54 45 53 20  |OT":."INDICATES |
00000890: 54 48 41 54 20 54 48 45  20 54 45 4C 4C 45 52 20  |THAT THE TELLER |
000008A0: 49 53 20 46 52 45 45 2E  22 3A 99 3A 99 00 B3 10  |IS FREE.":.:....|
000008B0: 38 00 8F 00 D9 10 39 00  8F 20 20 50 52 4F 4D 50  |8.....9..  PROMP|
000008C0: 54 20 46 4F 52 20 54 48  45 20 43 41 52 52 49 41  |T FOR THE CARRIA|
000008D0: 47 45 2D 52 45 54 55 52  4E 00 DF 10 3A 00 8F 00  |GE-RETURN...:...|
000008E0: 20 11 3B 00 85 22 D0 52  45 53 53 20 3C C3 D2 3E  | .;..".RESS <..>|
000008F0: 20 54 4F 20 42 45 47 49  4E 20 54 48 45 20 53 49  | TO BEGIN THE SI|
00000900: 4D 55 4C 41 54 49 4F 4E  22 3B 41 24 3A 20 99 22  |MULATION";A$: ."|
00000910: 91 22 3B 3A 20 81 20 49  B2 31 20 A4 20 33 35 3A  |.";: . I.1 . 35:|
00000920: 00 33 11 3C 00 99 22 20  22 3B 3A 20 82 3A 20 99  |.3.<.." ";: .: .|
00000930: 22 91 22 00 39 11 3D 00  8F 00 6C 11 3E 00 8F 20  |".".9.=...l.>.. |
00000940: 20 50 52 49 4E 54 20 4F  55 54 20 54 48 45 20 48  | PRINT OUT THE H|
00000950: 45 41 44 49 4E 47 20 46  4F 52 20 54 48 45 20 20  |EADING FOR THE  |
00000960: 20 20 20 20 44 49 53 50  4C 41 59 2E 00 72 11 3F  |    DISPLAY..r.?|
00000970: 00 8F 00 89 11 40 00 8B  20 4E 54 B1 32 20 A7 20  |.....@.. NT.2 . |
00000980: 99 20 A6 4E 54 AB 32 29  3B 00 BE 11 41 00 99 22  |. .NT.2);...A.."|
00000990: 20 20 20 20 20 20 D4 45  4C 4C 45 52 22 3A 20 99  |      .ELLER": .|
000009A0: 22 20 20 D4 49 4D 45 20  22 3B 3A 81 20 49 B2 31  |"  .IME ";:. I.1|
000009B0: 20 A4 20 4E 54 3A 20 41  24 B2 C4 28 49 29 00 DA  | . NT: A$..(I)..|
000009C0: 11 42 00 99 20 C8 28 41  24 2C 32 29 3B 3A 82 3A  |.B.. .(A$,2);:.:|
000009D0: 99 22 20 20 D1 55 45 55  45 22 00 E0 11 43 00 8F  |."  .UEUE"...C..|
000009E0: 00 26 12 44 00 8F 20 20  42 45 47 49 4E 20 54 48  |.&.D..  BEGIN TH|
000009F0: 45 20 53 49 4D 55 4C 41  54 49 4F 4E 2E 20 54 48  |E SIMULATION. TH|
00000A00: 49 53 20 49 53 20 20 20  20 20 20 42 45 46 4F 52  |IS IS      BEFOR|
00000A10: 45 20 54 48 45 20 4D 41  49 4E 20 4C 4F 4F 50 2C  |E THE MAIN LOOP,|
00000A20: 20 53 4F 20 57 45 00 69  12 45 00 8F 20 20 4D 55  | SO WE.i.E..  MU|
00000A30: 53 54 20 48 41 4E 44 4C  45 20 54 48 45 20 50 45  |ST HANDLE THE PE|
00000A40: 4F 50 4C 45 20 49 4E 20  54 48 45 20 20 20 20 20  |OPLE IN THE     |
00000A50: 20 51 55 45 55 45 20 41  54 20 54 48 45 20 4F 55  | QUEUE AT THE OU|
00000A60: 54 53 45 54 20 4E 4F 57  2E 00 B1 12 46 00 8F 20  |TSET NOW....F.. |
00000A70: 20 49 46 20 54 48 45 52  45 20 41 52 45 20 4E 4F  | IF THERE ARE NO|
00000A80: 4E 45 20 57 41 49 54 49  4E 47 2C 20 54 48 45 4E  |NE WAITING, THEN|
00000A90: 20 20 20 20 43 4F 4E 54  49 4E 55 45 20 4F 4E 20  |    CONTINUE ON |
00000AA0: 54 4F 20 54 48 45 20 4D  41 49 4E 20 4C 4F 4F 50  |TO THE MAIN LOOP|
00000AB0: 2E 00 B7 12 47 00 8F 00  C7 12 48 00 8B 20 49 51  |....G.....H.. IQ|
00000AC0: B2 30 20 89 20 38 37 00  CD 12 49 00 8F 00 14 13  |.0 . 87...I.....|
00000AD0: 4A 00 8F 20 20 46 49 4E  44 20 54 48 45 20 53 4D  |J..  FIND THE SM|
00000AE0: 41 4C 4C 45 52 20 4F 46  20 54 48 45 20 4E 55 4D  |ALLER OF THE NUM|
00000AF0: 42 45 52 20 20 20 20 20  4F 46 20 54 45 4C 4C 45  |BER     OF TELLE|
00000B00: 52 53 20 41 4E 44 20 54  48 45 20 4E 55 4D 42 45  |RS AND THE NUMBE|
00000B10: 52 20 4F 46 00 5C 13 4B  00 8F 20 20 50 45 4F 50  |R OF.\.K..  PEOP|
00000B20: 4C 45 20 49 4E 49 54 49  41 4C 4C 59 20 49 4E 20  |LE INITIALLY IN |
00000B30: 54 48 45 20 51 55 45 55  45 2E 20 20 20 20 20 44  |THE QUEUE.     D|
00000B40: 49 53 50 4C 41 59 20 54  48 45 20 51 55 45 55 45  |ISPLAY THE QUEUE|
00000B50: 20 41 4E 44 20 54 45 4C  4C 45 52 53 00 A1 13 4C  | AND TELLERS...L|
00000B60: 00 8F 20 20 41 4E 44 20  54 48 45 4E 20 4D 4F 56  |..  AND THEN MOV|
00000B70: 45 20 50 45 4F 50 4C 45  20 46 52 4F 4D 20 54 48  |E PEOPLE FROM TH|
00000B80: 45 20 20 20 20 20 20 51  55 45 55 45 20 54 4F 20  |E      QUEUE TO |
00000B90: 54 48 45 20 54 45 4C 4C  45 52 53 2E 20 54 48 49  |THE TELLERS. THI|
00000BA0: 53 00 E5 13 4D 00 8F 20  20 53 48 4F 55 4C 44 20  |S...M..  SHOULD |
00000BB0: 43 4F 4E 54 49 4E 55 45  20 55 4E 54 49 4C 20 57  |CONTINUE UNTIL W|
00000BC0: 45 20 52 55 4E 20 20 20  20 20 20 20 4F 55 54 20  |E RUN       OUT |
00000BD0: 4F 46 20 50 45 4F 50 4C  45 20 4F 52 20 54 45 4C  |OF PEOPLE OR TEL|
00000BE0: 4C 45 52 53 2E 00 EB 13  4E 00 8F 00 06 14 4F 00  |LERS....N.....O.|
00000BF0: 55 55 B2 49 51 3A 20 8B  20 4E 54 B3 49 51 20 A7  |UU.IQ: . NT.IQ .|
00000C00: 20 55 55 B2 4E 54 00 26  14 50 00 8D 20 32 30 38  | UU.NT.&.P.. 208|
00000C10: 3A 20 81 20 58 58 B2 31  20 A4 20 55 55 3A 8D 20  |: . XX.1 . UU:. |
00000C20: 31 37 37 3A 20 82 00 2C  14 51 00 8F 00 74 14 52  |177: ..,.Q...t.R|
00000C30: 00 8F 20 20 53 54 41 52  54 20 4F 46 20 54 48 45  |..  START OF THE|
00000C40: 20 4D 41 49 4E 20 4C 4F  4F 50 2E 20 46 49 52 53  | MAIN LOOP. FIRS|
00000C50: 54 20 20 20 20 20 20 57  45 20 44 49 53 50 4C 41  |T      WE DISPLA|
00000C60: 59 20 54 48 45 20 57 48  4F 4C 45 20 54 48 49 4E  |Y THE WHOLE THIN|
00000C70: 47 20 41 53 00 B8 14 53  00 8F 20 20 49 54 20 49  |G AS...S..  IT I|
00000C80: 53 20 50 52 45 53 45 4E  54 4C 59 2E 20 54 48 45  |S PRESENTLY. THE|
00000C90: 4E 20 57 45 20 47 4F 20  41 4E 44 20 20 20 20 46  |N WE GO AND    F|
00000CA0: 49 4E 44 20 54 48 45 20  54 49 4D 45 20 4F 46 20  |IND THE TIME OF |
00000CB0: 54 48 45 20 4E 45 58 54  00 03 15 54 00 8F 20 20  |THE NEXT...T..  |
00000CC0: 49 4E 54 45 52 45 53 54  49 4E 47 20 45 56 45 4E  |INTERESTING EVEN|
00000CD0: 54 2E 20 49 46 20 54 48  45 20 4E 45 58 54 20 20  |T. IF THE NEXT  |
00000CE0: 20 20 20 45 56 45 4E 54  20 49 53 20 41 54 20 54  |   EVENT IS AT T|
00000CF0: 49 4D 45 20 45 4D 50 54  59 2C 20 54 48 45 4E 20  |IME EMPTY, THEN |
00000D00: 54 48 45 00 4C 15 55 00  8F 20 20 53 49 4D 55 4C  |THE.L.U..  SIMUL|
00000D10: 41 54 49 4F 4E 20 49 53  20 4F 56 45 52 20 41 4E  |ATION IS OVER AN|
00000D20: 44 20 57 45 20 20 20 20  20 20 20 20 20 20 53 48  |D WE          SH|
00000D30: 4F 55 4C 44 20 44 49 53  50 4C 41 59 20 54 48 45  |OULD DISPLAY THE|
00000D40: 20 53 54 41 54 49 53 54  49 43 53 2E 00 52 15 56  | STATISTICS..R.V|
00000D50: 00 8F 00 6C 15 57 00 8D  20 32 30 38 3A 20 8D 20  |...l.W.. 208: . |
00000D60: 31 33 36 3A 20 54 4D 45  B2 4D 49 4E 00 82 15 58  |136: TME.MIN...X|
00000D70: 00 8B 20 54 4D 45 B2 45  4D 50 54 59 20 89 20 31  |.. TME.EMPTY . 1|
00000D80: 38 37 00 88 15 59 00 8F  00 CF 15 5A 00 8F 20 20  |87...Y.....Z..  |
00000D90: 54 48 45 52 45 20 41 52  45 20 54 57 4F 20 44 49  |THERE ARE TWO DI|
00000DA0: 46 46 45 52 45 4E 54 20  20 20 20 20 20 20 20 20  |FFERENT         |
00000DB0: 20 20 20 43 4F 55 52 53  45 53 20 54 4F 20 54 41  |   COURSES TO TA|
00000DC0: 4B 45 20 44 45 50 45 4E  44 49 4E 47 20 4F 4E 00  |KE DEPENDING ON.|
00000DD0: F1 15 5B 00 8F 20 20 57  48 45 54 48 45 52 20 54  |..[..  WHETHER T|
00000DE0: 48 45 20 51 55 45 55 45  20 49 53 20 45 4D 50 54  |HE QUEUE IS EMPT|
00000DF0: 59 00 04 16 5C 00 8B 20  4C 41 B3 B1 46 52 20 89  |Y...\.. LA..FR .|
00000E00: 20 31 31 36 00 0A 16 5D  00 8F 00 52 16 5E 00 8F  | 116...]...R.^..|
00000E10: 20 20 54 48 45 20 51 55  45 55 45 20 49 53 20 45  |  THE QUEUE IS E|
00000E20: 4D 50 54 59 2E 20 57 45  20 53 45 52 56 49 43 45  |MPTY. WE SERVICE|
00000E30: 20 20 20 20 20 54 48 45  20 45 56 45 4E 54 20 4F  |     THE EVENT O|
00000E40: 46 20 49 4E 54 45 52 45  53 54 2E 20 49 46 20 54  |F INTEREST. IF T|
00000E50: 48 45 00 9A 16 5F 00 8F  20 20 56 41 52 49 41 42  |HE..._..  VARIAB|
00000E60: 4C 45 20 58 58 20 49 53  20 5A 45 52 4F 2C 20 54  |LE XX IS ZERO, T|
00000E70: 48 45 4E 20 54 48 45 20  20 20 20 20 20 45 56 45  |HEN THE      EVE|
00000E80: 4E 54 20 49 53 20 41 20  54 45 4C 4C 45 52 20 46  |NT IS A TELLER F|
00000E90: 49 4E 49 53 48 49 4E 47  20 41 00 E0 16 60 00 8F  |INISHING A...`..|
00000EA0: 20 20 43 55 53 54 4F 4D  45 52 2E 20 53 49 4E 43  |  CUSTOMER. SINC|
00000EB0: 45 20 54 48 45 20 51 55  45 55 45 20 49 53 20 20  |E THE QUEUE IS  |
00000EC0: 20 20 20 20 20 45 4D 50  54 59 2C 20 57 45 20 52  |     EMPTY, WE R|
00000ED0: 45 4D 4F 56 45 20 54 48  45 20 50 45 52 53 4F 4E  |EMOVE THE PERSON|
00000EE0: 00 29 17 61 00 8F 20 20  46 52 4F 4D 20 54 48 45  |.).a..  FROM THE|
00000EF0: 20 54 45 4C 4C 45 52 27  53 20 53 50 4F 54 2C 20  | TELLER'S SPOT, |
00000F00: 41 4E 44 20 20 20 20 20  20 20 20 4A 55 53 54 20  |AND        JUST |
00000F10: 47 4F 20 42 41 43 4B 20  54 4F 20 54 48 45 20 4D  |GO BACK TO THE M|
00000F20: 41 49 4E 20 4C 4F 4F 50  2E 00 2F 17 62 00 8F 00  |AIN LOOP../.b...|
00000F30: 49 17 63 00 8B 20 58 58  B3 B1 30 20 A7 20 8D 20  |I.c.. XX..0 . . |
00000F40: 31 34 34 3A 20 89 20 38  37 00 4F 17 64 00 8F 00  |144: . 87.O.d...|
00000F50: 95 17 65 00 8F 20 20 58  58 3D 30 20 4D 45 41 4E  |..e..  XX=0 MEAN|
00000F60: 53 20 54 48 41 54 20 41  20 4E 45 57 20 43 55 53  |S THAT A NEW CUS|
00000F70: 54 4F 4D 45 52 20 20 20  20 20 48 41 53 20 41 52  |TOMER     HAS AR|
00000F80: 52 49 56 45 44 2C 20 53  4F 20 50 55 54 20 54 48  |RIVED, SO PUT TH|
00000F90: 45 4D 20 49 4E 00 DA 17  66 00 8F 20 20 54 48 45  |EM IN...f..  THE|
00000FA0: 20 28 45 4D 50 54 59 29  20 51 55 45 55 45 2E 20  | (EMPTY) QUEUE. |
00000FB0: 4E 4F 57 20 43 48 45 43  4B 20 20 20 20 20 20 20  |NOW CHECK       |
00000FC0: 57 48 45 54 48 45 52 20  4F 52 20 4E 4F 54 20 41  |WHETHER OR NOT A|
00000FD0: 20 54 45 4C 4C 45 52 20  49 53 00 21 18 67 00 8F  | TELLER IS.!.g..|
00000FE0: 20 20 46 52 45 45 20 54  4F 20 53 45 52 56 49 43  |  FREE TO SERVIC|
00000FF0: 45 20 54 48 45 20 43 55  53 54 4F 4D 45 52 2E 20  |E THE CUSTOMER. |
00001000: 20 20 20 20 20 49 46 20  4F 4E 45 20 49 53 2C 20  |     IF ONE IS, |
00001010: 4D 4F 56 45 20 54 48 45  20 43 55 53 54 4F 4D 45  |MOVE THE CUSTOME|
00001020: 52 00 68 18 68 00 8F 20  20 4F 56 45 52 20 54 4F  |R.h.h..  OVER TO|
00001030: 20 54 48 45 20 54 45 4C  4C 45 52 2C 20 41 4E 44  | THE TELLER, AND|
00001040: 20 46 4F 52 43 45 20 20  20 20 20 20 41 4E 20 45  | FORCE      AN E|
00001050: 41 52 4C 59 20 45 58 49  54 20 46 52 4F 4D 20 54  |ARLY EXIT FROM T|
00001060: 48 45 20 4C 4F 4F 50 2E  00 AB 18 69 00 8F 20 20  |HE LOOP....i..  |
00001070: 46 49 4E 41 4C 4C 59 20  52 45 54 55 52 4E 20 54  |FINALLY RETURN T|
00001080: 4F 20 54 48 45 20 4D 41  49 4E 20 20 20 20 20 20  |O THE MAIN      |
00001090: 20 20 20 4C 4F 4F 50 20  46 4F 52 20 54 48 45 20  |   LOOP FOR THE |
000010A0: 4E 45 58 54 20 45 56 45  4E 54 2E 00 B1 18 6A 00  |NEXT EVENT....j.|
000010B0: 8F 00 E6 18 6B 00 8D 20  31 34 39 3A 20 81 20 58  |....k.. 149: . X|
000010C0: 58 B2 31 20 A4 20 4E 54  3A 8B 20 54 45 28 58 58  |X.1 . NT:. TE(XX|
000010D0: 29 B2 45 4D 50 54 59 20  A7 20 8D 20 31 37 37 3A  |).EMPTY . . 177:|
000010E0: 20 58 58 B2 4E 54 00 F2  18 6C 00 82 3A 20 89 20  | XX.NT...l..: . |
000010F0: 38 37 00 F8 18 6D 00 8F  00 40 19 6E 00 8F 20 20  |87...m...@.n..  |
00001100: 54 48 45 20 51 55 45 55  45 20 49 53 20 4E 4F 54  |THE QUEUE IS NOT|
00001110: 20 45 4D 50 54 59 2E 20  41 47 41 49 4E 20 20 20  | EMPTY. AGAIN   |
00001120: 20 20 20 57 45 20 4D 55  53 54 20 44 45 54 45 52  |   WE MUST DETER|
00001130: 4D 49 4E 45 20 54 48 45  20 54 59 50 45 20 4F 46  |MINE THE TYPE OF|
00001140: 00 88 19 6F 00 8F 20 20  54 48 45 20 45 56 45 4E  |...o..  THE EVEN|
00001150: 54 2E 20 49 46 20 41 20  54 45 4C 4C 45 52 20 48  |T. IF A TELLER H|
00001160: 41 53 20 20 20 20 20 20  20 20 20 46 49 4E 49 53  |AS         FINIS|
00001170: 48 45 44 20 53 45 52 56  49 43 49 4E 47 20 41 20  |HED SERVICING A |
00001180: 43 55 53 54 4F 4D 45 52  00 CF 19 70 00 8F 20 20  |CUSTOMER...p..  |
00001190: 54 48 45 4E 20 52 45 4D  4F 56 45 20 54 48 45 20  |THEN REMOVE THE |
000011A0: 43 55 53 54 4F 4D 45 52  20 46 52 4F 4D 20 20 20  |CUSTOMER FROM   |
000011B0: 20 20 20 54 48 45 20 54  45 4C 4C 45 52 27 53 20  |   THE TELLER'S |
000011C0: 53 50 4F 54 2C 20 42 55  54 20 53 49 4E 43 45 00  |SPOT, BUT SINCE.|
000011D0: 15 1A 71 00 8F 20 20 54  48 45 20 51 55 45 55 45  |..q..  THE QUEUE|
000011E0: 20 49 53 20 4E 4F 54 20  45 4D 50 54 59 2C 20 54  | IS NOT EMPTY, T|
000011F0: 41 4B 45 20 41 20 20 20  20 20 4E 45 57 20 43 55  |AKE A     NEW CU|
00001200: 53 54 4F 4D 45 52 20 46  52 4F 4D 20 54 48 45 20  |STOMER FROM THE |
00001210: 51 55 45 55 45 00 4E 1A  72 00 8F 20 20 41 4E 44  |QUEUE.N.r..  AND|
00001220: 20 53 45 52 56 49 43 45  20 54 48 45 4D 2E 20 54  | SERVICE THEM. T|
00001230: 48 45 4E 20 42 41 43 4B  20 54 4F 20 20 20 20 20  |HEN BACK TO     |
00001240: 54 48 45 20 4D 41 49 4E  20 4C 4F 4F 50 2E 00 54  |THE MAIN LOOP..T|
00001250: 1A 73 00 8F 00 75 1A 74  00 8B 20 58 58 B3 B1 30  |.s...u.t.. XX..0|
00001260: 20 A7 20 8D 20 31 34 34  3A 20 8D 20 31 37 37 3A  | . . 144: . 177:|
00001270: 20 89 20 38 37 00 7B 1A  75 00 8F 00 C2 1A 76 00  | . 87.{.u.....v.|
00001280: 8F 20 20 58 58 3D 30 20  4D 45 41 4E 53 20 54 48  |.  XX=0 MEANS TH|
00001290: 41 54 20 54 48 45 52 45  20 49 53 20 41 20 4E 45  |AT THERE IS A NE|
000012A0: 57 20 20 20 20 20 41 52  52 49 56 41 4C 20 54 4F  |W     ARRIVAL TO|
000012B0: 20 54 48 45 20 51 55 45  55 45 2E 20 57 45 20 41  | THE QUEUE. WE A|
000012C0: 44 44 00 0A 1B 77 00 8F  20 20 54 48 45 20 4E 45  |DD...w..  THE NE|
000012D0: 57 20 41 52 52 49 56 41  4C 2C 20 42 55 54 20 53  |W ARRIVAL, BUT S|
000012E0: 49 4E 43 45 20 54 48 45  20 20 20 20 20 51 55 45  |INCE THE     QUE|
000012F0: 55 45 20 49 53 4E 27 54  20 45 4D 50 54 59 2C 20  |UE ISN'T EMPTY, |
00001300: 57 45 20 4E 45 45 44 4E  27 54 00 52 1B 78 00 8F  |WE NEEDN'T.R.x..|
00001310: 20 20 43 48 45 43 4B 20  54 48 45 20 54 45 4C 4C  |  CHECK THE TELL|
00001320: 45 52 53 2E 20 42 41 43  4B 20 54 4F 20 54 48 45  |ERS. BACK TO THE|
00001330: 20 20 20 20 20 4D 41 49  4E 20 4C 4F 4F 50 20 46  |     MAIN LOOP F|
00001340: 4F 52 20 54 48 45 20 4E  45 58 54 20 45 56 45 4E  |OR THE NEXT EVEN|
00001350: 54 2E 00 58 1B 79 00 8F  00 68 1B 7A 00 8D 20 31  |T..X.y...h.z.. 1|
00001360: 34 39 3A 20 89 20 38 37  00 6E 1B 7B 00 8F 00 B1  |49: . 87.n.{....|
00001370: 1B 7C 00 8F 20 20 54 48  49 53 20 53 55 42 52 4F  |.|..  THIS SUBRO|
00001380: 55 54 49 4E 45 20 46 49  4E 44 53 20 54 48 45 20  |UTINE FINDS THE |
00001390: 20 20 20 20 20 20 20 20  20 53 4D 41 4C 4C 45 53  |         SMALLES|
000013A0: 54 20 4F 46 20 54 48 45  20 54 49 4D 45 53 20 4F  |T OF THE TIMES O|
000013B0: 46 00 F8 1B 7D 00 8F 20  20 43 4F 4D 50 4C 45 54  |F...}..  COMPLET|
000013C0: 49 4F 4E 20 4F 46 20 53  45 52 56 49 43 45 20 46  |ION OF SERVICE F|
000013D0: 4F 52 20 45 41 43 48 20  20 20 20 20 54 45 4C 4C  |OR EACH     TELL|
000013E0: 45 52 2C 20 41 4E 44 20  54 48 45 20 41 52 52 49  |ER, AND THE ARRI|
000013F0: 56 41 4C 20 54 49 4D 45  00 3E 1C 7E 00 8F 20 20  |VAL TIME.>.~..  |
00001400: 4F 46 20 54 48 45 20 4E  45 58 54 20 43 55 53 54  |OF THE NEXT CUST|
00001410: 4F 4D 45 52 2E 20 54 48  49 53 20 49 53 20 20 20  |OMER. THIS IS   |
00001420: 20 20 20 54 48 45 20 4E  45 58 54 20 49 4E 54 45  |   THE NEXT INTE|
00001430: 52 45 53 54 49 4E 47 20  45 56 45 4E 54 2E 00 86  |RESTING EVENT...|
00001440: 1C 7F 00 8F 20 20 54 48  45 20 56 41 52 49 41 42  |....  THE VARIAB|
00001450: 4C 45 20 4D 49 4E 20 49  53 20 53 45 54 20 54 4F  |LE MIN IS SET TO|
00001460: 20 54 48 45 20 20 20 20  20 53 4D 41 4C 4C 45 53  | THE     SMALLES|
00001470: 54 20 4F 46 20 54 48 45  20 54 49 4D 45 53 20 41  |T OF THE TIMES A|
00001480: 4E 44 20 54 48 45 00 CE  1C 80 00 8F 20 20 56 41  |ND THE......  VA|
00001490: 52 49 41 42 4C 45 20 58  58 20 49 53 20 53 45 54  |RIABLE XX IS SET|
000014A0: 20 54 4F 20 30 20 49 46  20 54 48 45 20 20 20 20  | TO 0 IF THE    |
000014B0: 20 45 56 45 4E 54 20 49  53 20 41 20 4E 45 57 20  | EVENT IS A NEW |
000014C0: 43 55 53 54 4F 4D 45 52  20 4F 52 20 54 4F 00 16  |CUSTOMER OR TO..|
000014D0: 1D 81 00 8F 20 20 54 48  45 20 4E 55 4D 42 45 52  |....  THE NUMBER|
000014E0: 20 4F 46 20 54 48 45 20  54 45 4C 4C 45 52 20 49  | OF THE TELLER I|
000014F0: 46 20 20 20 20 20 20 20  20 54 48 45 20 45 56 45  |F        THE EVE|
00001500: 4E 54 20 49 53 20 41 20  54 45 4C 4C 45 52 20 54  |NT IS A TELLER T|
00001510: 48 41 54 20 49 53 00 27  1D 82 00 8F 20 20 46 49  |HAT IS.'....  FI|
00001520: 4E 49 53 48 45 44 2E 00  6D 1D 83 00 8F 20 20 49  |NISHED..m....  I|
00001530: 4E 49 54 49 41 4C 49 5A  45 20 4D 49 4E 20 54 4F  |NITIALIZE MIN TO|
00001540: 20 41 20 4C 41 52 47 45  20 20 20 20 20 20 20 20  | A LARGE        |
00001550: 20 20 56 41 4C 55 45 20  41 4E 44 20 54 48 45 4E  |  VALUE AND THEN|
00001560: 20 4C 4F 4F 50 20 54 48  52 4F 55 47 48 00 B2 1D  | LOOP THROUGH...|
00001570: 84 00 8F 20 20 54 48 45  20 54 45 4C 4C 45 52 53  |...  THE TELLERS|
00001580: 2C 20 53 45 54 54 49 4E  47 20 4D 49 4E 20 45 51  |, SETTING MIN EQ|
00001590: 55 41 4C 20 20 20 20 20  54 4F 20 41 4E 59 20 4C  |UAL     TO ANY L|
000015A0: 4F 57 45 52 20 56 41 4C  55 45 2E 20 41 54 20 54  |OWER VALUE. AT T|
000015B0: 48 45 00 F9 1D 85 00 8F  20 20 53 41 4D 45 20 54  |HE......  SAME T|
000015C0: 49 4D 45 2C 20 53 45 54  20 58 58 20 54 4F 20 54  |IME, SET XX TO T|
000015D0: 48 45 20 4C 4F 4F 50 20  20 20 20 20 20 43 4F 55  |HE LOOP      COU|
000015E0: 4E 54 45 52 2E 20 54 48  45 4E 20 43 48 45 43 4B  |NTER. THEN CHECK|
000015F0: 20 54 48 45 20 54 49 4D  45 00 3F 1E 86 00 8F 20  | THE TIME.?.... |
00001600: 20 4F 46 20 41 52 52 49  56 41 4C 20 4F 46 20 54  | OF ARRIVAL OF T|
00001610: 48 45 20 4E 45 58 54 20  50 45 52 53 4F 4E 20 20  |HE NEXT PERSON  |
00001620: 20 20 20 20 41 4E 44 20  52 45 53 45 54 20 4D 49  |    AND RESET MI|
00001630: 4E 20 49 46 20 4E 45 43  45 53 53 41 52 59 2E 00  |N IF NECESSARY..|
00001640: 45 1E 87 00 8F 00 7F 1E  88 00 4D 49 4E B2 32 AC  |E.........MIN.2.|
00001650: 45 4D 50 54 59 3A 20 81  20 49 B2 31 20 A4 20 4E  |EMPTY: . I.1 . N|
00001660: 54 3A 8B 20 54 45 28 49  29 B3 4D 49 4E 20 A7 20  |T:. TE(I).MIN . |
00001670: 4D 49 4E B2 54 45 28 49  29 3A 20 58 58 B2 49 00  |MIN.TE(I): XX.I.|
00001680: 9F 1E 89 00 82 3A 20 8B  20 4E 58 54 B3 4D 49 4E  |.....: . NXT.MIN|
00001690: 20 A7 20 4D 49 4E B2 4E  58 54 3A 58 58 B2 30 00  | . MIN.NXT:XX.0.|
000016A0: A5 1E 8A 00 8E 00 AB 1E  8B 00 8F 00 F1 1E 8C 00  |................|
000016B0: 8F 20 20 54 48 49 53 20  53 55 42 52 4F 55 54 49  |.  THIS SUBROUTI|
000016C0: 4E 45 20 52 45 4D 4F 56  45 53 20 41 20 20 20 20  |NE REMOVES A    |
000016D0: 20 20 20 20 20 20 43 55  53 54 4F 4D 45 52 20 46  |      CUSTOMER F|
000016E0: 52 4F 4D 20 41 20 54 45  4C 4C 45 52 2E 20 54 48  |ROM A TELLER. TH|
000016F0: 45 00 33 1F 8D 00 8F 20  20 54 45 4C 4C 45 52 20  |E.3....  TELLER |
00001700: 49 53 20 53 45 54 20 54  4F 20 45 4D 50 54 59 2E  |IS SET TO EMPTY.|
00001710: 20 54 48 45 20 20 20 20  20 20 20 20 4E 45 47 41  | THE        NEGA|
00001720: 54 49 56 45 20 49 53 20  54 4F 20 54 45 4C 4C 20  |TIVE IS TO TELL |
00001730: 54 48 45 00 76 1F 8E 00  8F 20 20 44 49 53 50 4C  |THE.v....  DISPL|
00001740: 41 59 20 52 4F 55 54 49  4E 45 20 54 48 41 54 20  |AY ROUTINE THAT |
00001750: 53 4F 4D 45 54 48 49 4E  47 20 20 20 20 20 48 41  |SOMETHING     HA|
00001760: 50 50 45 4E 45 44 20 54  4F 20 54 48 49 53 20 54  |PPENED TO THIS T|
00001770: 45 4C 4C 45 52 2E 00 7C  1F 8F 00 8F 00 91 1F 90  |ELLER..|........|
00001780: 00 54 45 28 58 58 29 B2  AB 45 4D 50 54 59 3A 20  |.TE(XX)..EMPTY: |
00001790: 8E 00 97 1F 91 00 8F 00  D8 1F 92 00 8F 20 20 54  |.............  T|
000017A0: 48 49 53 20 53 55 42 52  4F 55 54 49 4E 45 20 41  |HIS SUBROUTINE A|
000017B0: 44 44 53 20 41 20 50 45  52 53 4F 4E 20 20 20 20  |DDS A PERSON    |
000017C0: 20 20 54 4F 20 54 48 45  20 43 49 52 43 55 4C 41  |  TO THE CIRCULA|
000017D0: 52 20 51 55 45 55 45 2E  00 1E 20 93 00 8F 20 20  |R QUEUE... ...  |
000017E0: 46 49 52 53 54 20 4D 41  4B 45 20 53 55 52 45 20  |FIRST MAKE SURE |
000017F0: 54 48 41 54 20 54 48 45  20 51 55 45 55 45 20 20  |THAT THE QUEUE  |
00001800: 20 20 20 57 4F 4E 27 54  20 4F 56 45 52 46 4C 4F  |   WON'T OVERFLO|
00001810: 57 2E 20 49 46 20 49 54  20 57 49 4C 4C 2C 00 3D  |W. IF IT WILL,.=|
00001820: 20 94 00 8F 20 20 54 48  45 4E 20 41 42 4F 52 54  | ...  THEN ABORT|
00001830: 20 54 48 45 20 50 52 4F  47 52 41 4D 2E 00 6F 20  | THE PROGRAM..o |
00001840: 95 00 8B 20 A5 20 46 55  4C 4C 28 51 29 20 A7 20  |... . FULL(Q) . |
00001850: 99 3A 99 20 22 D1 55 45  55 45 20 CF 56 45 52 46  |.:. ".UEUE .VERF|
00001860: 4C 4F 57 2E 2E 2E C1 C2  CF D2 D4 22 3A 20 90 00  |LOW........": ..|
00001870: 75 20 96 00 8F 00 BB 20  97 00 8F 20 20 41 44 44  |u ..... ...  ADD|
00001880: 20 4F 4E 45 20 54 4F 20  54 48 45 20 4E 55 4D 42  | ONE TO THE NUMB|
00001890: 45 52 20 4F 46 20 20 20  20 20 20 20 20 20 20 20  |ER OF           |
000018A0: 50 45 4F 50 4C 45 20 54  48 41 54 20 43 41 4D 45  |PEOPLE THAT CAME|
000018B0: 2C 20 41 4E 44 20 50 55  54 20 41 00 02 21 98 00  |, AND PUT A..!..|
000018C0: 8F 20 20 4E 55 4D 42 45  52 20 49 4E 20 54 48 45  |.  NUMBER IN THE|
000018D0: 20 51 55 45 55 45 20 54  48 41 54 20 57 49 4C 4C  | QUEUE THAT WILL|
000018E0: 20 20 20 20 20 20 44 49  53 54 49 4E 47 55 49 53  |      DISTINGUIS|
000018F0: 48 20 54 48 45 20 50 45  52 53 4F 4E 2E 20 45 41  |H THE PERSON. EA|
00001900: 43 48 00 45 21 99 00 8F  20 20 50 45 52 53 4F 4E  |CH.E!...  PERSON|
00001910: 20 49 53 20 47 49 56 45  4E 20 41 20 4E 55 4D 42  | IS GIVEN A NUMB|
00001920: 45 52 20 54 48 41 54 20  20 20 20 20 20 49 53 20  |ER THAT      IS |
00001930: 42 45 54 57 45 45 4E 20  31 20 41 4E 44 20 32 36  |BETWEEN 1 AND 26|
00001940: 2E 20 54 48 45 00 88 21  9A 00 8F 20 20 4E 55 4D  |. THE..!...  NUM|
00001950: 42 45 52 20 49 53 20 4E  45 47 41 54 49 56 45 20  |BER IS NEGATIVE |
00001960: 49 4E 49 54 49 41 4C 4C  59 20 20 20 20 20 20 20  |INITIALLY       |
00001970: 46 4F 52 20 54 48 45 20  44 49 53 50 4C 41 59 20  |FOR THE DISPLAY |
00001980: 52 4F 55 54 49 4E 45 2E  00 CA 21 9B 00 8F 20 20  |ROUTINE...!...  |
00001990: 54 48 45 20 4E 55 4D 42  45 52 20 49 53 20 43 59  |THE NUMBER IS CY|
000019A0: 43 4C 45 44 20 41 52 4F  55 4E 44 20 20 20 20 20  |CLED AROUND     |
000019B0: 20 20 20 31 2C 32 2C 2E  2E 2E 32 35 2C 32 36 2C  |   1,2,...25,26,|
000019C0: 31 2C 32 2E 2E 2E 20 45  54 43 00 D0 21 9C 00 8F  |1,2... ETC..!...|
000019D0: 00 0B 22 9D 00 5A 5A B2  5A 5A AA 31 3A 20 51 28  |.."..ZZ.ZZ.1: Q(|
000019E0: 4C 41 29 B2 AB 28 5A 5A  AB B5 28 5A 5A AD 32 36  |LA)..(ZZ..(ZZ.26|
000019F0: 29 AC 32 36 29 3A 8B 20  51 28 4C 41 29 B2 30 20  |).26):. Q(LA).0 |
00001A00: A7 20 51 28 4C 41 29 B2  AB 32 36 00 11 22 9E 00  |. Q(LA)..26.."..|
00001A10: 8F 00 54 22 9F 00 8F 20  20 41 44 44 20 4F 4E 45  |..T"...  ADD ONE|
00001A20: 20 28 43 49 52 43 55 4C  41 52 4C 59 29 20 54 4F  | (CIRCULARLY) TO|
00001A30: 20 54 48 45 20 20 20 20  20 20 20 20 4C 41 53 54  | THE        LAST|
00001A40: 20 50 4F 49 4E 54 45 52  2E 20 4D 41 4B 45 20 41  | POINTER. MAKE A|
00001A50: 20 4E 45 57 00 9C 22 A0  00 8F 20 20 52 41 4E 44  | NEW.."...  RAND|
00001A60: 4F 4D 20 54 49 4D 45 20  46 4F 52 20 54 48 45 20  |OM TIME FOR THE |
00001A70: 4E 45 58 54 20 20 20 20  20 20 20 20 20 20 20 41  |NEXT           A|
00001A80: 52 52 49 56 41 4C 2E 20  53 55 42 54 52 41 43 54  |RRIVAL. SUBTRACT|
00001A90: 20 54 48 45 20 50 52 45  53 45 4E 54 00 E0 22 A1  | THE PRESENT..".|
00001AA0: 00 8F 20 20 54 49 4D 45  20 46 52 4F 4D 20 54 48  |..  TIME FROM TH|
00001AB0: 45 20 51 55 45 55 45 20  54 49 4D 45 2C 20 41 4E  |E QUEUE TIME, AN|
00001AC0: 44 20 20 20 20 20 20 41  44 44 20 4F 4E 45 20 54  |D      ADD ONE T|
00001AD0: 4F 20 54 48 45 20 43 4F  55 4E 54 45 52 20 4F 46  |O THE COUNTER OF|
00001AE0: 00 22 23 A2 00 8F 20 20  50 45 4F 50 4C 45 20 49  |."#...  PEOPLE I|
00001AF0: 4E 20 54 48 45 20 51 55  45 55 45 2E 20 28 54 48  |N THE QUEUE. (TH|
00001B00: 45 53 45 20 20 20 20 20  20 20 20 41 52 45 20 46  |ESE        ARE F|
00001B10: 4F 52 20 54 48 45 20 53  54 41 54 49 53 54 49 43  |OR THE STATISTIC|
00001B20: 53 29 00 67 23 A3 00 8F  20 20 49 46 20 54 48 45  |S).g#...  IF THE|
00001B30: 20 4E 45 58 54 20 54 49  4D 45 20 4F 46 20 41 52  | NEXT TIME OF AR|
00001B40: 52 49 56 41 4C 20 49 53  20 20 20 20 20 47 52 45  |RIVAL IS     GRE|
00001B50: 41 54 45 52 20 54 48 41  4E 20 43 4C 4F 53 49 4E  |ATER THAN CLOSIN|
00001B60: 47 20 54 49 4D 45 2C 00  AD 23 A4 00 8F 20 20 54  |G TIME,..#...  T|
00001B70: 48 45 4E 20 44 4F 4E 27  54 20 41 4C 4C 4F 57 20  |HEN DON'T ALLOW |
00001B80: 41 4E 59 20 4D 4F 52 45  20 20 20 20 20 20 20 20  |ANY MORE        |
00001B90: 20 20 50 45 4F 50 4C 45  20 54 4F 20 41 52 52 49  |  PEOPLE TO ARRI|
00001BA0: 56 45 20 42 59 20 53 45  54 54 49 4E 47 00 ED 23  |VE BY SETTING..#|
00001BB0: A5 00 8F 20 20 54 48 45  20 4E 45 58 54 20 41 52  |...  THE NEXT AR|
00001BC0: 52 49 56 41 4C 20 54 49  4D 45 20 54 4F 20 20 20  |RIVAL TIME TO   |
00001BD0: 20 20 20 20 20 20 20 20  49 4E 46 49 4E 49 54 59  |        INFINITY|
00001BE0: 2E 20 54 48 45 4E 20 52  45 54 55 52 4E 00 F3 23  |. THEN RETURN..#|
00001BF0: A6 00 8F 00 29 24 A7 00  4C 41 B2 A5 20 41 44 44  |....)$..LA.. ADD|
00001C00: 28 4C 41 29 3A 20 4E 58  54 B2 4E 58 54 AA A5 20  |(LA): NXT.NXT.. |
00001C10: 52 41 28 41 52 29 3A 51  54 B2 51 54 AB 54 4D 45  |RA(AR):QT.QT.TME|
00001C20: 3A 20 51 4E B2 51 4E AA  31 00 43 24 A8 00 8B 20  |: QN.QN.1.C$... |
00001C30: 4E 58 54 B1 4D 58 54 20  A7 20 4E 58 54 B2 45 4D  |NXT.MXT . NXT.EM|
00001C40: 50 54 59 00 49 24 A9 00  8E 00 4F 24 AA 00 8F 00  |PTY.I$....O$....|
00001C50: 96 24 AB 00 8F 20 20 54  48 49 53 20 53 55 42 52  |.$...  THIS SUBR|
00001C60: 4F 55 54 49 4E 45 20 4D  4F 56 45 53 20 41 20 50  |OUTINE MOVES A P|
00001C70: 45 52 53 4F 4E 20 20 20  20 20 46 52 4F 4D 20 46  |ERSON     FROM F|
00001C80: 52 4F 4E 54 20 4F 46 20  54 48 45 20 51 55 45 55  |RONT OF THE QUEU|
00001C90: 45 20 54 4F 20 41 00 CD  24 AC 00 8F 20 20 54 45  |E TO A..$...  TE|
00001CA0: 4C 4C 45 52 2C 20 41 4E  44 20 47 45 4E 45 52 41  |LLER, AND GENERA|
00001CB0: 54 45 53 20 54 48 45 20  54 49 4D 45 20 20 20 20  |TES THE TIME    |
00001CC0: 20 46 4F 52 20 53 45 52  56 49 43 45 2E 00 14 25  | FOR SERVICE...%|
00001CD0: AD 00 8F 20 20 4D 4F 56  45 20 54 48 45 20 46 52  |...  MOVE THE FR|
00001CE0: 4F 4E 54 20 50 45 52 53  4F 4E 20 54 4F 20 54 48  |ONT PERSON TO TH|
00001CF0: 45 20 20 20 20 20 20 20  54 45 4C 4C 45 52 2E 20  |E       TELLER. |
00001D00: 53 45 54 20 54 48 45 20  53 45 52 56 49 43 45 20  |SET THE SERVICE |
00001D10: 54 49 4D 45 00 5C 25 AE  00 8F 20 20 54 4F 20 41  |TIME.\%...  TO A|
00001D20: 20 52 41 4E 44 4F 4D 20  4E 55 4D 42 45 52 2E 20  | RANDOM NUMBER. |
00001D30: 41 44 44 20 54 48 45 20  20 20 20 20 20 20 20 53  |ADD THE        S|
00001D40: 45 52 56 49 43 45 20 54  49 4D 45 20 54 4F 20 54  |ERVICE TIME TO T|
00001D50: 48 45 20 54 4F 54 41 4C  20 41 4E 44 00 A4 25 AF  |HE TOTAL AND..%.|
00001D60: 00 8F 20 20 55 50 44 41  54 45 20 54 48 45 20 46  |..  UPDATE THE F|
00001D70: 52 4F 4E 54 20 50 4F 49  4E 54 45 52 20 54 4F 20  |RONT POINTER TO |
00001D80: 20 20 20 20 20 20 20 54  48 45 20 4E 45 58 54 20  |       THE NEXT |
00001D90: 28 43 49 52 43 55 4C 41  52 29 20 50 4F 53 49 54  |(CIRCULAR) POSIT|
00001DA0: 49 4F 4E 2E 00 AA 25 B0  00 8F 00 F1 25 B1 00 54  |ION...%.....%..T|
00001DB0: 46 28 58 58 29 B2 51 28  46 52 29 3A 20 54 45 28  |F(XX).Q(FR): TE(|
00001DC0: 58 58 29 B2 54 4D 45 AA  A5 20 52 41 28 53 41 29  |XX).TME.. RA(SA)|
00001DD0: 3A 41 56 45 B2 41 56 45  AA 54 45 28 58 58 29 AB  |:AVE.AVE.TE(XX).|
00001DE0: 54 4D 45 3A 20 46 52 B2  A5 20 41 44 44 28 46 52  |TME: FR.. ADD(FR|
00001DF0: 29 00 F7 25 B2 00 8F 00  3E 26 B3 00 8F 20 20 55  |)..%....>&...  U|
00001E00: 50 44 41 54 45 20 54 48  45 20 53 54 41 54 49 53  |PDATE THE STATIS|
00001E10: 54 49 43 20 46 4F 52 20  54 49 4D 45 2D 20 20 20  |TIC FOR TIME-   |
00001E20: 20 20 49 4E 2D 51 55 45  55 45 20 41 4E 44 20 45  |  IN-QUEUE AND E|
00001E30: 4E 53 55 52 45 20 54 48  41 54 20 54 48 45 00 79  |NSURE THAT THE.y|
00001E40: 26 B4 00 8F 20 20 54 45  4C 4C 45 52 20 49 53 20  |&...  TELLER IS |
00001E50: 4E 45 47 41 54 49 56 45  20 46 4F 52 20 54 48 45  |NEGATIVE FOR THE|
00001E60: 20 20 20 20 20 20 20 20  20 44 49 53 50 4C 41 59  |         DISPLAY|
00001E70: 20 52 4F 55 54 49 4E 45  2E 00 7F 26 B5 00 8F 00  | ROUTINE...&....|
00001E80: AA 26 B6 00 51 54 B2 51  54 AA 54 4D 45 3A 20 8B  |.&..QT.QT.TME: .|
00001E90: 20 54 46 28 58 58 29 B1  30 20 A7 20 54 46 28 58  | TF(XX).0 . TF(X|
00001EA0: 58 29 B2 AB 54 46 28 58  58 29 00 B0 26 B7 00 8E  |X)..TF(XX)..&...|
00001EB0: 00 B6 26 B8 00 8F 00 F7  26 B9 00 8F 20 20 50 52  |..&.....&...  PR|
00001EC0: 49 4E 54 20 4F 55 54 20  54 48 45 20 53 54 41 54  |INT OUT THE STAT|
00001ED0: 49 53 54 49 43 53 20 54  48 41 54 20 20 20 20 20  |ISTICS THAT     |
00001EE0: 20 57 45 52 45 20 43 4F  4C 4C 45 43 54 45 44 20  | WERE COLLECTED |
00001EF0: 26 20 53 54 4F 50 2E 00  FD 26 BA 00 8F 00 03 27  |& STOP...&.....'|
00001F00: BB 00 99 00 2A 27 BC 00  99 22 D4 4F 54 41 4C 20  |....*'...".OTAL |
00001F10: 53 45 52 56 49 43 45 20  54 49 4D 45 20 20 20 3D  |SERVICE TIME   =|
00001F20: 22 41 56 45 22 4D 49 4E  2E 22 00 4A 27 BD 00 99  |"AVE"MIN.".J'...|
00001F30: 22 CE 55 4D 42 45 52 20  4F 46 20 43 55 53 54 4F  |".UMBER OF CUSTO|
00001F40: 4D 45 52 53 20 20 3D 22  5A 5A 00 74 27 BE 00 99  |MERS  ="ZZ.t'...|
00001F50: 22 C1 56 45 52 41 47 45  20 53 45 52 56 49 43 45  |".VERAGE SERVICE|
00001F60: 20 54 49 4D 45 20 3D 22  41 56 45 AD 5A 5A 22 4D  | TIME ="AVE.ZZ"M|
00001F70: 49 4E 2E 22 00 AE 27 BF  00 99 22 D0 45 52 43 45  |IN."..'...".ERCE|
00001F80: 4E 54 41 47 45 20 46 52  45 45 20 54 49 4D 45 20  |NTAGE FREE TIME |
00001F90: 3D 22 28 54 32 AC 4E 54  AB 41 56 45 29 AD 28 54  |="(T2.NT.AVE).(T|
00001FA0: 32 AC 4E 54 29 AC 31 30  30 22 50 43 54 22 00 D7  |2.NT).100"PCT"..|
00001FB0: 27 C0 00 99 22 CD 41 58  49 4D 55 4D 20 51 55 45  |'...".AXIMUM QUE|
00001FC0: 55 45 20 4C 45 4E 47 54  48 20 3D 22 51 48 22 45  |UE LENGTH ="QH"E|
00001FD0: 4E 54 52 49 45 53 22 00  FD 27 C1 00 99 22 D4 4F  |NTRIES"..'...".O|
00001FE0: 54 41 4C 20 51 55 45 55  45 20 54 49 4D 45 20 20  |TAL QUEUE TIME  |
00001FF0: 20 20 20 3D 22 51 54 22  4D 49 4E 2E 22 00 26 28  |   ="QT"MIN.".&(|
00002000: C2 00 99 22 C1 56 45 52  41 47 45 20 51 55 45 55  |...".VERAGE QUEU|
00002010: 45 20 54 49 4D 45 20 20  20 3D 22 51 54 AD 51 4E  |E TIME   ="QT.QN|
00002020: 22 4D 49 4E 2E 22 00 61  28 C3 00 99 3A 99 22 D3  |"MIN.".a(...:.".|
00002030: 49 4D 55 4C 41 54 49 4F  4E 20 43 4F 4D 50 4C 45  |IMULATION COMPLE|
00002040: 54 45 2E 22 3A 85 22 D0  52 45 53 53 20 3C 43 52  |TE.":.".RESS <CR|
00002050: 3E 20 54 4F 20 43 4F 4E  54 49 4E 55 45 22 3B 41  |> TO CONTINUE";A|
00002060: 24 00 67 28 C4 00 80 00  6D 28 C5 00 8F 00 B4 28  |$.g(....m(.....(|
00002070: C6 00 8F 20 20 54 48 49  53 20 53 55 42 52 4F 55  |...  THIS SUBROU|
00002080: 54 49 4E 45 20 44 49 53  50 4C 41 59 53 20 54 48  |TINE DISPLAYS TH|
00002090: 45 20 20 20 20 20 20 20  53 54 41 54 45 20 4F 46  |E       STATE OF|
000020A0: 20 54 48 45 20 53 49 4D  55 4C 41 54 49 4F 4E 2E  | THE SIMULATION.|
000020B0: 20 54 48 45 00 FA 28 C7  00 8F 20 20 54 49 4D 45  | THE..(...  TIME|
000020C0: 20 41 4E 44 20 54 48 45  20 43 4F 4E 54 45 4E 54  | AND THE CONTENT|
000020D0: 53 20 4F 46 20 45 41 43  48 20 20 20 20 20 20 54  |S OF EACH      T|
000020E0: 45 4C 4C 45 52 20 41 53  20 57 45 4C 4C 20 41 53  |ELLER AS WELL AS|
000020F0: 20 54 48 45 20 51 55 45  55 45 00 41 29 C8 00 8F  | THE QUEUE.A)...|
00002100: 20 20 41 52 45 20 53 48  4F 57 4E 2E 20 41 4E 59  |  ARE SHOWN. ANY|
00002110: 20 45 56 45 4E 54 20 54  48 41 54 20 48 41 53 20  | EVENT THAT HAS |
00002120: 20 20 20 20 20 4F 43 43  55 52 52 45 44 20 53 49  |     OCCURRED SI|
00002130: 4E 43 45 20 54 48 45 20  4C 41 53 54 20 54 49 4D  |NCE THE LAST TIM|
00002140: 45 00 86 29 C9 00 8F 20  20 54 48 45 20 52 4F 55  |E..)...  THE ROU|
00002150: 54 49 4E 45 20 57 41 53  20 43 41 4C 4C 45 44 20  |TINE WAS CALLED |
00002160: 49 53 20 20 20 20 20 20  20 20 20 20 53 48 4F 57  |IS          SHOW|
00002170: 4E 20 49 4E 20 49 4E 56  45 52 53 45 2D 56 49 44  |N IN INVERSE-VID|
00002180: 45 4F 2C 20 54 4F 00 CC  29 CA 00 8F 20 20 48 49  |EO, TO..)...  HI|
00002190: 47 48 2D 4C 49 47 48 54  20 49 54 2E 20 54 48 49  |GH-LIGHT IT. THI|
000021A0: 53 20 52 4F 55 54 49 4E  45 20 20 20 20 20 20 20  |S ROUTINE       |
000021B0: 20 52 45 53 45 54 53 20  54 48 45 20 48 49 47 48  | RESETS THE HIGH|
000021C0: 2D 4C 49 47 48 54 20 46  4C 41 47 2E 00 13 2A CB  |-LIGHT FLAG...*.|
000021D0: 00 8F 20 20 46 49 52 53  54 20 47 45 54 20 54 48  |..  FIRST GET TH|
000021E0: 45 20 54 49 4D 45 2E 20  57 45 20 57 41 4E 54 20  |E TIME. WE WANT |
000021F0: 20 20 20 20 20 20 20 46  49 56 45 20 43 48 41 52  |       FIVE CHAR|
00002200: 41 43 54 45 52 53 20 46  4F 52 20 54 48 45 20 54  |ACTERS FOR THE T|
00002210: 49 4D 45 00 58 2A CC 00  8F 20 20 53 4F 20 57 45  |IME.X*...  SO WE|
00002220: 20 4D 55 53 54 20 46 49  4C 4C 20 4F 55 54 20 54  | MUST FILL OUT T|
00002230: 4F 20 35 20 57 49 54 48  20 20 20 20 20 20 42 4C  |O 5 WITH      BL|
00002240: 41 4E 4B 53 2E 20 54 48  45 20 56 41 52 49 41 42  |ANKS. THE VARIAB|
00002250: 4C 45 20 54 32 20 49 53  00 9E 2A CD 00 8F 20 20  |LE T2 IS..*...  |
00002260: 55 53 45 44 20 54 4F 20  43 41 4C 43 55 4C 41 54  |USED TO CALCULAT|
00002270: 45 20 54 48 45 20 54 4F  54 41 4C 20 20 20 20 20  |E THE TOTAL     |
00002280: 20 20 20 54 49 4D 45 2E  20 49 46 20 54 48 45 20  |   TIME. IF THE |
00002290: 54 49 4D 45 20 49 53 20  30 20 54 48 45 4E 00 D2  |TIME IS 0 THEN..|
000022A0: 2A CE 00 8F 20 20 41 4E  20 45 58 54 52 41 20 4C  |*...  AN EXTRA L|
000022B0: 45 41 44 49 4E 47 20 42  4C 41 4E 4B 20 49 53 20  |EADING BLANK IS |
000022C0: 20 20 20 20 20 20 20 20  20 52 45 51 55 49 52 45  |         REQUIRE|
000022D0: 44 2E 00 D8 2A CF 00 8F  00 EB 2A D0 00 41 24 B2  |D...*.....*..A$.|
000022E0: C8 28 C4 28 54 4D 45 29  2C 35 29 00 15 2B D1 00  |.(.(TME),5)..+..|
000022F0: 81 20 54 B2 31 20 A4 20  35 AB C3 28 41 24 29 3A  |. T.1 . 5..(A$):|
00002300: 20 41 24 B2 22 20 22 AA  41 24 3A 20 82 3A 20 54  | A$." ".A$: .: T|
00002310: 32 B2 54 4D 45 00 2D 2B  D2 00 8B 20 54 4D 45 B2  |2.TME.-+... TME.|
00002320: 30 20 A7 20 41 24 B2 22  20 22 AA 41 24 00 33 2B  |0 . A$." ".A$.3+|
00002330: D3 00 8F 00 78 2B D4 00  8F 20 20 50 52 49 4E 54  |....x+...  PRINT|
00002340: 20 53 4F 4D 45 20 43 55  52 53 4F 52 20 43 4F 4E  | SOME CURSOR CON|
00002350: 54 52 4F 4C 20 54 4F 20  20 20 20 20 20 20 47 45  |TROL TO       GE|
00002360: 54 20 54 4F 20 54 48 45  20 52 49 47 48 54 20 4C  |T TO THE RIGHT L|
00002370: 49 4E 45 2C 20 41 4E 44  00 BE 2B D5 00 8F 20 20  |INE, AND..+...  |
00002380: 54 48 45 4E 20 50 52 49  4E 54 20 4F 55 54 20 54  |THEN PRINT OUT T|
00002390: 48 45 20 54 49 4D 45 2E  20 20 20 20 20 20 20 20  |HE TIME.        |
000023A0: 20 20 20 43 41 4C 43 55  4C 41 54 45 20 54 48 45  |   CALCULATE THE|
000023B0: 20 4C 45 4E 47 54 48 20  4F 46 20 54 48 45 00 04  | LENGTH OF THE..|
000023C0: 2C D6 00 8F 20 20 51 55  45 55 45 20 28 3D 4C 41  |,...  QUEUE (=LA|
000023D0: 2D 46 52 20 4F 52 20 4C  41 2D 46 52 2B 4E 54 2B  |-FR OR LA-FR+NT+|
000023E0: 31 20 20 20 20 20 20 20  20 44 45 50 45 4E 44 49  |1        DEPENDI|
000023F0: 4E 47 20 4F 4E 20 57 48  45 54 48 45 52 20 4C 41  |NG ON WHETHER LA|
00002400: 3E 46 52 29 00 47 2C D7  00 8F 20 20 41 4E 44 20  |>FR).G,...  AND |
00002410: 49 46 20 4E 45 43 45 53  53 41 52 59 2C 20 53 45  |IF NECESSARY, SE|
00002420: 54 20 54 48 45 20 20 20  20 20 20 20 20 20 20 4D  |T THE          M|
00002430: 41 58 49 4D 55 4D 20 51  55 45 55 45 20 4C 45 4E  |AXIMUM QUEUE LEN|
00002440: 47 54 48 20 55 50 2E 00  4D 2C D8 00 8F 00 83 2C  |GTH UP..M,.....,|
00002450: D9 00 99 20 22 13 11 11  11 11 11 11 11 11 11 11  |... "...........|
00002460: 11 11 22 41 24 22 20 22  3B 3A 4C 51 B2 28 4C 41  |.."A$" ";:LQ.(LA|
00002470: AB 46 52 29 AB 28 4C 41  B3 46 52 29 AC 28 4E 54  |.FR).(LA.FR).(NT|
00002480: AA 31 29 00 97 2C DA 00  8B 20 4C 51 B1 51 48 20  |.1)..,... LQ.QH |
00002490: A7 20 51 48 B2 4C 51 00  9D 2C DB 00 8F 00 E3 2C  |. QH.LQ..,.....,|
000024A0: DC 00 8F 20 20 46 4F 52  20 45 41 43 48 20 54 45  |...  FOR EACH TE|
000024B0: 4C 4C 45 52 2C 20 43 52  45 41 54 45 20 54 48 45  |LLER, CREATE THE|
000024C0: 20 20 20 20 20 20 20 20  41 50 50 52 4F 50 52 49  |        APPROPRI|
000024D0: 41 54 45 20 43 48 41 52  41 43 54 45 52 20 54 4F  |ATE CHARACTER TO|
000024E0: 20 42 45 00 14 2D DD 00  8F 20 20 44 49 53 50 4C  | BE..-...  DISPL|
000024F0: 41 59 45 44 2E 20 41 20  46 52 45 45 20 54 45 4C  |AYED. A FREE TEL|
00002500: 4C 45 52 20 49 53 20 41  20 20 20 20 20 20 42 4C  |LER IS A      BL|
00002510: 41 4E 4B 2E 00 1A 2D DE  00 8F 00 50 2D DF 00 81  |ANK...-....P-...|
00002520: 20 49 B2 31 20 A4 20 4E  54 3A 20 41 24 B2 C7 28  | I.1 . NT: A$..(|
00002530: 54 46 28 49 29 AA 36 34  29 3A 8B 20 54 45 28 49  |TF(I).64):. TE(I|
00002540: 29 B2 45 4D 50 54 59 20  A7 20 41 24 B2 22 20 22  |).EMPTY . A$." "|
00002550: 00 56 2D E0 00 8F 00 9D  2D E1 00 8F 20 20 49 46  |.V-.....-...  IF|
00002560: 20 41 20 4E 45 47 41 54  49 56 45 20 4E 55 4D 42  | A NEGATIVE NUMB|
00002570: 45 52 20 49 53 20 46 4F  55 4E 44 2C 20 20 20 20  |ER IS FOUND,    |
00002580: 20 54 48 45 4E 20 54 48  45 20 43 48 41 52 41 43  | THEN THE CHARAC|
00002590: 54 45 52 20 53 48 4F 55  4C 44 20 42 45 00 E1 2D  |TER SHOULD BE..-|
000025A0: E2 00 8F 20 20 49 4E 20  49 4E 56 45 52 53 45 2D  |...  IN INVERSE-|
000025B0: 56 49 44 45 4F 2E 20 52  45 43 41 4C 43 55 4C 41  |VIDEO. RECALCULA|
000025C0: 54 45 20 20 20 20 20 20  54 48 45 20 43 48 41 52  |TE      THE CHAR|
000025D0: 41 43 54 45 52 20 41 4E  44 20 53 45 54 20 54 48  |ACTER AND SET TH|
000025E0: 45 00 26 2E E3 00 8F 20  20 4E 55 4D 42 45 52 20  |E.&....  NUMBER |
000025F0: 50 4F 53 49 54 49 56 45  20 54 4F 20 50 52 45 56  |POSITIVE TO PREV|
00002600: 45 4E 54 20 20 20 20 20  20 20 20 20 52 45 2D 44  |ENT         RE-D|
00002610: 49 53 50 4C 41 59 20 4F  46 20 54 48 45 20 49 4E  |ISPLAY OF THE IN|
00002620: 56 45 52 53 45 2E 00 2C  2E E4 00 8F 00 60 2E E5  |VERSE..,.....`..|
00002630: 00 8B 20 54 46 28 49 29  B3 30 20 A7 20 54 46 28  |.. TF(I).0 . TF(|
00002640: 49 29 B2 AB 54 46 28 49  29 3A 41 24 B2 22 12 22  |I)..TF(I):A$."."|
00002650: AA C7 28 54 46 28 49 29  AA 36 34 29 AA 22 92 22  |..(TF(I).64)."."|
00002660: 00 86 2E E6 00 8B 20 54  45 28 49 29 B3 30 20 A7  |...... TE(I).0 .|
00002670: 20 41 24 B2 22 12 20 92  22 3A 54 45 28 49 29 B2  | A$.". .":TE(I).|
00002680: AB 54 45 28 49 29 00 8C  2E E7 00 8F 00 D2 2E E8  |.TE(I)..........|
00002690: 00 8F 20 20 50 52 49 4E  54 20 54 48 45 20 43 48  |..  PRINT THE CH|
000026A0: 41 52 41 43 54 45 52 20  41 4E 44 20 47 4F 20 4F  |ARACTER AND GO O|
000026B0: 4E 20 20 20 20 20 20 57  49 54 48 20 54 48 45 20  |N      WITH THE |
000026C0: 4C 4F 4F 50 2E 20 54 48  45 4E 20 50 52 49 4E 54  |LOOP. THEN PRINT|
000026D0: 20 41 00 20 2F E9 00 8F  20 20 42 4C 41 4E 4B 20  | A. /...  BLANK |
000026E0: 46 4F 52 20 53 50 41 43  49 4E 47 2C 20 26 20 53  |FOR SPACING, & S|
000026F0: 45 54 20 54 48 45 20 20  20 20 20 20 20 4C 4F 4F  |ET THE       LOO|
00002700: 50 20 43 4F 55 4E 54 45  52 20 54 4F 20 46 49 52  |P COUNTER TO FIR|
00002710: 53 54 20 46 4F 52 20 54  48 45 20 51 55 45 55 45  |ST FOR THE QUEUE|
00002720: 00 3D 2F EA 00 99 20 22  20 22 41 24 3B 3A 20 82  |.=/... " "A$;: .|
00002730: 3A 99 22 20 20 22 3B 3A  20 49 B2 46 52 00 43 2F  |:."  ";: I.FR.C/|
00002740: EB 00 8F 00 89 2F EC 00  8F 20 20 49 46 20 57 45  |...../...  IF WE|
00002750: 20 41 52 45 20 41 54 20  54 48 45 20 45 4E 44 20  | ARE AT THE END |
00002760: 4F 46 20 54 48 45 20 20  20 20 20 20 20 20 51 55  |OF THE        QU|
00002770: 45 55 45 2C 20 54 48 45  4E 20 50 52 49 4E 54 20  |EUE, THEN PRINT |
00002780: 4E 54 20 42 4C 41 4E 4B  53 00 D0 2F ED 00 8F 20  |NT BLANKS../... |
00002790: 20 28 54 4F 20 43 4C 45  41 52 20 4F 55 54 20 41  | (TO CLEAR OUT A|
000027A0: 4E 59 20 54 48 41 54 20  48 41 56 45 20 20 20 20  |NY THAT HAVE    |
000027B0: 20 20 20 20 42 45 45 4E  20 54 52 41 4E 53 46 45  |    BEEN TRANSFE|
000027C0: 52 52 45 44 20 54 4F 20  54 45 4C 4C 45 52 53 29  |RRED TO TELLERS)|
000027D0: 00 EE 2F EE 00 8F 20 20  54 48 45 4E 20 50 41 55  |../...  THEN PAU|
000027E0: 53 45 20 41 4E 44 20 52  45 54 55 52 4E 2E 00 12  |SE AND RETURN...|
000027F0: 30 EF 00 8B 20 49 B2 4C  41 20 A7 20 81 20 4B B2  |0... I.LA . . K.|
00002800: 31 20 A4 20 4E 54 3A 99  22 20 22 3B 3A 20 82 3A  |1 . NT:." ";: .:|
00002810: 20 99 00 2F 30 F0 00 8B  20 49 B2 4C 41 20 A7 20  | ../0... I.LA . |
00002820: 81 20 49 B2 31 20 A4 20  50 41 3A 20 82 3A 8E 00  |. I.1 . PA: .:..|
00002830: 35 30 F1 00 8F 00 7B 30  F2 00 8F 20 20 47 45 54  |50....{0...  GET|
00002840: 20 54 48 45 20 43 48 41  52 41 43 54 45 52 20 4F  | THE CHARACTER O|
00002850: 46 20 54 48 45 20 51 55  45 55 45 20 20 20 20 20  |F THE QUEUE     |
00002860: 45 4E 54 52 59 2E 20 49  46 20 4E 45 47 41 54 49  |ENTRY. IF NEGATI|
00002870: 56 45 2C 20 54 48 45 4E  20 57 45 00 BD 30 F3 00  |VE, THEN WE..0..|
00002880: 8F 20 20 52 45 53 45 54  20 54 48 45 20 45 4E 54  |.  RESET THE ENT|
00002890: 52 59 20 54 4F 20 50 4F  53 49 54 49 56 45 20 20  |RY TO POSITIVE  |
000028A0: 20 20 20 20 20 20 41 4E  44 20 44 49 53 50 4C 41  |      AND DISPLA|
000028B0: 59 20 54 48 45 20 43 4F  52 52 45 43 54 00 04 31  |Y THE CORRECT..1|
000028C0: F4 00 8F 20 20 43 48 41  52 41 43 54 45 52 20 49  |...  CHARACTER I|
000028D0: 4E 20 49 4E 56 45 52 53  45 2D 56 49 44 45 4F 2E  |N INVERSE-VIDEO.|
000028E0: 20 20 20 20 20 20 20 20  50 52 49 4E 54 20 54 48  |        PRINT TH|
000028F0: 45 20 43 48 41 52 41 43  54 45 52 20 41 4E 44 20  |E CHARACTER AND |
00002900: 4C 4F 4F 50 00 38 31 F5  00 8F 20 20 43 49 52 43  |LOOP.81...  CIRC|
00002910: 55 4C 41 52 4C 59 20 28  55 53 45 20 54 48 45 20  |ULARLY (USE THE |
00002920: 41 44 44 20 20 20 20 20  20 20 20 20 20 20 20 46  |ADD            F|
00002930: 55 4E 43 54 49 4F 4E 29  00 3E 31 F6 00 8F 00 50  |UNCTION).>1....P|
00002940: 31 F7 00 41 24 B2 C7 28  51 28 49 29 AA 36 34 29  |1..A$..(Q(I).64)|
00002950: 00 80 31 F8 00 8B 20 51  28 49 29 B3 30 20 A7 20  |..1... Q(I).0 . |
00002960: 51 28 49 29 B2 AB 51 28  49 29 3A 41 24 B2 22 12  |Q(I)..Q(I):A$.".|
00002970: 22 AA C7 28 51 28 49 29  AA 36 34 29 AA 22 92 22  |"..(Q(I).64)."."|
00002980: 00 9D 31 F9 00 99 20 41  24 3B 3A 20 49 B2 A5 20  |..1... A$;: I.. |
00002990: 41 44 44 28 49 29 3A 20  89 20 32 33 39 00 00 00  |ADD(I): . 239...|
....... (C)1985 GOLD DISK INC.#.....0...
. QUEUES.6.....J.... 53281,0:.".";.P....
.T....  DEFINE NECCESSARY FUNCTIONS:....
..  FUNCTION TO ADD TO THE CIRCULAR    Q
UEUE:.J.... . ADD(X).(X.1).(X.1.NQ).(NQ.
1).P..........  FUNCTION TO DETERMINE IF
 THE       QUEUE IS FULL.1.... . FULL(X)
.(LA.FR.1).(FR.0 . LA.NQ).7.........  N
EXT WE HAVE A FUNCTION TO GIVE    RANDOM
 NUMBERS. TWO FUNCTIONS.J....  ARE PROVI
DED. ONE USES THE LOG     FUNCTION TO YI
ELD NUMBERS WITH A......  POISSON DISTRI
BUTION. THE OTHER    YIELDS UNIFORMLY DI
STRIBUTED.G....  NUMBERS. ONLY ONE MAY B
E USED      AT ANY TIME.E.... DEF FN RA(
X)=RND(0)*X*2.~.... . RA(X)..X..(.(0))..
.....L....  NOW WE MUST INITIALIZE THE  
       CONSTANTS. OF IMPORTANCE ARE:....
.. NT=NUMBER OF TELLERS                 
   SA=AVERAGE SERVICE TIME._.... AR=AVER
AGE ARRIVAL TIME                 PA=LENG
TH OF PAUSE AFTER PRINT...... IQ=NUMBER 
INITIALLY IN QUEUE            MXT=CLOSIN
G TIME (THERE ARE NO......     NEW ARRIV
ALS AFTER MXT)             NQ=LENGTH OF 
THE QUEUE..6...NQ.26: NT.2: SA.3: AR.1.4
: PA.0:EMPTY.9E9: MXT.50 : IQ.0: ZZ.IQ.<
.....~....  INITIALIZE THE VALUES USED T
O      DETERMINE THE AVERAGES........ ..
.QH.0: AV.0: QT.0: QN.IQ......... ..  NO
W SET UP THE NECESSARY ARRAYS    FOR THE
 QUEUE AND THE TELLERS...!..  AND EMPTY 
THE TELLERS ARRAYS..-.".. TE(NT),TF(NT),
Q(NQ).L.#.. I.1 . NT: TE(I).EMPTY: ..R.$
.....%..  SET THE TWO POINTERS INTO THE 
     QUEUE,FR AND LA, TO 0 AND THE...&..
  NUMBER OF PEOPLE INITIALLY IN      THE
 QUEUE. SET THE TIME TO 0.).'..  AND THE
 TIME OF NEXT ARRIVAL TO    0 OR A RANDO
M TIME, DEPENDING.K.(..  ON WHETHER THER
E ARE ANY PEOPLE    IN THE QUEUE INITIAL
LY..Q.).....*.FR.0: LA.IQ: TME.0: NXT..(
IQ..0).. RA(AR)...+.....,..  IF THERE AR
E PEOPLE WAITING, WE    MUST PUT THEM IN
TO THE QUEUE..0.-..  THEY ARE INSERTED A
T LAST,         WHICH WAS SET EARLIER TO
.E....  REFLECT THE NUMBER WAITING AT   
   THE START..K./.....0.. IQ..0 . . I.FR
 . LA.1:Q(I).I.1: ....1.....2..  PRINT O
UT A HEADINGS ETC....3.....4..".": ."...
.": ."       THE GREAT BANK SIMULATION":
..(.5.."  THE DISPLAY CHANGES AT EACH NE
W EVENT".N.6.."THAT OCCURS, AND THE EVEN
T IS HIGH-":."LIGHTED. A SPACE IN A ";..
.7.."TELLER'S SPOT":."INDICATES THAT THE
 TELLER IS FREE.":.:....8...Y.9..  PROMP
T FOR THE CARRIAGE-RETURN...:... .;.."PR
ESS <CR> TO BEGIN THE SIMULATION";A$: ."
.";: . I.1 . 35:.3.<.." ";: .: .".".9.=.
..L.>..  PRINT OUT THE HEADING FOR THE  
    DISPLAY..R.?.....@.. NT.2 . . .NT.2)
;...A.."      TELLER": ."  TIME ";:. I.1
 . NT: A$.D(I).Z.B.. H(A$,2);:.:."  QUEU
E"...C...&.D..  BEGIN THE SIMULATION. TH
IS IS      BEFORE THE MAIN LOOP, SO WE.I
.E..  MUST HANDLE THE PEOPLE IN THE     
 QUEUE AT THE OUTSET NOW....F..  IF THER
E ARE NONE WAITING, THEN    CONTINUE ON 
TO THE MAIN LOOP....G...G.H.. IQ.0 . 87.
M.I.....J..  FIND THE SMALLER OF THE NUM
BER     OF TELLERS AND THE NUMBER OF.\.K
..  PEOPLE INITIALLY IN THE QUEUE.     D
ISPLAY THE QUEUE AND TELLERS...L..  AND 
THEN MOVE PEOPLE FROM THE      QUEUE TO 
THE TELLERS. THIS...M..  SHOULD CONTINUE
 UNTIL WE RUN       OUT OF PEOPLE OR TEL
LERS....N.....O.UU.IQ: . NT.IQ . UU.NT.&
.P.. 208: . XX.1 . UU:. 177: ..,.Q...T.R
..  START OF THE MAIN LOOP. FIRST      W
E DISPLAY THE WHOLE THING AS...S..  IT I
S PRESENTLY. THEN WE GO AND    FIND THE 
TIME OF THE NEXT...T..  INTERESTING EVEN
T. IF THE NEXT     EVENT IS AT TIME EMPT
Y, THEN THE.L.U..  SIMULATION IS OVER AN
D WE          SHOULD DISPLAY THE STATIST
ICS..R.V...L.W.. 208: . 136: TME.MIN...X
.. TME.EMPTY . 187...Y...O.Z..  THERE AR
E TWO DIFFERENT            COURSES TO TA
KE DEPENDING ON...[..  WHETHER THE QUEUE
 IS EMPTY...\.. LA..FR . 116...]...R.^..
  THE QUEUE IS EMPTY. WE SERVICE     THE
 EVENT OF INTEREST. IF THE..._..  VARIAB
LE XX IS ZERO, THEN THE      EVENT IS A 
TELLER FINISHING A...`..  CUSTOMER. SINC
E THE QUEUE IS       EMPTY, WE REMOVE TH
E PERSON.).A..  FROM THE TELLER'S SPOT, 
AND        JUST GO BACK TO THE MAIN LOOP
../.B...I.C.. XX..0 . . 144: . 87.O.D...
..E..  XX=0 MEANS THAT A NEW CUSTOMER   
  HAS ARRIVED, SO PUT THEM IN.Z.F..  THE
 (EMPTY) QUEUE. NOW CHECK       WHETHER 
OR NOT A TELLER IS.!.G..  FREE TO SERVIC
E THE CUSTOMER.      IF ONE IS, MOVE THE
 CUSTOMER.H.H..  OVER TO THE TELLER, AND
 FORCE      AN EARLY EXIT FROM THE LOOP.
...I..  FINALLY RETURN TO THE MAIN      
   LOOP FOR THE NEXT EVENT....J.....K.. 
149: . XX.1 . NT:. TE(XX).EMPTY . . 177:
 XX.NT...L..: . 87...M...@.N..  THE QUEU
E IS NOT EMPTY. AGAIN      WE MUST DETER
MINE THE TYPE OF...O..  THE EVENT. IF A 
TELLER HAS         FINISHED SERVICING A 
CUSTOMER.O.P..  THEN REMOVE THE CUSTOMER
 FROM      THE TELLER'S SPOT, BUT SINCE.
..Q..  THE QUEUE IS NOT EMPTY, TAKE A   
  NEW CUSTOMER FROM THE QUEUE.N.R..  AND
 SERVICE THEM. THEN BACK TO     THE MAIN
 LOOP..T.S...U.T.. XX..0 . . 144: . 177:
 . 87.{.U...B.V..  XX=0 MEANS THAT THERE
 IS A NEW     ARRIVAL TO THE QUEUE. WE A
DD...W..  THE NEW ARRIVAL, BUT SINCE THE
     QUEUE ISN'T EMPTY, WE NEEDN'T.R.X..
  CHECK THE TELLERS. BACK TO THE     MAI
N LOOP FOR THE NEXT EVENT..X.Y...H.Z.. 1
49: . 87.N.{.....|..  THIS SUBROUTINE FI
NDS THE          SMALLEST OF THE TIMES O
F...}..  COMPLETION OF SERVICE FOR EACH 
    TELLER, AND THE ARRIVAL TIME.>.~..  
OF THE NEXT CUSTOMER. THIS IS      THE N
EXT INTERESTING EVENT......  THE VARIAB
LE MIN IS SET TO THE     SMALLEST OF THE
 TIMES AND THE.N....  VARIABLE XX IS SET
 TO 0 IF THE     EVENT IS A NEW CUSTOMER
 OR TO......  THE NUMBER OF THE TELLER I
F        THE EVENT IS A TELLER THAT IS.'
....  FINISHED..M....  INITIALIZE MIN TO
 A LARGE          VALUE AND THEN LOOP TH
ROUGH......  THE TELLERS, SETTING MIN EQ
UAL     TO ANY LOWER VALUE. AT THE......
  SAME TIME, SET XX TO THE LOOP      COU
NTER. THEN CHECK THE TIME.?....  OF ARRI
VAL OF THE NEXT PERSON      AND RESET MI
N IF NECESSARY..E........MIN.2.EMPTY: .
 I.1 . NT:. TE(I).MIN . MIN.TE(I): XX.I.
.....: . NXT.MIN . MIN.NXT:XX.0.........
.........  THIS SUBROUTINE REMOVES A    
      CUSTOMER FROM A TELLER. THE.3.... 
 TELLER IS SET TO EMPTY. THE        NEGA
TIVE IS TO TELL THE.V....  DISPLAY ROUTI
NE THAT SOMETHING     HAPPENED TO THIS T
ELLER..|.........TE(XX)..EMPTY: ........
X....  THIS SUBROUTINE ADDS A PERSON    
  TO THE CIRCULAR QUEUE... ...  FIRST MA
KE SURE THAT THE QUEUE     WON'T OVERFLO
W. IF IT WILL,.= ...  THEN ABORT THE PRO
GRAM..O ... . FULL(Q) . .:. "QUEUE OVERF
LOW...ABORT": ..U ..... ...  ADD ONE TO 
THE NUMBER OF           PEOPLE THAT CAME
, AND PUT A..!...  NUMBER IN THE QUEUE T
HAT WILL      DISTINGUISH THE PERSON. EA
CH.E!...  PERSON IS GIVEN A NUMBER THAT 
     IS BETWEEN 1 AND 26. THE..!...  NUM
BER IS NEGATIVE INITIALLY       FOR THE 
DISPLAY ROUTINE..J!...  THE NUMBER IS CY
CLED AROUND        1,2,...25,26,1,2... E
TC.P!....."..ZZ.ZZ.1: Q(LA)..(ZZ..(ZZ.26
).26):. Q(LA).0 . Q(LA)..26.."....T"... 
 ADD ONE (CIRCULARLY) TO THE        LAST
 POINTER. MAKE A NEW.." ..  RANDOM TIME 
FOR THE NEXT           ARRIVAL. SUBTRACT
 THE PRESENT.."...  TIME FROM THE QUEUE 
TIME, AND      ADD ONE TO THE COUNTER OF
."#...  PEOPLE IN THE QUEUE. (THESE     
   ARE FOR THE STATISTICS).G#...  IF THE
 NEXT TIME OF ARRIVAL IS     GREATER THA
N CLOSING TIME,..#...  THEN DON'T ALLOW 
ANY MORE          PEOPLE TO ARRIVE BY SE
TTING..#...  THE NEXT ARRIVAL TIME TO   
        INFINITY. THEN RETURN..#....)$..
LA.. ADD(LA): NXT.NXT.. RA(AR):QT.QT.TME
: QN.QN.1.C$... NXT.MXT . NXT.EMPTY.I$..
..O$.....$...  THIS SUBROUTINE MOVES A P
ERSON     FROM FRONT OF THE QUEUE TO A.M
$...  TELLER, AND GENERATES THE TIME    
 FOR SERVICE...%...  MOVE THE FRONT PERS
ON TO THE       TELLER. SET THE SERVICE 
TIME.\%...  TO A RANDOM NUMBER. ADD THE 
       SERVICE TIME TO THE TOTAL AND..%.
..  UPDATE THE FRONT POINTER TO        T
HE NEXT (CIRCULAR) POSITION...%.....%..T
F(XX).Q(FR): TE(XX).TME.. RA(SA):AVE.AVE
.TE(XX).TME: FR.. ADD(FR)..%....>&...  U
PDATE THE STATISTIC FOR TIME-     IN-QUE
UE AND ENSURE THAT THE.Y&...  TELLER IS 
NEGATIVE FOR THE         DISPLAY ROUTINE
..&.....&..QT.QT.TME: . TF(XX).0 . TF(X
X)..TF(XX)..&.....&.....&...  PRINT OUT 
THE STATISTICS THAT      WERE COLLECTED 
& STOP...&.....'....*'..."TOTAL SERVICE 
TIME   ="AVE"MIN.".J'..."NUMBER OF CUSTO
MERS  ="ZZ.T'..."AVERAGE SERVICE TIME ="
AVE.ZZ"MIN."..'..."PERCENTAGE FREE TIME 
="(T2.NT.AVE).(T2.NT).100"PCT".W'..."MAX
IMUM QUEUE LENGTH ="QH"ENTRIES"..'A.."TO
TAL QUEUE TIME     ="QT"MIN.".&(B.."AVER
AGE QUEUE TIME   ="QT.QN"MIN.".A(C..:."S
IMULATION COMPLETE.":."PRESS <CR> TO CON
TINUE";A$.G(D...M(E....(F..  THIS SUBROU
TINE DISPLAYS THE       STATE OF THE SIM
ULATION. THE..(G..  TIME AND THE CONTENT
S OF EACH      TELLER AS WELL AS THE QUE
UE.A)H..  ARE SHOWN. ANY EVENT THAT HAS 
     OCCURRED SINCE THE LAST TIME..)I.. 
 THE ROUTINE WAS CALLED IS          SHOW
N IN INVERSE-VIDEO, TO.L)J..  HIGH-LIGHT
 IT. THIS ROUTINE        RESETS THE HIGH
-LIGHT FLAG...*K..  FIRST GET THE TIME. 
WE WANT        FIVE CHARACTERS FOR THE T
IME.X*L..  SO WE MUST FILL OUT TO 5 WITH
      BLANKS. THE VARIABLE T2 IS..*M..  
USED TO CALCULATE THE TOTAL        TIME.
 IF THE TIME IS 0 THEN.R*N..  AN EXTRA L
EADING BLANK IS          REQUIRED..X*O..
..*P.A$.H(D(TME),5)..+Q.. T.1 . 5.C(A$):
 A$." ".A$: .: T2.TME.-+R.. TME.0 . A$."
 ".A$.3+S...X+T..  PRINT SOME CURSOR CON
TROL TO       GET TO THE RIGHT LINE, AND
..+U..  THEN PRINT OUT THE TIME.        
   CALCULATE THE LENGTH OF THE..,V..  QU
EUE (=LA-FR OR LA-FR+NT+1        DEPENDI
NG ON WHETHER LA>FR).G,W..  AND IF NECES
SARY, SET THE          MAXIMUM QUEUE LEN
GTH UP..M,X....,Y.. "............."A$" "
;:LQ.(LA.FR).(LA.FR).(NT.1)..,Z.. LQ.QH 
. QH.LQ..,.....,...  FOR EACH TELLER, CR
EATE THE        APPROPRIATE CHARACTER TO
 BE..-...  DISPLAYED. A FREE TELLER IS A
      BLANK...-....P-... I.1 . NT: A$.G(
TF(I).64):. TE(I).EMPTY . A$." ".V-.....
-...  IF A NEGATIVE NUMBER IS FOUND,    
 THEN THE CHARACTER SHOULD BE..-...  IN 
INVERSE-VIDEO. RECALCULATE      THE CHAR
ACTER AND SET THE.&....  NUMBER POSITIVE
 TO PREVENT         RE-DISPLAY OF THE IN
VERSE..,.....`.... TF(I).0 . TF(I)..TF(I
):A$.".".G(TF(I).64)."."...... TE(I).0 .
 A$.". .":TE(I)..TE(I).......R....  PRIN
T THE CHARACTER AND GO ON      WITH THE 
LOOP. THEN PRINT A. /...  BLANK FOR SPAC
ING, & SET THE       LOOP COUNTER TO FIR
ST FOR THE QUEUE.=/... " "A$;: .:."  ";:
 I.FR.C/...../...  IF WE ARE AT THE END 
OF THE        QUEUE, THEN PRINT NT BLANK
S.P/...  (TO CLEAR OUT ANY THAT HAVE    
    BEEN TRANSFERRED TO TELLERS)../...  
THEN PAUSE AND RETURN...0... I.LA . . K.
1 . NT:." ";: .: ../0... I.LA . . I.1 . 
PA: .:..50....{0...  GET THE CHARACTER O
F THE QUEUE     ENTRY. IF NEGATIVE, THEN
 WE..0...  RESET THE ENTRY TO POSITIVE  
      AND DISPLAY THE CORRECT..1...  CHA
RACTER IN INVERSE-VIDEO.        PRINT TH
E CHARACTER AND LOOP.81...  CIRCULARLY (
USE THE ADD            FUNCTION).>1....P
1..A$.G(Q(I).64)..1... Q(I).0 . Q(I)..Q(
I):A$.".".G(Q(I).64)."."..1... A$;: I.. 
ADD(I): . 239...
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL