2' 'ư>HELPNA\NhNN:lxCONTINUE n((pxEXIT&%p=lHALTމPlxdSTEP 1v4߉lg STOP߉X^F%EFSTOP ,,OFFg^w@߉UT߉WOLCgp߉.OdLC@g|߉LC@|ŻOdgLC@ModelsExchange.gpsLFeCFEOgLgHhE(((((((((({\rtf1\ansi\deff0\deftab720{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\fmodern Courier New;}} {\colortbl\red0\green0\blue0;} \deflang1033\pard\tx1200\tx2400\tx4450\plain\f2\fs20 ; GPSS World Sample File - EXCHANGE.GPS, by Gerard F. Cummings \par ********************************************************************** \par * PABX Telephone System Model * \par * Time is in seconds * \par ********************************************************************** \par Transit TABLE M1,20,20,20 \par ********************************************************************** \par Extensions STORAGE 200 \par Extlines STORAGE 30 \par Intlines STORAGE 30 \par Signals STORAGE 8 \par Operator STORAGE 1 \par ********************************************************************** \par * Define variables \par Internal VARIABLE 1260/(1+R$Extensions) \par External VARIABLE 2500/(R$Extensions+S$Extensions) \par * \par *Tables for number of calls in progress \par Callsint TABLE S$Intlines,2,2,20 \par Callsext TABLE S$Extlines,2,2,20 \par ********************************************************************** \par * Generate calls originating internally \par GENERATE (Exponential(1,0,V$Internal)),0,20 ;Calls origin \par ; internal \par ENTER Extensions ;An extension is involved \par QUEUE Inside ;Queue for signal unit \par ENTER Signals ;Get a signalling unit \par DEPART Inside ;Leave the queue \par ADVANCE 7,2 ;Time to signal \par LEAVE Signals ;Leave the signal unit \par TRANSFER .333,,Intout ;33% are internal to ext \par * \par Intint TEST GE R$Intlines,1,Breakoff ;Test int line available \par ENTER Intlines ;Get and internal line \par ADVANCE 4,1 ;Check if engaged \par TRANSFER .15,,Busy ;Some extensions engaged \par Aline ENTER Extensions ;Another extension involved \par ADVANCE 6,2 ;Time to ring extension \par TRANSFER .2,,Nogood ;20% not answered \par ADVANCE (Normal(2,150,30)) ;Call duration \par Nogood LEAVE Extensions ;Leave extension \par Busy LEAVE Intlines ;Leave internal line \par TRANSFER ,Breakoff \par *********************************************************************** \par * Model internal to external calls \par Intout TEST GE R$Extlines,1,Breakoff ;Is an ext line available? \par ENTER Extlines ;Get an external line \par ADVANCE 4,1 ;Time to check if engaged \par TRANSFER .200,,Nobody ;20% are engaged \par ADVANCE 6,2 ;Time to answer \par TRANSFER .200,,Nobody ;20% do not answer \par ADVANCE (Normal(2,150,30)) ;Call duration \par TABULATE Transit ;Record transit time \par Nobody LEAVE Extlines ;Leave external line \par Breakoff LEAVE Extensions ;Free the extension \par TERMINATE \par *********************************************************************** \par * Process calls originating externally * \par GENERATE (Exponential(1,0,V$External)) ;Calls of external \par ; origin \par TEST GE R$Extlines,1,Nonefree ;Ext line available? \par ENTER Extlines ;Get an ext line \par QUEUE Outsider ;Queue for operator \par ENTER Operator ;Get an operator \par DEPART Outsider ;Depart the queue \par ADVANCE 9,3 ;Operator service \par LEAVE Operator ;Leave the operator \par ADVANCE 4,1 ;Is it engaged? \par TRANSFER .15,,Engaged ;Some exts engaged \par ENTER Extensions ;Get an extension \par ADVANCE 6,2 ;Time to ring ext \par TRANSFER .200,,Noperson ;20% No answer \par ADVANCE (Normal(2,150,30)) ;Call time \par TABULATE Transit ;Record transit time \par Noperson LEAVE Extensions ;Leave extension \par Engaged LEAVE Extlines ;Leave external line \par Nonefree TERMINATE \par *********************************************************************** \par GENERATE 3600 ;Transaction each hr \par TERMINATE 1 ;Term timer xact \par GENERATE 60 ;One xact every min \par TABULATE Callsint ;No. of int calls \par TABULATE Callsext ;No. of ext calls \par TERMINATE \par *********************************************************************** \par \par \par }