CA1203594A - Integrated security system having a multiprogrammed controller - Google Patents

Integrated security system having a multiprogrammed controller

Info

Publication number
CA1203594A
CA1203594A CA000442819A CA442819A CA1203594A CA 1203594 A CA1203594 A CA 1203594A CA 000442819 A CA000442819 A CA 000442819A CA 442819 A CA442819 A CA 442819A CA 1203594 A CA1203594 A CA 1203594A
Authority
CA
Canada
Prior art keywords
block
security system
point interface
subroutine
cable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
CA000442819A
Other languages
French (fr)
Inventor
Kevin J. Griffin
Roy L. Harvey
Louis H. Auerbach
Aaron A. Galvin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
American District Telegraph Co
Original Assignee
American District Telegraph Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by American District Telegraph Co filed Critical American District Telegraph Co
Application granted granted Critical
Publication of CA1203594A publication Critical patent/CA1203594A/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G08SIGNALLING
    • G08BSIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
    • G08B26/00Alarm systems in which substations are interrogated in succession by a central station
    • G08B26/005Alarm systems in which substations are interrogated in succession by a central station with substations connected in series, e.g. cascade
    • GPHYSICS
    • G08SIGNALLING
    • G08BSIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
    • G08B19/00Alarms responsive to two or more different undesired or abnormal conditions, e.g. burglary and fire, abnormal temperature and abnormal rate of flow
    • GPHYSICS
    • G08SIGNALLING
    • G08BSIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
    • G08B25/00Alarm systems in which the location of the alarm condition is signalled to a central station, e.g. fire or police telegraphic systems
    • GPHYSICS
    • G08SIGNALLING
    • G08BSIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
    • G08B25/00Alarm systems in which the location of the alarm condition is signalled to a central station, e.g. fire or police telegraphic systems
    • G08B25/01Alarm systems in which the location of the alarm condition is signalled to a central station, e.g. fire or police telegraphic systems characterised by the transmission medium
    • G08B25/04Alarm systems in which the location of the alarm condition is signalled to a central station, e.g. fire or police telegraphic systems characterised by the transmission medium using a single signalling line, e.g. in a closed loop
    • GPHYSICS
    • G08SIGNALLING
    • G08BSIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
    • G08B26/00Alarm systems in which substations are interrogated in succession by a central station
    • G08B26/001Alarm systems in which substations are interrogated in succession by a central station with individual interrogation of substations connected in parallel
    • G08B26/002Alarm systems in which substations are interrogated in succession by a central station with individual interrogation of substations connected in parallel only replying the state of the sensor

Abstract

A B S T R A C T

A security system continuously monitoring a plurality of spatially diverse events which are reportable to a central monitoring facility, the system including a controller for sequencing the performance of reporting and monitoring tasks according to the requirements of the events. The system also performs the tasks according to a predetermined priority, in particular, alarm message queuing. In addition, alarm conditions and system operation are verified by specified communi-cation procedures and redundancies. Furthermore, system communications capa-bilities include keyboard entry and output display and an interrupt facility.

Description

35~4 FIE~D OF THE INV~NTION
The present invention relates to security systems, and more particularly, to
2 I security systems reporting several specific remote events to a central security
3 ' system.

,l BACKGROUND OF THE INVENTlON
4 j Security systems for remote sensing and control of activity in security areas l apart from central locations require more functions, more data, and lower costs I than previous systems. Their functions include monitoring of secure areas for 7 1 unauthori:~ed use and remote control of events within the secure areas. Particular 8 1l events must be specifically reported in a manner most likely to provide a timely 9 ll response rom the operators of the security system. To command the attention of l~ the operators, the reported data must be ordered, reliable, specific, and clear.
However, to be an economically viable system, it must also be compact, operation-12 ¦¦ ally flexible, easy to use, and inexpensive.
13 ¦ In previous systems, the attempt to combine all the above-mentioned 14 ¦ features in a single security system has been only partially successful, sacrificing I one or more of the above-mentioned requirements. Por instance, the specific 16 ll needs of the system constantly change according to the change in usage and size of 17 I the secured area. In wired-logic systems, this flexibility requirement can only be 18 I accommodated by appropriate changes in hardware, which often are significant, 19 ,l protracted, and expensive.
ao 1I The security system is frequently required to perform tasks in addition to 21 1 I reporting fire and break-in alarms. These additional tasks include detailed 22 1l prioritized visual and audible alarms, as well as a clearly readable annunciation of 23 I the alarrn condition. System sophistication at this level cannot be implemented 24 i! without substantial information handling cQpsbility, typically that of a computer 'I system.

. . .

'., q 35~

, llTo meet the above-mentioned requirements, the security system naturally 2 sgrows in complexity. At the same time, the reliability of the system must be 3 Imaintained at a high level, if not improved over the earlier, simpler systems.
4 However, since the increased performance is generally provided only by annexing 1~reater amounts of hardware, the reliability problem worsens.
, I , 'I. . .
6 ¦IThe integrated security system according to the present invention performs 7 ~¦a multiplicity of tasks in a single programmable controller with a reduced 8 1lcomponent count. The basic function of the integrated security system is to 9 ¦¦monitor the status of a plurality of remote locations through the scanning and l¦control of a modularly expandable number of remote point interface devices and 11 Iprogrammably alterable interaction with the point interface device by the system 12 1operator. The interaction includes keyboard entry of system codes and alarm 13 ¦Imessage indication by visual indicator displays and printed word.
14 1~Each point in the security area zone is monitored and controlled by at least ¦lone point interface device, connected to the controller by a single four-conductor 16 ¦Icable. Each cable can accommodate a large number of point interface devices, 17 j ~also, the number of cables is also expandable, typically to four cables, thus 18 ¦ lallowing one security system to accommodate several hundred point interface 19 ¦devices. Inherent in the operation of the system are redundant data and hardware 2n ¦,verification checks.
21 jlEach security system also communicates with alarm annunciators including 22 ¦ ¦a CRT and Printer showing specific messages, a status matrix, and audible 23 ¦'indicatora to report alarm conditions.
24 jiOne or more of the security systems of the present invention reports Ispecific i~formation regarding the alarm address and status to a central security 31L;2~3 r~~9 cS I

station, as well as reporting the-above-mentioned detailed messages at the system 2 '1 site locally.
3 ; - The~ security system further includes a control unit arranged to perform 4 ~ multiple independent system tasks, at least some of which are alterable by a l l system operator through keyboard switch, or other control means. The control unit 6 communicates with the remote security sensors, status indicators, and operators 7 1 control means. The selection and operation of specific tasks within the control 8 !¦ unit is performed by Q task selection system which responds to periodic interrupts 9 l~ related in time to the actual time necessary for each task to be performed by 1 apparatus external to the controller. The task selection system performs a first 11 ii task until ~n external input or output (I/O) operation is required, after which a 12 I second task is initiated. The second task is performed until it too requires an 13 ¦l e~ternal operation, at which time the second task parameters are stored, releasing 14 1l the systern to perform a third task, and so forth. The I/O operations include 11 selection of a large number of remote security sensors through a relatively small 16 1I number of cables connecting to the controller, a separate task being assigned to 17 ll each cable. The point interface devices attached to the cables are selectively 18 ll addressed by signals from the controller, and each cable receives signals sent in 19 1 I response from the addressed point interface devices. Upon completion of the I requested I/O operations, the system again services the highest priority, or first 21 1~ task.

'l BRIEF DESCRIPTION OF THE DR~WING
22 The present invention is better understood by reading the following specifi-23 '~ cation, talken together with the following drawings.
24 ~ Fig. 1 is a block diagram of one embodiment of the integrated security 1l system of the present invention;
5~
C

Figs. 2 and 3 taken together comprise a diagram of the control unit system;
2 Fig. 4 is a diagram of the register set of the Z80 microprocessor;
3 I Fig. 5 is a diagram of the matrix display;
4 ~ Fig. 6 is a schematic diagram of the front panel status LED decoder;
I Fig. 7 is a schematic diagram of the keyboard encoder;
6 l Fig. 8 is a diagram of the front panel of the security system;
7 Fig~ 9 is the schematic of the I/O port decoder circuit;
8 Fig., 10 is a schematic diagram of the serial port circuit;
Fig., 11 is a schematic diagram of the real-time clock circuit;
Figr 12 is a schematic diagram of the liquid crystal display (LCD) circuit;
11 Fig 13 is a schematic diagram of the quad cable driver circuit;
12 Fig" 14 is a schematic diagram of the power supply and system monitor 13 circuits;
14 Fig,. 15 is a memory space map of the random access memory (RAM) stack allocations for information transfer according to the multiprocessing function;
16 Fig" 16 is a function timing diagram of the multiprocessing and task 17 l selection process of the present invention;
18 Fig. 17 is a schematic diagram of additional and optional elements of the 19 control unit of Fig. 2 and Fig. 3;
Fig, 18 is a flow chart of the main (MAIN SCAN) program;
21 Fig. 19 is a flow chart of the task select (TSKSEL) subroutine;
22 Fig. 20 is a flow chart of the interrupt service routine (INTRTN);
23 1 Pig. 21 is a flow chart of the address pulse (ADRPLS) subroutine;
24 ll Fig. 22 is a flow chart of the address reset subroutine (ADRRES);
Fig. 23 is a flow chart of the data pulse (DATPLS) subroutine;
26 Fig. 24 is a flow chart of the data reset (DATRES) subroutine;
-~1 !
3S~4 ¦ j Fig. as is a flow chart of the pulse (PULSE) subroutine;
2 I F'ig. 26 is a flow chart of the pulse generating (PLSGEN) subroutine;
3 ~l Fig. 27 is a flow chart of the status reading subroutine (RDSTAT);
4 1! F'ig. 28 is a flow chart of the read normal bit (RDNOR) subroutine;
!I F'ig. 29 is a flow chart of the read relay subroutine ~RDREL);
6 ,j Fig~ 30 is a flow chart of the read bit (RDBIT) subroutine;
7 1I Fig. 31 is a flow chart of the read address (RDADDR) subroutine;
Fig. 32 is a flow chart of the redundancy ehecking subroutine (REDNAL);
9 1! Fig. 33 is a flow chart of the validity checking subroutine (SCAN8);
I Fig. 34 is a flow chart of the key access (KEYACC) subroutine;
Fig. 35 is a flow chart of the ON pulse (ONPLS) subroutine;
12 l Fig. 36 is a flow chart of the relay pulse delay subroutine (RELWAT);
13 Fig. 37 is a flow chart of the OFF pulse (OFFPLS) subroutine;
14 Fig. 38 is a flow chart of the liquid crystal display subroutine (LCDHDL);
E'ig. 39 is a flow chart of the print message subroutine (PRHNDL);
16 ~ F`ig. 40 is a flow chart of the keyboard input (KEYSIN) subroutine;
17 ~ F'ig. 41 is a flow chart of the dispatch subroutine (DISPAT);
18 ll Eig. 42 is a flow chart of the keyswitch closing subroutine;
19 ll F'ig. 43 is a flow chart of the security check (CHKSEC) subroutine;I E'ig. 44 is a flow chart of the PID access subroutine (ACPID); and 21 j Fig. 45 is a group of flow charts of the communication card interface 22 ' subroùtines (COMCRD, CCCMLP, RDMEM, and WRTRAM).

DETAILED DESCRIPTION OF THE INVENTION
~3 j, I`he general diagram of the Integrated Security System (ISS) of the present 24 ~l invention is shown in Fig. 1. The Control Unit (CU) 200 monitors several hundred points b~y selectively addressing point interface devices (PID) 100 a~ssociated with i -~ 35~

each point monitored. The point interface devices 100 are connected in parallel on 2 one of four cables 292, 293, 294, and 295 (or less for fewer PIDs). The cables are 3 1l independently and simultaneously controllable from the control unit to send cable i 4 i signals to selectably activate a particular PID attached to the respective cable.
1ll The selected PID returns signals simultaneously and independently to the control 6 ll unit, which simultaneously receives the return signals. The cables can be formed in 7 ll a loop configuration to allow the other cable ends 292A, 293A, 294A and 295A, 1, 8 ~I respectively, to be connected and energized. The control unit 200 simultaneously ¦ I monitors and controls all cables~ receives operator codes, and displays system , 1 operations of the Integrated Security System by a single central processor 11 ¦ contained therein. Customized user information can be permanently stored, and I
12 ¦ ~ltered according to keyboard 254 entries. Alarm conditions, as indicated by ¦
13 ¦ responses from respective point interface device 100, are indicated on the Liquid 14 1 Crystal Display 280 according to a priority to which each PID 100 is assigned. The 15 l l priority list comprises Fire Alarm (FA), Supervisory (Danger), Hold Up Alarm 16 ll (HUA), Security Alarm (BA), Supervisory (FA/BA), Supervisory (MISC.), and17 I! Electrical/Mechanical (EM), ordered from highest to lowest priority. The stalus OI
18 ~ each po~nt monitored is also reported on a matrix display 262, a hard-copy printer 19 Ij 261, an~3 to a central office station 99 over a telephone, or other communication 20 jl line 282.
21 ~I Hardware System ~ementation 22 1~ I`he general hardware configuration of the present invention is shown in 23 I Figs. 2 and 3 taken together to form a whole system. The system includes a 24 ' control unit (CU) 200 operative to provide data to remote sensors 2000, and to 25 jl validate the data for system verification and for alarm actuation. The control unit 26 l' includes a microcomputer comprising a central processing unit (CPU) 202, read 27 I l only memories (ROM) 221-227 random access memories (RAM) 241-244, each ., .

~2 !~
coupled via a data bus 215 and an address bus 216. A clock 270A provides interrupt 2 timing signals to the elements of the control unit and also drives a software clock 3 ,l (shown in Fig. 20) which provides an indication of the time of day. Devices which 4 I pass information to and from the CPU 202 include a keyboard 254, matrix 1i indicators 262, an alphanumeric display 280, LED indicators 253, and quad cable 6 1l drivers 289, 290, and 291. Also coupled to the CPU 202 are serial ports 260 to 7 ¦, drive a local printer 261 and receive serial input if desired. Information is passed 8 1 among the control unit 200 elements by a data bus 215 and an address bus 216. A
9 ¦I power supply 282, energized from an appropriate external source, includes within I block 280 a battery back-up source and provides necessary stand-by operating 11 power for the system.
12 Also indicated in Fig. 2 and Fig. 3 are the respective figure numbers of 13 specific elements of the system, which describe those particular elements in 14 greater detail~ For instance, the block 254 of Fig. 3 indicating the keyboard and 15 ¦ the associated decoding and encoding circuits is also shown again in greater detail 16 1l in Fig. 7 as marked.
17 ¦~ The CU 200 includes a Z-80 microprocessor central processor unit (CPU) 18 1 202 manufactured by Zilog of Cupertino, California, whose physical and functional 19 ¦ characteristics are specified by the Z-80 CPU Technical Manual published by Zilog, l 1980, herein incorporated by reference. The external Z-80 CPU signals are 21 ll buffered by a plurality of buffers labelled 203 through 211, typically comprising the 22 ¦1 logic 13ircuits contained on the integrated circuit 74365, or similar devices. The 23 1I main cdgnal flow to and from the CPU 202 is provided by the data bus 215 and the 2~ address bus 216, the operation of which is known in computer systems design. The 25 ¦I data bus 215 receives 8 bits of data, commonly called 1 byte, which flow either to 26 1l or from the CPU 202. The address bus 216 comprises 16 signal lines, providing a 27 ll maxirnum address space of 216 locations, where the address space is allocated ~, 'I

~2~ 5~
o among the various devices described hereunder according to the map of Fig. 20~
2 I described below. The programs for the Z-80 CPU 202 are stored in read only 3 il memory (ROM) integrated circuits 221 through 227, consecutively, which comprise memories organized in an 8K (lK = 1024) X 8 bit memories, typically a part number li 2764 available from various manufacturers. The ROMs 221-227 are programmed 6 ,I prior to system operation; therefore, the data leads 229 provide data flow from the 7 ROMs to the CPU 202 through the data bus 215 in one direction only. The ROMs 8 receive! an address signal 230 comprising the 13 least significant bits tLSB) of the 9 j address bus 216. The selection of R particular ROM from among the 6 ROMs shown ¦1 is provided by an enable signal along the lead 231~237, consecutively, from a 3-bit binary to one-of-8 decoder 239 receiving the next most significant 3 bits of the12 ll address bus 216. The decoder 239 is typically an integrated ciruit logic device part 13 ll #74138, or similar device. The ROMs 221-227 contain an instruction code 14 1 representative of the programs shown in the flow charts of Figs. 18-45, described below in the Software System Implementation section. While 8 significant part of16 1¦ the discussion below is concerned with the movement of data between the Z-80 17 ll CPU of the particular register configuration, shown in Fig. 4, and the RAM
18 1¦ memory devices 241-244, other CPU or general computer hardware to process the 19 ¦I data as described below is also envisioned according to the present invention and !I within the scope thereof.
21 1I Fig. 4 illustrates the configuration of the Z-80 CPU memory as described by 22 I the Zilog Z-80 CPU Technical Manual incorporated by reference, pages 3-5. The 23 ~l Z-80 C:PU makes 208 bits of Read or Write (RIW) memory accessible to the 24 1l prograrnmer. These include eighteen 8-bit registers and four 16-bit registers, all jl of which are implemented using internal RAM. These registers include two sets of 26 ¦I six general purpose registers 901 which may be used either individually as 8-bit 27 ¦' registers or in pairs as 16-bit registers. There are also two sets of accumulator 28 ~ and flag registers 902.
!

!i _ g _ ~2f~5~4 i' li Ther0 are six special purpose registers 910. The program counter (PC) 2 1 register 911 holds the 16-bit of the instruction which is currently being fetched 3 I from memory. The PC is automatically incremented after its contents have been 4 , transferred to the address lines. When Q program jump occurs, the new value is 1 automatically placed in the PC, thus overriding the incrementer.
6 ~ The stack pointer (SP) register 912 holds the 16-bit address of the current 7 I top of a stack located anywhere in the external system RAM memory. This 8 external stack memory is organized as a last-in first-out (LIFO) file. The 9 1l execution of PUSH or POP instructions can push data onto the stack from specific ¦ CPU registers or pop it off of the stack into specific CPU registers. The data 11 I popped from the stack is always the last data pushed onto it. The stack allows 12 ' simple implementation of multiple level interrupts, unlimited subroutine nesting, 13 ¦l and simplification of many types of data manipulation.
14 ¦¦ The two independent index registers 913 and 914 hold a 16-bit bus address l that is used in indexed addressing modes. In these modes, an index register is used 16 ¦ as a base to point to a region in memory from which data is to be stored or 17 retrieved. An additional byte is included in indexed instructions to specify a 18 I displacement from this base. This displacement is specified as a two's-complement 19 ¦I signed integer. This mode of addressing greatly simplifies many types of programs, 11 especially where tables of data are used.
21 ¦ ~;ince the Z-80 CPU can be operated in a mode where an indirect call to any 22 I memory location can be achieved in response to an interrupt, the Interrupt Page 23 I Address (I) Register 915 is used to store the high order 8-bits of the indirect 24 I address. The interrupting device provides the lower 8-bits of address. The 1 interrupt feature permits interrupt routines to be dynamically located anywhere in 26 1I memory with an absolute minimal access time to that routine.

~2~35~

,, .

il The CPU includes two independent 8-bit accumulators and associated 8-bi~
2 ll flag registers 902. The accumulator holds the results of 8-bit arithmetic or logical 3 I operations while the nag register indicates specific conditions for 8- or 16-bit 4 I operations; for example, the flag register may indicate whether or not the result of S il an operation is equal to zero. The programmer may select the accumulator and 6 ¦ nag pair with which he wishes to work with a single exchange instruction.
7 1¦ There are two matched sets of general purpose registeres 901. Each set 8 ¦I contain!~ six 8-bit registers which the programmer may use either individually as 9 ¦¦ 8-bit r~gisters or in pairs as 16-bit registers. One set is called BC, DE, and HL;
I the complementary set is called E~C~, DE', and HL'. The complementary register pairs are not used in the embodiment of the present invention shown herein except 12 11 to handle NMI signals for immediate power loss.
13 ll 1lhe control unit 200 CPI~ 202 memory space is allocated among the ROM
14 ¦ RAM, and specific I/O devices according to the listings of Table I, below.
.~
lS TABLE I

16 l ¦ Title Location 17 1 ]?rogram ROM Space 0000-SFFF
18 1 ~/ocabulary ROM Space 6000-6FFF
19 ! ~Reserved) 7000-7FFF
ll Communication Card A000-BFFF
21 ll lJustomization ROM Space 8000-9FFF
22 ~ ]RAM Locations C000-DFFF
23 l I I.iquid Crystal Display 24 1! Memory Mapped I/O Top Row E033-E020 11¦ Bottom Row E013-E000 'I

- ~Z~)3594 The CPU memory space 0000 through 5FFF is allocated to the program 2 ,~ memory, described in flow charts of Fig. 18j et. seq., and stored in ROM 221-223 in 3 the diagram of the control unit 200 of Fig. 2. (Space 9000 through BFFF of 4 ~ ROMs 226, 227 are not described here.) 1 The CPU memory space 6000-6FFF is assigned to vocabulary ROM, which 6 1l contains the appropriate ASCII codes corresponding to the alphanumeric sequence 7 l l used f,or each LCD and printer message produced by the present invention 8 ~, according to the programs shown in Figs. 18, et. seq.
9 ! The CPU memory space 8000-9FFF is allocated for system customization ll informlltion stored on ROM or programmable ROM (PROM), which may be changed as the user system configuration or functional needs change.
12 1l The CPU memory space A000-BFFF is allocated for communication card 13 ~ software of Fig. 45 and energy management control programs (not shown).
14 li The random access memories (RAM) labelled 241-244 comprise memories ¦¦ which may have their stored information altered upon command by the CPU 202 16 1~ according to a write signal on the write lead 218, received jointly by all four RAMs 17 l on lead 245. The data bus 215 provides the data path for the RAMs which store the 18 ll data present on the bus 215 when the write signal on the 245 and the address 19 ,, signals received on leads RAM address 247 are received by the respective RAMs, ao ¦l according to operations known in the art. The address signals received on leads 247 21 ¦I comprisle the 11 least significant bits of the 16 bits comprising the address bus 216.
22 l The selection among the four RAMs is provided by a decoder 249 providing the 23 I, selection signals 261-264 to the RAMs 241-244, respectively. The decoder 249 24 typically comprises a commerically available circuit #74138, or comparable device.
1I The decoder 249 is enabled only when a program memory request signal is provided 26 I by the CPU 202 over the PMREQ lead 266. Additionally, the decoder 249 provides 27 l~ an LCDEN, or LCD display enable, signal 267 to enable the LCD display 28 I circuit ~75, shown in more detail in Fig. 12.

"

~L2~;`35~4 c ll l`he CPU 202 requires a periodic signal, called a clock signal. This signal is 2 l generat,ed by a clock circuit 270A which includes an oscillator providing a high 3 ~ frequency signal to the ~:PU 202 along lead 271. In addition, the clock circuit 270A
4 ¦ divides the clock signal so as to provide a signal which is received by the interrupt ,l request PINT lead 272 of the CPU 202. The signal on the lead 272 comprises a 6 I periodic pulse and is generated by the divided clock frequency. The signal pulse 7 1l asserts a latched interrupt signal to the CPU 202. The coincidence of a low signal 8 il on the PM1 lead 273 in a logical NOR with a low signal on the PIORQ lead 274 9 ¦I from thle CPU 202 acknowledges the interrupt signal. For proper system CPU
l¦ stsrt-up sequences, the CPU 202 is reset by the switch 250, R reset signal appears on leacl 276, connected to the reset pin of the CPU 202 and to the clock 12 ¦I circuit 270A. A non-maskable interrupt signal NMI on lead 277 is generated by a 13 1¦ monostable multivibrator 278 when a FAIL signal is received on lead 279 from the 14 1¦ system monitor circuit 280. The system monitor circuit 280, also discussed in ¦I detail in Fig. 14, controls and monitors the elements connected to the system, 16 I including the power supplies. The information relating to system monitoring and 17 ¦I system control passes on the data leads 281 from the bidirectional data bus 215.
18 ~ Additional system monitor control signals are provided by a system read SYSRD
19 ! and a system write SYSWR signal on leads 284 from the I/O port decoder 2n ¦ circuit 2521 shown in more detail in Fig. 9.
21 `I The keyboard 254 including the associated decode and encode circuitry, also 22 1l shown in more detail in Fig. 7, is connected to the data bus 215 and the enable 23 ¦1 lead 25~1 from the I/O port decoàer 252 so as to provide the proper signal format 24 1l from the depressed keys on the keyboard to the system data bus 215. Similarly, the 1l light emitting diode (LED) interface 253 is also connected to the data bus so as to 26 ¦I receive data therefrom upon the proper signal on the control lead 259 from the l/O
27 I port decoder 252.

'I

.1 35~4 ¦I The l/O decoder 252, shown in more detail in Fig. 9, receives both the least 2 1l significant 8-bit address signal on leads 251 from the address bus 216, and the 3 ! PIORQ signal 274 from the CPU 202 through the buffer 209, as discussed above.
4 il Upon the occurrence of the PIORQ signal and PMI complement signal, corre-S ¦ sponding to the input/output request state of the CPU 202, the I/O port6 ~ decoder 252 produces, among others, the system read/write signal on leads 284, the 7 ¦ ~D2EN signal on lead 255, the QDlEN signal on lead 256, the POEN signal on 8 lead 257, and the serial port enable signal 258, which is received by the quad cable 9 drivers 290 and 291, the comm~nications card 289, and the serial ports 260.
1 Additional control signals on lead 258 and 259 are received by the keyboard 252 and 11 the LED interface 253, respectively.
12 The serial port card 260 receives and provides information to the data 13 bus 215 upon the occurrence of the enable signal 258 and the SSEL signRls 263 from 14 the system monitor 280. The selection between the printer 261 or the matrix display 262 is determined by the least significant 2 bits on lead from 264 of the 16 address bus 216. The printer 261 is connected to the serial port circuit 260 by 17 serial data leads 265 and 266, corresponding to incoming and outgoing data.
18 1 Similarly, the matrix display 262, also shown in Fig. 5, is connected to the serial 19 port 260 by leads 267.
A real-time clock, 270, also shown in detail in Fig. 11, provides the system 21 with a convenient form of encoded standard time intervals over the data bus 215 22 ~ accordlng to the least significant 8 bits 271A of the data bus 216, and the receipt of 23 ~ the signal PIORQ on the lead 274. The real-time clock 270 also receives the write 24 and read signals on leads 217 and 218, respectively, to allow the CPU 2C2 to "set"
¦ the clock, and thereafter read the present time. The time data provided by the 26 ~ real-time clock is connected to the data bus 215.

;3 5~ I

~I The LCD display buffer 275 provides the LCD display 280 with the appro-2 ~' priate signals over leads 279 and is controlled by the LCD enable signal on lead 267 3 1l and the 11 least significant bits on lead 276 from the address bus 216. Display data 4 il signals are received over the data bus 215 and decoded through the read~nly ¦~ memory 278 before receipt on display 280, coincident with the write signal over 6 ¦1 lead 218 and the PM~EQ signal 266, discussed above. The LCD display buffer 275, 7 ¦ the charscter generator ROMs 278J and the LCD display 280 are discussed in 8 1 greater detail in Fig. 12.
9 ¦ The system of the present invention communicates to a central station, I remote equipment, or external devices (not shown) through the dialer communica-11 ¦ tion card 289, according to a mutually accepted format. Communication cards also 12 !~ considered within the scope of the present invention include standard communica-13 I tions formats other than those on the public telephone signaling system. The 1~ ¦ communication card 289 receives the data to be transmitted from the data bus 215 and is enabled to read or write according to the coincidence of the read signal on 16 lead 217 or the write signal on lead 218, respectively, with the enabling of the card 17 select line PpEN, from the I/O port decoder 252, discussed above. Additional 18 communication cards (not shown) are connected to the data bus and enabled by 19 additional card select signals on leads PlEN, P2EN, .. not shown) formed in a 1 manner similar to P~EN, except that different I/O port signals (see Table II) ~1 I control. The telephone leads 282 and 283 are connected to the appropriate 22 I telephone communication terminating unit, as known in the art, or other appropri-23 ¦¦ ate communication paths.
24 ll The system according to the present invention provides an arrangement of 1~ four cables having point interface devices (PIDs) 100A, 100B, .. per cable, a6 ¦¦ accommodating a total of several hundred PIDs. Each quad cable driver card 290 27 and 291, accommodates two quad cables, or 128 PIDS per driver card. The quad 1~35~
C

driver card is also shown in greater detail in Fig. 14, discussed below. The quad 2 I cables 292, 293, 294, and 295 comprise four leads each, which include the power 3 and signaling leads, as discussed below. The selection among each of the two quad 4 cables per cable driver is determined according to the least significant two bits on leads 296 and 297 connected to the address bus 216 of the system. Each quad cable 6 driver card 290 and 291 is enabled by the QDlEN signal on lead 256 and the QD2EN
7 signal on lead 255, respectively. The data received or transmitted thereto is 8 provided by the data bus 215.
9 The external point interface devices (PID) are connected in parallel in plural groups per quad cable, in a configuration as shown in Fig. 3. The first PlD lOOA is 11 numbered 0, and increases numerically in sequence until the last PID lOOB.
12 Subsequer~t PIDs such as lOOC, through lOOD, are connected to a second 13 quQd cable, 293. The subsequent PIDs are arranged in groups in sequence to the 14 subsequen,t quad cables 294 and 295.
Th,e matrix display 262 of ~ig. 2 is shown now in greater detail in Fig. 5.
16 The input lead 267 from the serlal port circuit 260 receives a signal serial bit 17 stream in the standard RS 232 format, Icnown in the art. The signal is then shifted 18 by a level shifter 302 to a suitable l~L signnl level to be received by the universal 19 asynchronous receive/transmit (UART) device 30~, which provides a parallel 8-bit output corresponding to the serial bit stream input at lead 267. The UART is 21 clocked at a rate corresponding to the serial input at lead 267, such rate provided 22 by a cloclc 306 whose frequency has been reduced to a submultiple frequency by a 23 divide chain 308. The parallel output from the UART 304 is received and stored by 24 ! latching logic 310 in anticipation of storage in the data RAM 312. The displQy signals received on lead 267 includes display data and RAM address signQls, and is 26 formatted so that the signals mQy be separated by latching logic 310. After 27 separation, the signal on lead 309 contains matrix display data, and the 8-bit RAM

Il Il 12~35~4 &

., ,~ address sign~l is on lead 311. The address on lead 311 is received by dual portirlg 2 l logic 314, which, when data is being received through the latching logic 310, is 3 ', received by the data RAM 312 as the address signal. Thereafter, the data signal 4 I received over lead 309 by the RAM is stored therein for subsequent read-out and il I display on the display matrix. This method allows each particular light emitting 6 1l diode (LED) 330 comprising the matrix display to be independently and randomly 7 ¦I controlled by the CPU 202 through the serial port control 260, discussed below in 8 1l Fig. 10. To display the information stored within the data RaM 312, the periodic 9 ', signal from the divider 308 is further divided by a second divider 316, wherein the 8 i least significant bits of the divider chain form a sequential address scan to be 11 received Iby the dual port logic 314. The dual port logic 314 in turn transfers this 12 II sequential address scan to the RAM 312, the data output of which is received by a 13 1¦ logic gat~e 318 to combine with a most significant bit of the divider 316 to 14 I alternately enable or disable the signal provided by the data RAM 312 to provide a lS ¦ blin~ing of the LEDs in the ;natrix. The signal from the logic gate 318 is then 16 I combined with the signal from switch 321 by an OR gate 320, wherein the switch 17 ¦ 321 provides a lamp test function by forcing all of the LED indicators to be 18 I illuminated. The data input and output from the RAM 312 is a single bit (serial) 19 ¦¦ time division multiplexed signal, whose values correspond by position to the 16 ¦I rows and 16 columns forming the 256 indicator matrix. The display of the 21 I approprlate dats bit within the indicator matrix is accomplished by decoding the 22 1I sequential serial output from the OR gate 320 so that each of the 16 rows receives 23 ¦~ 16 sequential signal pulses. This decoding is accomplished by a 4 bit to 16 line 2~ ', decoder 322, whose 4 input control bits correspond to the least significant 4 bits of 1l the divider 316 output signal. These provide the sequential scan (through buffers 26 ~ 324) of the LED indicators 330 from the topmost to thc lowermost row as the data 27 1I RAM 312 is sequentially accessed to the first 16 data locations and multiples ~ .

12~3s~4 thereof. The columns are decoded by a similar 4 bit to 16 line decoder 326 whose 4 2 ¦l input bits correspond to the next 4 least significant bits above the 4 bits received 3 1, by the de!coder 322. This provides an incremental step from each column after 4 11 each complete scan through the 16 rows by the decoder 322 by incrementing the 16 " column decoder 326 increments after every 16 row sequence of the decoder 3?2, 6 until all 16 rows and 16 columns are sequentially addressed; thereafter, the cycle 7 repeats. The decoder 322 and the buffers 324 include a circuit to provide a high 8 I logic level upon the occurrence of the data level corresponding to an illuminated I LE~ as received from the RAM through the logic gates 318 and 320, coincident ¦ with the 4 row addresses provided by the divider 316. The buffers 328 and the 11 I decoder 326 provide the opposite, or low logic level corresponding to the respective 12 decoder 16 possible states of the 4 column address bits received by the input of the 13 ¦¦ decoder 326. A matrix is formed from the outputs of buffers 324 and 326 and the 14 li LED indicators connected thereto.
1~ The status LEDs on the front panel (of Fig. 8) are driven by registers 332 16 ¦' and 334 slhown in Fig. 6. The registers 332 and 334 receive data from the 8-bit 17 ! data bus 215"vhich is stored in the respective register by the LEDEN1 and the 18 l¦ LEDEN2 enable signals, which are generated in the I/O port decoder of Fig. 9.
19 ll Tho keyboard shown-graphically in Fig. 7 is arranged to provide two 4 X 4 ¦I matrices of points. Each matrix is received by a matrix driver encoder 352 and 21 ll 354, respectively. Each display driver encoder 352 and 354 includes two sets of 22 1I coordinate inputs 356a through 356d, 358a through 358d, and 360a through 360d, 23 ~I 362a through 362d. These inputs comprise a row and column input to the encoder 24 I drivers 352 and 354, respectively. A single front panel keyboard switch (not shown) I corresponds to a switch causing one of the row leads to be coMected to one of the 26 I column leads. A key switch closure between a row lead and a column lead results 2~ ¦I in a par~icular unique tbinary) signal code at the four output leads of each encoder I

4~3S~
.i ' 1.

1I driver connected together to for.m leads 364a, 364b, 364c, and 364d. The signals on 2 ill the Outpllt leads are recei-red by a buffer latch 366 which provides a tri-state 3 ¦ output on the four output leads connected to the least significant four bits of the 4 1I data bus 215 of Figs. 2 and 3. Each decoder driver 352 and 354 also provides a data S ¦¦ available (DA) signal indicating when a signal is currently on the output leads 364a 6 1I through 964d. These two DA signals are received by a register latch 370 which in 7 j turn pro~ides a tri-state output coMected to the data bus 215 of Figs. 2 and 3. A
8 I NOR gate 372 is connected to provide a signal corl esponding to the occurrence of a 9 ¦ data available (DA) signal on either 4 X 4 matrices and is connected to an audible I indicator (Sonalert) 374, manufactured by Mallory, Inc., and other manufacturers, 11 l~ providing audible indication thereof. Similarly, the Sonalert is also driven by a 12 ~ particular address location from the LED display discussed in Fig. 6. It is therefore 13 ¦ part of the system's operation to indicate an audible alarm by indexing a particular 14 !¦ location r~mong the LED display indicator panel.
I Fig. 8 represents the keyboard unit 920. The keyboard unit 920 contains a 16 ¦ group of 32 keys 930 used to input passcodes, commands, and status commands.
17 ¦ Twelve l,EDs 970 and an alphanumeric LCD display 995 show the system status to 18 the keyboard operator.
19 ll The keyboard 930 includes keys 931-942 which are used primarily for data ¦¦ input. Keys 943-946 control the keyboard input. Keys 947-949 are Control keys 21 li and are used for general control functions. Keys 950-952, the Display keys, are 22 ¦ used whlen the operator desires to see the status of various alarm units. The 23 1, Schedule keys 953-955 are used by the operator in controliing ~nd conîirming the 24 1I system alarm schedule. The Time/Date keys 956-958 are also used to control the 1l alarm schedules. Keys 960-963 are command keys used by the operator for testing 26 1¦ ~nd in responding to alarm signals.

I! 1 , l ~3~

The data input control keys 943-946 are used whenever data is being 2 l'lentereci. The Clear key 946 is used when a data entry is wrong. The Keyboard 3 l,Disable key 956 tells the microprocessor to ignore keyboard commands until a 4 l,passcocle is entered. The Print key 944 has whatever is currently displayed on 1~display 995 printed onto the printer. Enter key 943 is used after each complete 6 11data entry.
7 '¦To alter or examine the alarm schedule, the operator must first enter the 8 ¦system by the appropriate use of the command keys 947-949, in conjunction with 9 ¦data input keys 931-942. If the operator makes an error in the passcode, the entry may be deleted by a Clear key 946. When the correct code is keyed in, 11 the operator would depress the Enter key 943. Thereafter, the operator controls 12 what is displayed on display 995 by using Schedule Gall Up key 953 in conjunction 13 with the code of the particular alarm unit he is concerned with. The schedule may 14 be altered by the appropriate use of Time and Date Control keys 954-958. The Day may be entered using the appropriate keys 931-937, each of which represents one 16 day of the week.
17 The status of any particular alarm unit may be displayed by ushlg keys 18 950-952 in conjunction with the code of that alarm station being checked.
19 When the operator calls up via his command keys a particular point, its ¦status is shown on Point Status Board 985. If all is secure, the Secure LED 988 will 21 1Ibe on. If the point is not in use, the Bypassed LED 989 will be on. If the command 22 lloutput is activated, the Command On LED 990 will be on. If there is a problem at 23 the point, Alarm and/or Trouble LEDs 986, 987 will turn on, as will the 2~L 1'appropriate LED on Alarm Status board 980.
~IWhen a change of state occurs at any of the alarms or sensors, the operator 26 llmust send an acknowledgement of this state change. He accomplishes this by using 27 llAcknowledge key 963 in conjunction with the appropriate key 931-937, each of 28 ~which corresponds to one particular type of alarm or sensor.

~, .

1 ~2~35~ :

C
, .
~, The l/O port and decoder. 252 of Fig. 3 is shown in greater detail in Fig. 9.
2 i The control unit 200 I/O ports are allocated according to Table II, below:

li 3 ,I TABLE D[
4 ~' SYSTEM l/O PORTS
¦I Figure of Corre-6 ¦~port # Description sponding Circuit 7 1¦ 52' Point Status LED's Pig. 6 8 ll 53 System Status LED's 9 , j 59L Keyboard Input Ch~racter/Status Fig. 7
10 !l 55 Keboard Reset (Clear)
11 ¦i 56 System Output to Latches Pig. 14
12 ll 51' System Input
13 ¦1 UART
14 1 6C Read Receive Buffer Fig. 10
15 ll 61 Read Status Register 62 Read Mode Register #l 17 ll 62 Read Mode Register #2 18 ll 63 Read Control Register 19 ll 64 Write Transmit Buffer 1 6'i Write Status Register "
21 1 6~i Write Mode Register #l "
22 1 66 Write Mode Register #2 23 ¦1 67 Write Control Register 24 li Quad Cable Driver A (Cables 0 ~c 1) 1 7ll Data From Quad Driver Fig. 13 26 ¦ 71 Data To Quad Driver 27 ~ 72 Data To Quad Driver 28 1 7~l Quad Driver Control Word 29 ll (to Parallel Chip) Quad Cable Driver B (Cables 2 a~ 3) 31 74 Data From Quad Driver Fig. 13 32 75 Data To Quad Driver 33 1 71; Data To Quad Driver 34 'I 7l Quad Driver Control Word 35 ¦I Hardware Clock 36 li 82 Second Pig. 11 37 ¦ 1 83 Minutes 38 !, 8~1 Hours "
39 1~ 85 Day of Week 40 li 86 Date in Month 41 ! i 8'~ Month ~
42 9l; Clock Go Signal "

, .
Il .
,, ! ' - 21 -,1 .1 ~)3S94 . .

The address leads 215 and the PIORQ lead 274 are received by 3-bit to 8-line 2 decoders 402 and 404, respectively. Decoder 404 provides the following enable 3 ll signals: SYSRD, SYSWR, KEYCLR, KEYRD, LEDEN2, and LEDENl. Decoder 402 4 1 provides the enable signals PORT 0X ~N, PORT lX EN, PORT 2X EN, ~~ PORT 3X EN, to be received by the communication cards, as well as the 6 l~ PORT 4X EN and the 5X EN signal received by decoder 404. Additionally, 7 ll PORT 6X EN and PORT 7X EN are received by 2-bits to 4-line decoders 406 and I
8 ¦ 408, re!spectively. These decoders, when enabled by the enable lines provided from 9 1I decoder 402, generate the following enable signals: UART 2CS, UART lCS, QUAD
~¦ I)R 2EN, and QUAD DRlEN.
11 ~ The serial port circuitry 260 of Figs. 2 and 3 is seen in greater detail in 12 1 Fig. 10. The data bus leads 215, the PRD lead 217, the UART lCS and the 13 I UART 2CS leads 268 are all received by universal asynchronous receiver trans-14 ,l mitters (UARTs) 252 and 254. The UART 252 and 254 each provide a transmit 1¦ signal ~56 and 458, respectively. The transmit signal 456 is switched between the
16 I printer 261 or the matrix display 262 by the selection of the buffers 458 and 460
17 lll according to the SSELl and the SSEL2 signals generated by the system monitor 280
18 li logic, shown in Fig. 14. The signals resulting from the buffers 458 and 460 are
19 ll receiv~d by transmitter 462 which provides the required RS 232 voltage swing. The;
~ resulting output signal on lead 265 is received by the printer. The printer input at 21 ~ lead 266 is received by a RS 232 buffer 464, which in turn produces the appropriate 22 ¦11 digital level receive signal which is received by the receive input of the UART 454.
23 'I The serial signals produced by the transmit side and received by the input receive 24 , side of the UART 454 are processed according to the UART operation, generally 1l known in the art. Similarly, the UART 252 also provides the serial output signal on 26 l~ leads 458 as buffered by the RS 232 drivers 462, providing an auxiliary transmit 27 ll output signal. The auxiliary receive input signals is received by the serial Il~

ll 12Q35~4 C~ !

buffer 464 which produces a digital level appropriate to be received by the receive;
2 input of the UART 4S2. The auxiliary UART input and output signals are used for 3 additional area controls, such as for energy management system controls (not 4 , shown). The UART devices are typically achieved by a single integrated circuit, in j the present embodiment, a part number S2651 provided by either National 6 i~ Semiconductor or Signetics. The transmit driver 462 is typically a part number 7 l 1488; l:he serial receiver 464 is a part number 148g. Both the number 1488 and 8 i number 1489 are provided by several sources and commonly available and serve to 9 ¦¦ translate the signal from (or to) a rrL to (or from) an RS 232 format.
~1 In Fig. 11j the real time clock 270 of Fig. 3 is shown in greater detail. The real-time clock 472 comprises a single integrated circuit device generating a time 12 ! base from a single crystal 474. ~he real-time clock also receives as inputs the 13 ¦1 least significant 8 bits of the address bus 216, the 8-bit data bus 215, the system 14 I read signal lead 217, the system write signal lead 218, and the PIORQ lead 474, to ¦ receive a time "set" signal to initialize the clock 270, and to provide the 16 11 appropriate time signals on the data lead as requested according to the address 17 1l signals received by the real time clock 472. The gates 476, 478, and 480 form a, 18 I logical combination to provide a chip select enable signal to the real time clock 19 1 device 472 by a combination of the 6th, 7th, and 8th least significant address bits 2û and the PIORQ signal 274 provided therein. The real time clock device 472 is a 21 ll part number MM58167A made by National Semiconductor of Santa Clara, California, 22 11 and provides a plurality of time and day indication signals sccording to the address a8 1l signals derived from the system address signals derived from the system address bus 24 ~ 216. r~owever, other discrete or software program generated real-time clock ll apparatus are also within the scope of the present invention.
26 1l The LCD display buffer 275, the encoder memories 278, and the LCD display 27 , 280 is shown in greater detail in Fig. 12. Buffers 504 and 502 receive the address `!

'I .
, - 23 -~ I

3~94 signals and the data signals from the address and data buses 216 and 215, 2 respectillely. Furthermore, gates 506, S08, 510 and 512 logically combine the 7th 3 ! through 11th least significant bits of the address bus 216 with the LCDEN signal on 4 ¦ lead 267, the system write signal PWR 218, and the PMREQ signal on lead 266 to ¦ form an enable signal on lead 525 to be received by both of the tri-state buffers 504 and j02. The signals received through the buffers 502 and 504 are temporarily stored in the scratchpad RAM 514 which is used in a confi~uration of 128 X 8 bits.
8 The 8-bit (parallel) data signal is received by the RAM 514 along data input/output 9 leads 515 from the buffer 502. The 6-bit address signal is received by RAM 514 on leads 516 from the buffer 504, and the data signals stored in the RAM 514 are 11 subseque~ntly received from the system of Figs. 2 and 3 and loaded into the RAM
12 514. Thereafter, the information stored is sequentially resd through a decoder 13 ROM 520 which converts the 8-bit wide stored information from ASCII code to the 14 7 segment display code received by the display 280 on leads 521. The scaMing of the orthogonal display eoordinates on leads 516 simultaneously with incrementing16 of the llddress of the scratchpad RAM 514 al~gns the message data with the 17 appropriate display position. Therefore, the information stored within RAM 514 is 18 read out synchronously with the selection o~ the appropriate display numeral 19 position The LCD display comprises an LCD module 280 made by EPSON
America, of Torrance, California. The module provides tri-state address output 21 lines 521A, received by RAM 514. The RAM 514 provides the message data on 22 leads 515 which are received by ROM 520 to convert the data from ASC~ to 23 [positionally] inverted 7-segment LCD, as received by LCD module 280 on leads 24 521. Other display fonts are envisioned and may be used with an appropriate decoder ~OM 520.
26 The communication card 289 of Fig. 3 in the general system receives 27 informa~on through a programmable interface circuit having internal data transfer ~2~)35~4 i 1I determined according to the interface circuit hardware and internally programmed 2 1I software (not shown).
3 ¦~ The dual quad driver card 700 shown in Fig. 13 contains two channels, 4 1¦ channel A and channel B, wherein each of the channels provides the sufficient ¦ driving and receiving circuitry for one quad cable. The quad cables are in turn 6 i connected to a plurality of PID devices. The operation of channel A and channel B
7 are subc3tantially identical, differing only in the address of their signal data path 8 from the processor described in Fig. 3. The transfer of data between channels A
9 and B ~md the processor system of Figs. 2 and 3 is accomplished by way of a programmable peripheral interface 702, wherein the signals received from the 11 channeLs and transmitted thereto are temporarily stored in internal memory 12 locations until the data and addressing sequences provided by the processor system 13 require the addressing and service of those memory locations. The operation of the 14 programmable peripheral interface 702 is typically included within a single integrat;ed circuit, such as a part number 8255 circuit manufactured by Intel and 16 other manufacturers. The four leads on the quad cable, the signal (S), command 17 (C), power (D), and ground (G) leads, are connected at one end to terminals 704, 18 706, 70l), and 710, respectively. The opposite end, when the cable is configured in 19 a loop lo provide a redundant connection, i5 coMected to connections 704a, 706a, 708a, and 710a, respectively. Analogous connections of the quad cable to the 21 channel B driver of the quad cable driver card 700 are made to terminals 712 22 through 718 and 712a through 718a, respectively. Power for the cables is provided 23 I from a positive power supply voltage through a 2 amp fuse 720 ~nd then to the 24 terminal 708. The power supply voltage is bypassed by a transient suppressor 722.
The cablle ground at terminal 710 is coMected to the card ground. The signal lead 26 of the quad cable, as coMected to terminal 704, is driven by the amplifier 726 27 through a series resistor 728 through which the cable current is measurable. The 1 ~

~2~3sa4 invertlng input o~ the amplifier 726 is connected to the cable side of the resistor . 2 728 so that the voltage on the cable may be maintained at the desired voltage, 3 li establ3shed by the non-inverting input of the amplifier 726. The nominal amplifier 4 1, 726 input voltage is the reference V/2 voltage received through a series resistor 1¦ 730. The voltage excursion of the S-lead to a positive (H) or a negative (L) voltage 6 ¦ (relative to V/2) Vl and V2, is made through controllable switches 732 and 734, 7 1I respectively. The switches are controlled by amplifiers 736 and 738 which operate 8 ¦¦ as COnl~parQtOrS having a reference voltage of VB volts at their inverting inputs.
9 The non-inverting inputs of the amplifiers 736 and 738 receive digital signals from the programmable peripheral interface 702, which operate as signal level trans-11 lators to translate the signal voltage swing from a 0 to +5 volt range to a 0 to +V
12 voltag~ range, as required by the switches 732 and 734, control inputs. The 13 switches 732 and 734, according to this implementation, are CMOS bilateral 14 switches, typically a part number CD4066 manufactured by RCA of Somerville, New ,Jersey, and other manufacturers. The amplifier 740 is connected in a 16 differential amplifier configuration to measure the voltage developed across 17 resista,r 728, being responsive to the current variations through the signal (S) lead 18 connected to the signal terminal 704 according to the current variation signals 19 translrlitted by each PID 100. The resistors 742, 744, 746, and 748 are connected to form a differential amplifier, according to techniques known in the art. Capacitors 21 750 and 752 give the differential amplifier a low-pass characteristic so as to 22 suppress conducted EMI t.ransient noise voltages across resistor 728. Also, due to 23 the delay of several microseconds of the PID circuits in returning a signal, the filter a4 provided by capacitors 750 and 752 also delays the derived current signal formed I from l:he amplifier 740 so that false signal pulses produced by the PID before the 26 1~ logic circuits therein settle, are ignored. The output of amplifier 740 is monitored 27 l l by amplifiers 754 and 756 whose inverting inputs are connected to reference 28 l l voltages of VB and VA, respectively. The output of I ~

!

~ILZ~)3594 amplifier 756 indicates that the differential amplifier 740 output has Q signal in 2 1 excess of VAJ QS generally formed when a single PID device properly returning a 3 ¦ signal on the signal lead connected to terminal 704. However, when additional PID
4 1 devices are reporting simultaneously, as would occur when their address selectors are improperly set, or when the sign~l (S) is bypassed by a device not conforming to 6 the PID signal format the amplifier 754 output indicates that the signal of the 7 amplifi,er 740 has crossed a threshold of VB, corresponding to an excéssively high return signal current on the signal(s) lead from the PID devices. The signals from 9 the amplifier 754 and 756 are in turn received by the programmable peripheral ¦ interface 702, for transmission back to the control unit 200 of Figs. 2 and 3. The 11 terminal 704 is also bypassed by a transient suppressor 758 for transient suppres-12 sion thereupon.
13 The quad cable C-lead connected to terminal 706 is driven by amplifier 760 14 through resistor 762 which limits the maximum current produced on the lead connected to terminal 706 and matches the cable impedance. The amplifier 760 is 16 connected as a voltage follower and receives a nominal voltage of V/2 through 17 resistors 764 and 766, and bypassed by capacitor 768 to ground. A C-lead voltage 18 swing about Y/2 of plus or minus several volts is provided by switches 770 and 772, 19 respectively. These switches are controlled by amplifiers 774 snd 776, whose inverting inputs are referenced to a VB volt supply, derived below. The non-21 inverting inputs of the arnplifiers 774 and 776 are connected to the programmable 22 peripheral interface 702 wherein they receive data from the processor system of 23 Figs. 2 and 3. The amplifiers 774 and 776 act as signal voltage translators which 24 translal:e a TTL signal of 0 to +5 volts to a voltage range of 0 to +V, ~V typically being between 12 to 16 volts. The switches 770 and 772 are typically CMOS
26 switches, part number CD4066, as mentioned above. The amplifiers herein 27 described thus far are typically standard operational amplifiers, part number Il ~Z~35~

LM 324 by National Semiconductor Corp. of Santa Clara, California, and other . 2 manufacturers.
3 The terminals 704, 706, 708, and 710 are connected to terminals 704a, 706a, 4 708a, and 710a through relay terminals 780, 782, 784, and 786, respectively, upon closure by energizing the relay coil 790. The coil that causes both ends of the 6 cable to be driven ~s energized by driver transistor 792 and gate 794 with signals 7 derived from the system through the programmable peripheral interface 702. The 8 system ~00 can determine whether or not a cable break has occurred by the no-9 cable-break signal derived from a bistable flip-flop formed from NAND gates 796 and 798. The no-cable-break signal is a high condition on the lead 800 which 11 provides a wired-O~ path of several comparator outputs, which determine the 12 continuity of the individual cable leads connected thereto. A voltage relating the 13 continuity of the D and G-leads is formed on lead 806 by resistors 808, 810, and 14 812, and a Zener diode 814 such that the continuity of both the cable at terminAls 708 to 708a, and the ground leads of terminaLs 710 and 710a, must be 16 maintai~ed to provide a signal (at 806) between the voltage window limits of V1 17 and Y2. The comparators 802 and 804 are connected to detect the existence of a 18 threshold voltage within a particular window defined between voltage V1 and V2.
19 The threshold voltage is received on lead 806 of the amplifiers 804 and 802. If either the ground cable (G) or the power cable (D) develops an open circuit, one of 21 the co~nparators 802 and 804 will pull the voltage on lead 802 to a low state, 22 indicating a defective cable, and triggering the flip-flop formed by gates 796 and 23 798. Then, the no-cable-break signal will be in the false state. The 24 comparators 820 and 822 are connected to appropriate circuitry to monitor the cables 704a and 706a wherein the circuitry and the amplifier provides a true signal 26 whenever voltage levels exist within the signaling range of V1 to V2. lf a cable 27 were broken, there would be no active signaling on the cables 704s and 706s, and AA
-- 6~ --~2~3594~

the circuitry associated with ampLifiers 820 and 822 wouLd detect the lack of 2 1¦ signaling ehereupon. SpecificalLy, the signal from terminaL 704a is received by the 3 I comparator 820 through resistor 824, where the signaL voltage developed is lin.ited 4 1! by Zener diode 828. The resuLting signaL voltage developed across resistor 824 is ~I temporarily stored in capacitor 732 which is subsequently discharged slowly over 6 I time by resistor 736. Therefore, if the signaL on lead terminal 704a ceases, the 7 ¦ resistor 736 wiLL discharge the capacitor 732, causing the non-inverting input 8 voltage of the comparator 820 to faLL below the VB reference voltage, causing the 9 I comparator output voltage to fa~L to a faLse level. The signaLing on terminaL 706a is simi;Larly monitored through resistor 826 by the non-inverting input of the 11 comparator 822. The cflpacitor 834 is charged by the voltage developed through 12 ¦ resistor 826 as limited by Zener diode 830. When the signa!Ling on 706a stops when 13 the cable is broken, the voltage developed across capacitor 834 is discharg~d by 14 resistor 838, causing the non-inverting input to falL below the VB volt reference level. Thereafter, the output of the comparator 822 wiLL fall to a false state, as 16 above in oomparator 820, causing the fLip-fLop formed by gates 796 and 798 to 17 change the no-cable-break signaL to the faLse state. The comparators discussed 18 ¦ herein are typicaLLy a part number LM339 avaiLable from National Semiconductor 19 ¦ and other sources.
Thel VB and VA references are developed by a voltage divider between the 21 ~5V to ground voltage by resistor 840, 842, 844, and bypass to ground by capacitors 22 1 846 and 848. The voltages V1 (H) and V2 (L) are developed by a voltage divider 23 formed across the I V volt source, the divider comprising a diode 850 in series with 24 resistors 8$2 and 856 with Zener diode 854 connected to ground. Diode 850 ¦ matches the reverse voltage blocking diodes used in the point interface devices, 26 ¦ described below. The Zener diode 854 provides a difference between V1 and V2 of 27 ¦ several voLts. The voltage divider is bypassed by capacitor 858 across the junctions , ,~

.j ll ~IZ~)3594 i forming V1 and V2. The +V/2 voltage is provided by a voltage divider comprising 2 ~ resistors 860 and 862 in parallel with capacitor 864; the voltage resulting is 3 I buffered by amplifier 864 to provide a low impedance reference voltage of ~Y/2.
4 The system monitoring circuit and battery stand-by circuit 280, shown in greater detail in Fig. 14, also includes connection to the power supply 282 of Fig. 2.
6 ' The integrated security system of the present invention receives 13.8 volts of 7 '' power at terminals 530 and 531 which are in turn connected to internal power 8 distribution circuitry, and are bypassed by a transient suppression diode 532. The 9 ,! power leads are then shunted by two resistors 534 and 536 connected in series at ll their junction, and forming fl voltage divider which creates a +5 volt signal when 11 j~ the power is supplied. This signal is received by a tri-state buffer 581, discussed 12 ¦¦ further below. When the applied external power is removed while the system is in 13 11 operation, the circuitry described herein automatically connects a stand-by 14 I battery 638 to the power supply distribution systems within the processor; the ll indicator signal formed at the junction of resistors 534 and 536 indicates the lack 16 ll of voltage applied to the unit at terminals 530 and 531, and the system maintains 17 ~ I operation to report the loss of power through the audible and visual displays 18 ll discussed above. The cut-over of power from the external source of the internal 19 ll battery is provided by diodes 539 and 540 connected to form a current path which 1l enables ~!ither source to supply power to the system. When the external power is 21 I j applied, resistor 542 bypasses diode 540 to provide a charging current to the 22 ~ battery 538. The resulting nominal +12 volt power supply is bypassed by capaci-23 1l tor 541. The power supplies indicated as 282 in Fig. 2 comprise two separate 24 power converters operating from the derived +12 volt nominal signal discussed 1 above. The first of these comprises a switching power supply 544 providing a high 26 efficiency regulated +5 volts from the +12 volt input voltage. The second of the 27 I power supplies comprises a switching power supply 545 providing a -10 volt output . .

G !1~Z~35~4 l¦ and a regulated -5 volt output to be used by the systems described above.
2 1!Switching power supplies are preferred because of their high efficiency and low 3 I~heat dissipation. However, other power supplies or power sources may be used as 4 Idesired and are considered within the scope of the invention. The ~3.8 volt power 1Ireceived by terminals 14 and 15 is provided externally by a power supply (not 6 shown), ~here the external power supply produces external alarm signals on leads 7 jreceived by the system monitoring circuit 280. These external alarm signals 8 !include t1he power supply control signal on lead 546, the AC power fail signal on 9 1lead 547, the pcwer supply tamper on lead pair 548 and 549. The leads 546 and 547 ¦!are bypassed by transient absorbers 550 snd 551, which have a sharp V-l knee and 11 ¦fast response time, and are typically diodes such as General Semiconductor 12 1Industries~ part number 1.5 K~ 18. The signal on lesd 547 is received by the 13 1tri-state buffer 581. The signal on lead 549 is received by a network comprising 14 1resistors 552 and 553 and capacitor 554, forming a low-pass noise filter, and then 1lstored in a set/reset flip-flop 582. A 12 volt power source is provided at terminals 16 ~558 and ';59 through a relay at 560 which comprises a pair of double pole/douMe 17 throw contacts connected to provide a reversible polarity at the terminals 558 and 18 559. The relay is connected to the +12 volt supply, and its coil is bypassed by a 19 ¦diode 561 through resistor 562 for transient suppression. The relay polarity change 1is determined accor~ling to the signal received by the driver transistor 564. The 21 signal is provided through tri-state buffer 580, discussed below. The power supply 22 llcontrol signal on lead 546 is derived from comparators 566 and 567 connected in 23 1 !parallel l:o act as signal level translators. The eomparators receive at their 24 ,Inon-inverting inputs an AC/DC control signal from the tri-state buffer 580. The 1inverting inputs of the comparators 566 and 567 are connected to about +1 volt 26 1from a voltage divider between the +5 volt power supply formed by resistors 571, 27 11572, 573, and 574. The voltsge divider nodes between its constituent resistors are ~ I

c ~ 13599L

.
connected to comparators 569 and 5~0 so as to determine whether the chassis !l 2 ground 575 has a voltage within the range of roughly 1 volt to 4 volts, as determined 3 ~, by the values of the voltage divider resistors 571 through 574. When the chassis 4 ground exceeds the range of 1 to 4 volts, the comparators 569 and 570 outputs indicate a fault condition, which is received by a flip-flop storage element 582.
6 ' Normally, chassis (earth) ground is floating relative to signal (system) ground;
7 1I however~ a 2.5 volt bias is imposed on it by the voltage divider described above. If 8 1l one of the quad cable conductors is shorted to chassis ground, the 2.5 volt signal is I
g 1l overridden, forcing the fault alarm when the cable bias goes outside of the 1 to 4 l¦ volt ran~e provided. A deadman signal is provided by the system of the present 11 ¦ invention when an alarm is annunciated and is not responded to by the operator 12 within a specified time. The deadman signal, as provided by the tri-state 13 I buffer 5F30, is received by a driver transistor 576 which in turn drives a relay 578 to 14 ¦ provide a contact closure on terminals 577 and 579. The contact closures may be ¦ used to ~mnunciate to a distant station the failure of the operator to respond within 16 l a certain time. The printer leads 265 and 266, and the matrix lead 267 from the 17 I serial port circuitry of Fig. 10, are bypassed by diodes 591, 592, 593, 594, 595, and 18 ¦ 596 to llhe +12 volt and -10 volt supplies to limit the excursion o the signals 19 ~ present on those leads to be maintained within the power supply range of the
20 ~ control lmit, preventing external signals to be induced on the leads to cause failure
21 11 of the components of this present system. A control unit tamper signal is
22 1l generated by a switch 586 connected to a network comprising resistors 583 and 584
23 I, between the +5 volt and ground signals, and bypassed by capacitor 585 for noise
24 l suppressing. The resulting tamper signal is received by the latch 582. The signals
25 ¦~ receivecl by the latch 582 may be transient signals very short in duration;
26 1I therefore, the latch 582, operating in a set/reset mode, is necessary to maintain
27 1! the indication of the trouble condition by storing the transient signals until they .1, l - 32 -~iL2~35~
@

., are placed on the data bus 2i5 by the operation of the tri-state buffer S81;
2 I subsequently, the l~tch 582 is reset, clearing the trouble signals. The buffer 581 is 3 1 enabled by the SYSRD signal 284 from Fig. 9, the I/O port decoding circuit, to 4 1 place the latch 582 output signal on the data bus 215. Similarly, the data received l from the data bus 215 is received by tri-state latch 580. These signals comprise 6 1l the AC/I)C control signal, the power supply tamper reset signal, the DC relay 7 il control signal, the deadman signal, the fault reset signal, and the control unit 8 1¦ tamper reset signal; the select signals SSELl and SSEL2 also generated in the 9 ! system monitor and control circuit 280, are received by the circuit in Fig. 10, 11 which directs the outgoing transmitted serial data from the UART 454 shown in Fig. 10 to either the matrix 262 or the printer 261.
12 1 Thle point interface device (PID) 100 is physically located on the premises of 13 1 the remote communication area. The PID signals the status of several indicators 14 ! over the connecting cable trunks which are initiated from the control unit. The PID mon~itors status of several signals and turns sensors or mechanical devices on 16 11 or off. Typical of the point status signals are alarm, trouble, tamper, PID trouble, 17 ¦ bypass, secure and relay output signals. The point status signals are connected to 18 ¦ several ~eparate pins of the PID circuit from e~ternal circuitry. The status 19 1 information signals are stored and transmitted to the central unit.
, A~3ditional elements and alternate embodiments of the control unit 200 are 21 1I shown in Fig. 17. It is within the scope of the current invention to store operator 22 1l passcodes in two PROMs, 421 and 422, each comprising 256 X 4 bits. A suitable 23 ¦ type of E~ROM is the 74S287 made by Texas Instruments of Dallas, Texas. The two a4 i PROMs are paired for interfacing to the 8-bit data bus 215, and the address ' bus 216. The PROMs receive an enable signal from the memory selector, discussed 26 ~l earlier on lead 429, or from the alternate memory enable selector device 432, 27 I discussedl below.
,1 . . .
12~3594 ~ ,!

~I Nonvolatile static RAMs (NVSR) are used to store temporary information 2 ' during a power failure. The NVSR 423, 424, 425, and 426 are connected to the data 3 bus 215 and the address bus 216, as are the memory devices discussed above. In 4 11 addition, the NVSRs receive the write signal on lead 218, the reset signal on ~1 lead 276, and the nonmaskable interrupt signal on lead 277 from the control unit of 6 1I Fig. 2. I'hese signals cause the data to be written into the NVSRs, to be reset, and 7 1 to be stored upon power failure according to the operations known to the 8 1 nonvolatile RAMs. A suitable type of NVSR is the part number XD2212, a 9 j 256 X 4 bit device made by ~icor of Sunnyvale, California. Pour NVSR devices l 423, 424l 425, and 426 are arranged in a 2 X 2 matrix resulting in a 512 X 8 bit 11 ¦ array. 1'he NVSRs are selected according to a signal on the NVSREA lead 428 and 12 1 the NVS~EB lead 427 connected to the memory selection devices discussed above, 13 ~ or to th~h alternate selection device 432 discussed below. Each device contains a 14 I volatile IRAM which is written into and read from in normal operations, and a ¦ nonvo]atile store which holds the data for several years.
16 ¦ Alternate memory selection decoding is shown comprising a programmable 17 read-only memory 431 as a look-up table which receives an 8-bit address from the 18 ¦ address t~lUS 216 to decode that to a 4-bit control line 441. The 4-bit control 19 ¦ line 441 is received by a 4-bit to 16-line decoder 432 providing a selection among 1 16 output leads 430 directed to specific memory devices, such as RAMs, ROMs, 21 1 PROMs, and NVSRs, as discussed above. The element 431 and 432 are enabled 22 j according to the memory request signal on lead 266, supplied from the control unit 23 !l of Fig. 2 An alternate I/O device selection element is shown comprising a 24 PROM 433 functioning as a look-up table to receive an 8-bit address from the !1 address bus 216 and provide a 4-bit output code 442 which is in turn received by a 26 l~ 4-bit to ~6-line decoder 435. The decoder 435 produces a singular selection among 27 l 16 le&ds connected to respective I/O devices, such ~s provided by the system of ., .

i 11 ~Z'~ 4 ~ Figs. 2, nd 3 above. The decoding devices suggested here comprise an alternate 2 l approach to the earlier described method using a direct decoding of the address 3 scheme~ using integrated circuits such as a 74138 or 74139. Suitable PROMs 431 4 and 433 include devices such as 74S287; a suitable 4-bit to 16-line decoder is the part number ~4154.
6 lt is desirable to add or remove communication cards to the system withoot 7 disruption of the function thereof. Therefore, a communication card disable 8 interface is formed by circuits 436 and 437 which selectively enable the necessary 9 control, data and power leads to the respective communication cards. The commwlication card disable interface is controlled by a disable signal on lead 438, 11 derived from the I/O selector, discussed above. When in the active state, the 12 disable signal 438 causes the tri-state 437 and gate 436 to interrupt the flow of 13 signals on the leads connected to the communication cards. The CPU 202 will 14 monitor the cover tamper switch discussed in Fig. 14 so that when the cover is open, the communication cards are disabled by the action of the disable lead 438.
16 Upon detecting that the cover hEIs been closed after servicing, the disable lead 438 n ~

12~3S~D~
. ;

¦ ' Software System Implementatio~
2 llThe control unit and associated system hardware described above opera~e 3 junder the control of two main software programs. The first program shown in 4 ¦IFig. 18, which includes the subroutine shown in Fig. 19, selects among and performs 1Iseveral independent operations or tasks of the system. The second program is the 6 1linterrupt service program, shown in Fig. 20, wherein the operations of the 7 j ¦hardware system receiving external data and transmitting external data and 8 ¦¦control signals are synchronized according to a hardware interrupt. Since there is Ionly a single central processor unit 202, the hardware interrupt takes precedence over the other system programs when it occurs; however, during the intervening 11 interrupt time period, the general system program services all internal (to the 12 control unit) system operational needs. The combination of the first and second 13 program according to the present invention further provides independent control 14 and monitoring of the following tasks according to a predetermined task priority.
The highest priority task is the monitoring and control of the four cables, wherein 16 ¦the lowest numbered cable has the highest priority among the four cables. At the 17 next level of priority, the system provides the keyboard data entry and the message 18 printout functions as additional independent functions which generally occur after 19 the cables are properly serviced by the program. Furthermore, system self-Imonitoring and other general system functions are maintained at a still lower 21 Ipriority level. The software system implementation as described below interleaves 22 ilthe above-mentioned functions in the appropriate priority, as well as provides for 23 l¦the execution of particular I/O operations on the respective signal leads of the 24 1l~ontrol unit hardware of Figs. 2 and 3 at integral units of the hardware interrupt 1¦time period.
26 llAs the PIDs are scanned, according to the programs described in Fig. 18, et.
27 seq., the specific information relative to each PID necessary to determine the 1.

1l ~Z~3S~ i system operation is read from the (P)ROM devices containing the system customi-2 zation space, including memory locations 7000-8FFF hex. The memory space is 3 i allocated according to the Table m, shown below:

4 ~, TABL]3 III
, CUSTOMIZATION ROM SPACE

7 l l (decimal~
8 1~ 0001-4096 ZNNMWD 16-character name/descriptor for each point 9 i I (PID) in security system 101l 4097-41099 SENINF 3 bytes of information on each PID:
11~l 1) SENSOR priority tl bit set per PID) 12~l BIT: 0 - Fire alarm 13j 1 1 - Superviser/Danger 14lI 2 - Hold Up Alarm (HUA) 15,, 3 - Security-Break In Alarm (BA) 16l 1 4 - Supv. BA/FA
171 l 5 - Supv. Miscellaneous 18!j 6 - Electrical/Mechanical (EM) 19!l 7 - Command Output point 20jl 2) BIT: 0- 24-hour tfixed) alarm 211l 1 - Exit delay 22I! 2 - Entry delay 23I! 3 - Redundant sensor 24I' 4- Command Output point 25jl 5 - Daytime Annunciation sensor 26 1 6 - Latching sensor 27 , 7- Keyswitch
28 1 3) Area number containing this point 29il -- for group actions 30I! 4100-4379 PDLSTB List of points distributed to each of 8 31~I possible security groups.
., 32ll The PDLSTB is a table of 8 addresses tl6 33 ; bits) which indicate the point number of the 34 first sensor in the group. Additional sensors 35 ! in the group will follow in sequential memory 36; I bytes. The end of each of the 8 lists is 37 marked by a repetition of the last point 38 ' number in the list. A group containing no 391I points (a non-existing group) is indicated by a 401, list containing only the number 255D.

120;3~

4380-4337 GRPROM Information about each BA group with 1 byte ~ per group:
3 jl BIT: 0 - Schedule exists for group 4 , 1 - Group has keyswitch ¦ 2 - (Not used) 6 3- Multiple exits allowed from !I group g 1 4 - Bypass never allowed in group ~ 5- No bypass allowed when this group is secured 11 1 6- Multiple accesses allowed in 12 I group during one scheduled 13 I access period 14 il 7 - Group exists ~1 4388-4395 GPRDLS One byte per group indicating with which 16 I groups this security group is redundant. All 17 I groups are redundant with themselves. The 18 l (n-1) bit is set to indicate a group is redun~
19 l dant with group #n.
1 4396-45B7 OKPSCD Passcodes valid for this installation. 5 digit 21 li passcode followed by 1 digit indicating to 22 ¦! what group that passcode has access. This 23 ll 6th digit is a number from 1-9, 1-8 being a 2245 Ij specific group #, 9 means a passcode has access to all 8 security groups.
26 ' These passcodes are ordered user #l to 27 1! user #32. User #1 is the janitor passcode, I
28 I users #30, 31, and 32 are service personnel.
29 I The other 28 passcodes are subscriber pass-I codes.
31 ¦1 4588-4971 PRMSCD Security group schedules, each of 8 BA
32 I groups, can have an 8-day schedule 3 on time 33 1 3 off times per day. See Appendix A for 34 , ! Schedule table description.
1 4972-5227 TAGTBL One byte for each point to indicate a relay #
36 !! to activate when sensor point alarms. A 0 in 37 il the TAGTBL [table] means no relay is acti-38 ll vated by alarms at point.
39 , 5228-5235 GPONRL One byte for each security group, indicating l' relay # to activate when corresponding group 41 li iS secured.
42 1~ 5236-5243 FAlREL One byte for each possible FA group which 43 i contains relay # to activate (if any) when 44 1 alarm occurs in this group.
1 5244-5251 SDlREL One byte for each possible Supervisory 46 i danger group for relay # for alarms in this 47 ' group.

1.

il I

Il 5252-5-!59 HUAlRL ~ One byte for each possible Hold Up group for 2 1I relay # upon alarms in each group.
3 !1 5260-5.!67 BAlREL One byte for each security group for relay #
4 ¦ activated upon alarms in group.
1l 5268-52~5 FABARL One byte for each FA/BA Supervisory gro - 6 ll for relay # activated upon alarms in group.
7 1 ! 5276-5283 SUPARL One byte for each Supervisory Misc. group 8 , for relay # activated upon alarms in group.
9 ~ 5284-5.'89 EMAlRL One byte for each Electrical/Mechanical I group for relay # activated upon alarms in I l group. I
12 1 5290-5.'97 TYPREL One byte for each priority type to contain 13 l relay # (if any) to be activated any time a 14 ¦ sensor of that priority type alarms.
5298 RDWIN1 First redundant time window, length of time 16 (0-255 minutes) system waits after first 17 - redundant sensor alarms for verification by 18 1 2nd redundant sensor.
l9 5299 RDWlN2 2nd redundant time window, length of time l (0-255 minutes) following a successful redun-21 dant verification during which subsequent re-22 dundant alarms require no verification.
23 5300 EXlDLY Exit delay length (1-255 seconds) during 24 which exit alarms are not transmitted to allow exit from building at night.
26 5301 FNTDLY Entry delay period (1-255 seconds) length of 27 time entry sensor alarms are held to allow 28 subscriber to access alarm system upon open-29 ing.
5302 MAXCBL The number of quad cables used in the ISS4 31 I system. The 4 possible cables are numbered 32 0to3.
33 5303 CB0MAX Maximum point address on quad cable 0 34 5304 CBlMAX Maximum point address on quad cable 1 5305 CB2MAX Maximum point address on quad cable 2 36 5306 CB3MAX Maximum point address on quad cable 3 37 5307 PCl:)LOK Not 0 if subscriber can delete passcodes 38 5308 ACBELL Not 0 = Audible alert desired on loss of AC
39 I power , 5309 BASHOP Not 0 = Security sensors shed on low battery , .

I!
I' !l 5340 DMTMOP Not ~ = 60 seconds without acknowledgement 2 1 of LCD message throws deadman relay on 3 1 ISS4 control unit 4 li 5341 ISKYBO Not 0 = keyboard timeout option in effect 1 5342 SPRCOP Relay # to activate when first redundant 6 ¦ sensor (the supressed one) trips 7 5343 HOSTCD Single digit preceeding valid passcode which R cases hostage message transmit to Central 9 Station.
5344 TSCHFG Not 0 = Temporary BA schedule changes are 11 erased at midnight following day in which 12 they are used.

13 l The ON/OFF time schedule~ for the BA Groups (0- 7) are in PROM. This 14 I schedule is transferred into RAM to allow temporary changes to be programmed.
The table's format will be 2 bytes for each ON/OFF combination, with up to 3 16 combinations per day in an 8-day sequence, ordered MTWTFSSH, where H is the 17 Holiday schedule. Since only 15-minute time increments are allowed in the 18 schedulle, the format for storing each time will be:

19 BIT 0-4: number of hours (hex) BIT 6-7: number of 15-minute increments (hex) 21 A valul3 of ~FFH in a time location will indicate no schedule exists for that period.
22 The time schedule table will have 6 bytes per day per Group. For 8 days, there are 23 ¦ 48 bytes per Group; therefore, 8 Groups require 384 bytes for the entire BA
24 ¦ schedule, as shown by Table IV, below:

i :

TABLE IV
l ~ !
2 Group l~: MONlOFF, MONlON,MON20FF,MON20N,MON30FF, MON30N
3 1! TUElOFF, TUElON,TUE20FF,TUE20N,TUE30FF, TUE30N
4 ! I WEDlOFF, WEDlON,WED20FF,WED20N,WED30FF, WED30N
~ THUlOFF, THUlON, " " " "
6 iI FRIlOFF, FRIlON, " " " "
7 I SATlOFF, SATlON, " " " "
g l l SUNlOFF, SUNlON, " " " " I
I¦ HOLlOFF, HOLlON, HOL20PF,HOL20N,HOL30FF, HOL30N
lû lGroup :I: MONlOFF, MONlON, MON20FF, " " "
11 ITUElOFF, TUElON, TUE20FF, " " "
12 !WEDlOFF, WEDlON, WED20FF, 13 1 THUlOFF, THUlON, " " " "
14 , FRIlOFF, FRIlON, " " " "
1 SATlOFF, SATlON, " " " "
16 1 SUNlOFF, SUNlON, 17 ll HOLlOFF, HOLlON, 18 ll Group 2: Same &s above 19 ~ Group 3:
¦ Group ~
21 ~ Group !j: :
22 Group l;:
23 Group 7:
24 Group l3: Same as above ll The priority determining the correct sequential operation of seven separate 26 l¦ tasks through one hardware CPU 202 is shown in Figs. 16 and 18. Fig. 15 shows the 27 1 ~ RAM memory space mapping of the data associated with each of the seven 28 separate tasks, in separate sections of the RAMs 241-244 shown in Fig. 2 of the ag ~ l control unit hardware configuration. The information stored in the RAMs is ~I retrieved by providing to the CPU 202 (Z-80) processor IX registers the addresses 31 , corresp~onding to the desired data, as shown in the register drawing Fig. 4, 32 discussed above. Although the particular embodiment of the present invention uses :.

~Z03S9~
<
' 1' a Z-80 microprocessor as the.CPU 202, the use of similar microprocessors or 2 , computer equipment with analogous register organization is envisioned and within 3 i the scope of the present invention. Each portion of the RAM space dedicated to a 4 ll particul~r task function spans an address increment of 100 hexidecimal (hex) 1 address locations, beginning at an address of COOO hex for the first location of the 6 I first task tcable 0). The last memory location for the first task is COFF hex; the 7 ¦~ first position of the next task (cable 1) is then C100 hex with a last location of 8 ~I ClFF hex, and so forth. Within each task memory space, the memory addresses 9 I having the least significant digits in the numeric sequence from 11 hex to FF hex 11 comprise Q memory area known as the memory stacks. The memory stacks receive 11 1I the content of the CPU 202 registers, including starting addresses and return 12 ! I addresses of subroutines called whenever the particular subroutine or program 13 1I currently operating requests an external input/output (I/O) operation, as discussed 14 1I below. The memory space locations 00 hex through 10 hex retain the necessary ¦l lnformation as required by the particular subroutines in operation according to the 16 1l information in the task stack between locations 11 hex through FF hex. The 17 ~1 locations 00 hex through 10 hex, are identical in nature for each of the first four 18 ¦¦ tasks, and are shown along the left-hand margin of Fig. 15 as address locations 19 l¦ XXOO through X~10; the value XX corresponds to CO, Cl, .. , C4 for each of the , seven tasks performed by the system of the current invention.
21 I Specifically, the RAM relative locations 00 and 01, corresponding to the 22 ¦I current point (PID) number and the current data bit number (within each PID), are 23 1, used by the MAIN SCAN program, discussed in Fig. 18 below. The RAM location 02 24 1l corresponds to the pass count for the scan of this current cable, as used in the 1l SCAN8 subroutine of Fig. 33. The normal bit data on location 03 hex is used in the 26 1~ RDNOR subroutine of Fig. 28. The status bits of location 04 hex correspond to the 27 jl information used in Fig. 2~ of subroutine RDSTAT. The relay bit stored in location ~3594 o 05 hex corresponds to the information shown in subroutine RDR~L of Fig. 29. The 2 I location 06 hex contains the address bits of the RDADDR subroutine of Fig. 31.
3 ! Location 07 is reserved for future development. Locations 08 hex and 09 hex 4 ' correspond to the low-order and high-order byte of the stack pointer storage as ll used by the task selection executive (TSKSEL) subroutine of Fig. 19. The location 6 ¦1 OA hex stores the request for quad cable pulse generation and is used by the ¦ PLSGEN subroutine of Fig. 26. The length of the pulse is stored in location OB hex, 8 and is also used by the PLSGEN subroutine. The SCAN8 subroutine determines the 9 number o~ PID devices declared to be noisy (and therefore unreliable), the number being stored in RAM location OC hex. A flag indicating the completion of the pulse 11 ¦ (ItO operative requested) is stored in location OD hex, as used in the interrupt 12 subroutine INTRTN 1200 of Fig. 20. A position OE hex is reserved for a flag for 13 ¦ pulse request, and is currently unused. The address of the last PID on the cable 14 ¦ currently being serviced, and a nag indicating if the status of the current point has been read, correspond to the RAM locations OF and 10 hex. The stack location 16 11 hex corresponds to the highest stack address, whereas the location FP hex, while 17 being the last location within the cable RAM space~ corresponds to the first, or 18 bottom, cable stàck address. As particular to the Z-BO microprocessor, this 19 arrangement permits the cable information to be sequentially pushed into a stack configuration from the bottom, or highest numeric, location upwards, to a lower 21 numeric ~ralue.
22 When the system begins operàtion on one of the seven tasks designated, the 23 1~ register information on the stacks, previously located in ~AM location 11 hex 24 ! through FF hex, is first moved into the Z 80 main registers of Fig. 4 (alternate ~ registers not used in the present ermbodiment). The system information operation 26 of a prior task is removed from the CPU 202 registers and stored in the particular 27 RAM stack location corresponcling to the task then operating according to the RAM

~Z0359~

memory space map of Fig. 15. The information of the current task is transferred 2 from current task RAM memory space to the CPU 202 registers 900.
3 Information unique to each PID will be kept in the RAM at location C500 to 4 approximately CCFF; the general system RAM area also includes a scratch pad S area at the address begiMing approximately CE00 to DFFF. The printer stack 6 corresponding to the printer task, extending for approximately 50 bytes, is located 7 at the approximate location CD3S to CD85. Within the RAM status table, there 8 are 8 consecutive bytes of information for each PID. The IX register will be used 9 to point to the information byte 0 for the currently enabled PID. An address increment pulse will add 8 to the IX register. An address reset pulse will reset the 11 IX register to point to the information byte 0 for the PID number 00 on the 12 currently addressed cable. Therefore, 8 bytes per PID times 256 PIDs equals 2K
13 bytes of RAM data. The IX register will always point to the 0 byte of information 14 for the currently enabled PID on the currently scanned cable.

-- g4 -~3sg4~
C 1.

', TABLE V

2 l ~ NAMELOCATION
3 1I STATUS (IX+~) BIT: 0 - Normal bit 4 ll 1 - Tamper bit ll 2 - Trouble bit 6 ll 3- Alarm bit 7 4 - Relay-on bit 8 ` 5 - Relay-on next scan bit 9 6 - Relay~ff next sc~n bit 7 - Relay-on pulse has been sent 11 DATA (IX+1) BIT: 0- Disabled .12 1- Noisy 13 . 2 - Exit delay period 14 3 - Entry delay period 4- Redundant save fl&g 16 5 - Access flag 17 I .6- (Reserved) 18 7 - PID communication failure flag . . . I
19 LINK (IX+2) BIT: 0-7 Will store address of next sensor in Z0 LCD annunciation queue after curren.t 21 address is annunciated.
22 . Condition Byte (IX+3) BIT: 0- Alarm 23 1- Trouble 24 2- Tamper ..3 - Communication trouble 26 4 - Restored alarm 27 .5 - Restored trouble 28 . . . 6 - Restored tamper 29 7 - Restored communication trouble LCD and (IX+4)BIT: 0 - Alarm acknowledged 31 Acknowledged Byte 1 - l~ouble acknowledged 32 I . 2 - Tamper acknowledged 33 1 3 - Communication trouble acknowledged 34 1 4 - Restored alarm acknowledged 5 - Restored trouble acknowledged 36 6 - Restored tamper acknowledged 37 7 - Restored communication trouble 38 ! acknowledged 39. ¦ Printed Blyte: (IX+5) BIT: 0- Alarm printed 40 1 . 1 - Trouble printed 41 2 - Tamper printed 42 3 - Communication trouble printed 43 1 4 - Alarm restoration printed 44 11 5 - Trouble restoration printed ¦l, 6 - Tamper restoration printed --!l ' i lZ~3S~ `
C~ :

7 - Communication trouble restoration , printed 3 !' Print Link Byte (IX~6) BIT: ~7 Will store PID number of next sensor 4 l l in print queue after current PID
l' address is i~nnunciated.
6 1 Test dc Pc~wer Byte (IX+7) BIT: 0- Power off requested 7 i' 1- Power on requested 8 1 2 - Power off sent 9 ll 3 - Power on sent ll 4 - Point in walk-test mode 11 1 5 - Suppressed message recorded 12 I! 6 - Test alarm occurred 13 ¦l 7 - Test restoration occurred 14 !I PRSTAT l/O Status Byte (A 1 indicates an l/O condition) l ¦ Brr: 0 - Waiting for serial transmit buffer to lfi ll clear to output high priority message 17 1l . (alarm annunciation) 18 ~ 1- Waiting for serial transmit buffer to 19 ~ clear to output low priority message j (keyboard I/O) 21 1 2 - Waiting for keyboard input 22 1 1 3 - Keyboard disabled -- only passcode 23 11 . digits allowed for input 24 ll 4- No printing allowed bit (used for ini-I I tialization) 26 l 1 5 - Passcode being entered -- no LCD
27 ¦ I readout 28 Ij 6- Keyboard function (low priority) cur- I
29 I rently being executed ' 7 - High priority print task now executing 31 I BELLPG Status Byte (A bit = 1 indicates the control unit 32 l bell is on) 33 , Bll: 0- Exit warning 34 i 1- Entry warning ! 2- Schedule secure. warning/ bad group 36 ! secure/ bad group access 37 ! 3 - Ring back 38 i 4- Keystroke 39 i 5- Alarm Annunciation ¦~ 6- Redundant alarm li 41 ! SYSRDP System Read Byte (Contents of this RAM byte are result 42 ~ SYSRDM of port [SYSRDP] read) 43 ji BIT: 0- A/C fail (0=failure; l=okay) 44 Ij 1- Power supply tamper !! 2 - Ground fault 46 i 3 - Controlunit tamper 47 i 4 - DC power to unit verified for NMI
48 , 5- Low battery 49 l~ 6- (Unused) , .

~L2~t3S~

7- (Unused) 2 SYSWRP System Write Byte ~564 ~For latches bits 1, 4, 5:
3 SYSWRM ~ 0 to bit resets latch; a 1 to bit puts 4 it in normal sensing state. Contents of SYSWPM RAM byte is data last 6 written to System Write Port 7 (SYSWRP).
8 BIT: 0- State of AC/DC control 9 1 - PS tamper switch reset 2 - Direct connect relay 0=on; 1=off 11 3 - Deadman relay p=on; 1=off 12 4 - Ground fault latch 13 5 - Control unit tamper latch 14 6 - Printer select for serial output ~=yes 7 - Matrix select for serial output 0=yes 16 The general operations of the control unit 200 which implement the transfer 17 of register 900 data corresponding to the various tasks among the CPU 202, the 18 RAMs 24.1-244, and the remaining control unit 200 I/O hardware are shown in 19 Fig. 17. rhe system operation of Fig. 16 shows the interaction of the MAIN SCAN
1000 and task selection TSKSEL 1100 program and the hardware interrupt service 21 subroutine INTRTN 1200 is shown. Briefly, Fig. 16 is a plot of the software 22 operation of the system according to the levels of subroutines, shown along the 23 vertical ~xis, invoked during a particular interval of time, shown along the 24 horizontal axis, while security system operations are in progress. A hardware interrupt signal, represented by a pulse 2052, occurs at a regular interval. It is to be 26 noted th~t the two levels of the chart comprise a single process operating through 27 time, wherein the break "A" of the first or top row continues on the left hand side 28 of the secorld row. Above the horizontal time plot of the hardware interrupt signal 29 pulse 2052, the particular sequence of time intervals (corresponding to the four caMe servicing tasks, the keyboard tasks, and the print handling tasks), are 31 indicated by the intervals 2044, 2054, 2064, 2074, 2084, and 2094. The intervals 32 correspond to programs for the caMe 0, cable 1, caMe 2, caMe 3, the keyboard, and 33 the printer. These time intervals vary in duration according to the operations of ~L2~)3 C

~ the task service subroutines, discussed below. Within each cable time interval, the 2 graph of Fig. 16 shows several horizontal "bar graph" indicators, each of which 3 correspond to a subroutine in operation. In the typical operation of the programs 4 and subroutines shown below, subroutines are called by various other programs to perform Q special, redundant operation; after completion, the subroutines return to 6 the prog ram that called them. This subroutine calling and return sequence 7 corresponds directly to the apparent stacking of one horizontal bar upon the other, 8 seguentially in time as one subroutine calls another; thereafter, the topmost or last g called subroutine is completed before the underlying subroutine bar indicates that that subroutine has been completed. A typical example of the sequential operation 11 of the subroutine shown in Fig. 16 includes the operation of the MAIN SCAN 1000 12 program at 2040. Otherwise, the operation of the first cable task and the MAIN
13 SCAN program 1000 of Fig. 18 first calls as a subroutine the task select program 14 TSKSEL 1100, shown as 2042, at the onset of the cable 0 task time interval 2044.
Upon completion of the TSKSEL subroutine, if no subsequent subroutines are 16 therein called, the program counter then returns to the MAIN SCAN program 2040~
17 The TSK5EL subroutine is shown in the Fig. 15 as a single horizontal bar. After a 18 brief timle period during which the MAIN SCAN program continues to operate, the 19 program ADRPLS 1300 of Fig. 21 is called by the MAIN SCAN program 1000, as shown at 2043. The program ADRPLS 1300 in turn calls the program PULSE 1780 of 21 Fig. 25, indicated here as 2045. In turn, the PULSE program 1780 calls the PLSGEN
22 subroutine 1790 of Fig. 25, here shown as 2046. Upon completion of the PLSGEN
23 program 17gO, the program returns to the calling program, the PULSE
24 program 1780, and is thus indicated by the horizontal termination of bar 2046.
Thereafter, the PULSE program 1780 is completed and the corresponding bar 2045 26 terminated. Similarly, when the ADRPLS program 1300 is completed, the bar 2043 2q is o termineted. The MAIII SCAN profrsm l000 then resumes operation for e I

~Z~35~ !

short duration. Although a pulse for an l/O operation has been requested, 2 according to the PLSGEN subroutine 1740 of Fig. 26 discussed belowJ the signal 3 will not issue Uhtil the occurrence of the interrupt pulse 2052 invokes the interrupt 4 routine, shown as 2041. In this m~nner, several tasks may subsequently be processed, and their l/O hardware control operations aggregated, until the 6 occurrence of the hardware interrupt pulse 2052. Moreover, an economy and 7 efficiency of control unit 200 operation is achieved with a minimal number of 8 separate time consuming hardware IIO operations reduced. The MAIN SCAN 1000 9 program continues throughout the duration of all of the system tasks in operation, except at the occurrence of the hardware interrupt pulse 2052. When the interrupt 11 pulse 2052 occurs, the interrupt program of Fig. 20 is called, as shown at 2041.
12 ('ontinuing with the interval 2044 corresponding to the task of cable 0, the 13 next subroutine invoked is the RDSTAT subroutine of Fig. 27, shown here as 2047, 14 which checks the status of the addressed PID. Subsequently, the DATPLS
subroutiine of Fig. 23 is called at 2048, which in turn calls the programs PULSE 2045, 16 and then the PLSGEN 2046. As the subroutines PLSGEN, PULSE, and RDSTAT are 17 complel:ed, the subroutine RDBir of Fig. 30 is subsequently ca1led. The subroutine ~8 calling ~equence continues until the scan program of Fig. 1û again calls on the task 19 select program of Fig. 19. A request of a hardware I/O operation ends the sequence, at which time the contents of the main registers 900 associated with the 21 program or subroutine currently operational within the CPIJ 202 (as represented as 22 horizon~al bars at the end of the period interval 2044) are stored in the RAM stack 23 corresponding to locations C011 through C0FF (in Fig. 15). Only the subroutine(s) 24 in progress at the end of the period 2044 will have their respective addresses and corresponding register data stored in the RAM stack between the locations 11 hex26 and FF hex; the memory space remaining will continue remain unused until needed 27 in subsequent RAM stack transfers which may have a greater number of stacked or 28 nested subroutines.
I . ', Il . . I
- 4Y ~

~2~3S9~

]n the time interval 2054 allocated to service the next cable, cable 1, ~
2 similar execution sequence follows, except that the occurrence of the pulse 2052 3 temporarily invokes the interrupt service routine 2041. Similarly, at the end of the 4 time interval 2054, the subroutine addresses and register information residing in the S CPU 202 processor registers 900 at the end of the period 2054 will be loaded into 6 the RAM memory space C111 through ClFF (of Fig. 15), corresponding to the 7 cable 1 RAM space. f 8 After the cable 1 service routine is completed, the subroutine MAIN SCAN
9 of Fig. 18 will determine whether the 0, or first, cable has completed its requested I/O operation, so that further system activity concerning cable 0 may proceed. If 11 the I/O operation has been completed, the MAINSCAN program returns to service 12 cable 0 through a sequence anslogus to 2044, discussed above. If the cable 0 still 13 awaits hardware action, the software then advances to the next task, which is to 14 check if the I/O operation of cable 1 is complete so that the cable 1 task can proceed with a subsequent task. If not complete, the MAIN SCAN program 1000 16 advances to service cable 2 at time interval 2064. At the completio~l of the time 17 interval 2064, when a hardware I/O operstion is requested, the contents of the 18 registers are stored and the software MAIN SCAN program 1000 then returns to 19 check cables 0, 1, and 2, at time intervals 2095, 2096, and 2097, respectively. In the example shown in Fig. 16, assume the time interval marked 2Q97 shows that cable 2 21 is still Rwaiting a hardware operation. The MAIN SCAN program 1000 will then 22 advancel to cable 3 interval 2074. At the end of the period 2074, the registers 900 are 23 stored ;n the memory locations C311 to C3FF, and the MAIN SCAN program 24 thereafter will proceed to check cables 0 through 3 during time intervals 2095 2S through 2098. In this instance, all four cables are awaiting completion of their l/O
26 operation. Thus, a fifth priority task (or the keyboard program KEYSIN 860 of 27 Pig. ), is proces2ed durmg the intervel 20g4. If the keyboerd processing ~1 I

~2~3~;9~ `
@ 11 , subroutine, or more generally, sny task subroutine, is completed without requesting 2 an I/O cperation, no registers are stored in the register space of the RAM, and the 3 program returns to check the cables û through 3 and the keyboQrd, at time 4 intervals 2095 through 2099. While the lower five priority levels are awaiting hQrdware I/O operation, the sixth priority, the print subroutine PRNHDL, is called 6 during time interval 2094. Howeve~, another interrupt pulse 2052 occurs during that 7 period which temporarily stops the execution of the print service program to allow 8 operation of the interrupt routine 2041. Thereafter, the print subroutines are 9 reactivated until an output of a character on the printer is requested during the interval 2094, and the check of completed I/O operations for higher priority groups 11 is repeated.
12 In the embodiment shown of the present invention, the many I/O operations, 13 such as quad cable S-lead signaling, require a second I/O operation (after a second 14 interrupt time interval) to be completed. Therefore, the occurrence of the next interrupt pulse 2052A may correspond to the completlon of the requested hardware16 operations, such as a single pulse operation initiated during the prior pulse 2052, as 17 discussed below in the flow charts below. Assuming that to be the case, the MAIN
18 SCAN program 1000 returns to service cable O during the interval marked 2044A.
19 The values in the registers used by the microprocessor at the onset of the interval 2044A are retrieved from the random access memory locations C011 21 through COFF and are loaded into the registers shown in Fig. 4. Upon the 22 completion of the interval 2044A, the data in the registers is once again moved to 23 the location CO11 through COFF, as discussed above, and the MAIN SCAN program 24 1000 proceeds to check whether cables 0, 1, or 2 have completed their requested hardware I/O operations. In this example, and at this point in the time sequence, 26 the cables 1 through 3 await the completion of the hardware I/O operation which 27 was initiated only after the second pulse 2052A. Thereafter, the remaining priority ll ~Z~3~9~
f task (the keyboard operation) is initiated during interval 2084A. The system then 2 continues to service all cables and tasks in the priority sequence discribed.
3 Upon power-up or restart of the integrated security system of the~present 4 invention, the software system is initialized by the following steps:
First, the microprocessor interrupt mode is set to mode 1 (particular to the 6 Z-80). This is to allow an immediate execution of the interrupt service routine, which begins at the address Read~nly Memory (ROM) 03 hex, when 8 hardware 8 generated interrupt occurs, as discussed in the hardware interrupt routine of 9 Pig. 20.
Second, all memory locations of RAM are set to 0. A test of the random 11 access ;memory may be inserted here to provide a self-diagnostic routine to 12 determine the condition of the active memory.
13 Third, the initialization bit 4 in the I/O status byte is set to a condition that 14 marks that the initialization is currently in process in the system, and that all annunciation messages from the communication cards are to be suppressed. The 16 initializ~tion bit is cleared when all four cables have been scanned and the states 17 of all points in the system have been stored in the random access memory tRAM).
18 Fourth, the CPU 202 stack pointer ~SP) register 912 is loaded with the 19 address of the bottom of the stack (XXFF hex) for the execution of the cable 0's scan task.
21 Fifth, the starting address for the cable scan~ing program, MAIN
22 SCAN 1000 of Fig. 18, is pushed into the cable 0 stack. This is the stack now 23 pointed to by the SP, or stack pointer, register 912. The stored value of the 24 location pointed to by the SP in the stack is the first address that will be executed for processing the inform~tion from the point interface (PID) on this cable.
26 Sixth, the start address of the status RAM (in the general system RAM
27 space) is calculated for the first point on this cable. This first point will have an ~Z~35~g address equal to the cable number times ~4. There are eight bytes of consecutive2 ¦¦ RAM locations STATBL, C5~0 for the storage of the status of each point in the 3 security system herein described. For example~ if there are 64 possible PID
4 devices on each cable, the points are numbered from 00 through 63 decimal. A
single table of 256 X 8 bytes of RAM's allocated for the PID status storage. The6 symbolic name for the start of this table is STATBL. The status RAM for the first 7 point Wl the cable is therefore STATBL+8 X 64 cable number.
8 Seventh, the calculated address (step 7) is placed into the IX index 9 register 914 of the CPU 202, which will be used throu~hout the software described below to point to the status RAM bytes for the point interface device that is 11 currently being interrogated or commanded 12 Eighth, the I~ register 914 contents are pushed onto the RAM stack at a 13 location currently defined by the value of the stack pointer (SP) register 9120 This 14 means that 2 values are stored on the stack for the current cable. The first and lower value on the stack is the address at which to begin execution of the scan 16 software. The second or higher value of the stack is the address in memory of the 17 status RAM for the first PID on the cable to be examined (or the currently enabled 18 PID). This value is at the "top" of the RAM stack. Note, as mentioned above, each 19 push decrements the stack pointer (SP) register 912 by a value of 2, so that the ao current content of the stack pointer register is the initial value loaded into the 21 stack pointer, or the bottom of the stack, minus 4.
22 l~inth, the initialization for a single cable stack in memory is now complete.
23 The current value for the stack pointer is stored in RAM so that the other five 24 stacks Idiscussed above of the present invention can be also initialized; hereafter, the top of this stack can be retrieved at any time by reloading the stack pointer 26 with the stored value. The current value of the stack pointer is stored in two 27 cons0cutive 8-bit memory locations in the part of the RAM (XX08 and XX09) 28 solely for use for the cable scan software.

-- ;1 ~5 --:~L2~3594 Tenth, the stack pointer register is loaded with the value of the bottom ~f 2 the RAM stack area (C011-COFF hex) set aside for the storage of the register data 3 corresponding to the execution of caMe 1 scan task. Loading the stack pointer 4 register with the bottom of the RA~I stack will cause the previous contents of the stack pointer register area to be obliterated, but is of no concern, since the 6 previous value was saved in the above step 9.
7 Eleventh, the steps 5 through 9 are repeated for the initialization of cable 1.
8 Substitute #l as the cable number wherever appropriate.
Twelfth, the stack pointer (SP) register 912 is loaded with the value of the bottom of the stack or the scan task of cable 2. This SP register value will be in 11 the part of the RAM set aside for this task, as discussed above.
12 Thirteenth, steps 5 through 9 are repeated with initialization of the stack 13 for the cable 2. Substitute cable 2 wherever appropriate.
14 Fourteeneth, the stack pointer is loaded with the bottom of the stack to be used for the cable 3 scan task.
16 Fifteenth, steps 5 through 9 are repeated for the initialization of cable 3.
17 Substitute #3 as the cable number where appropriate. This sequence completes the 18 initialization of the first four stacks which are analogous, except for the different 19 calculated IX status RAM addresses at the top of each stack, those being COOO
througll C300.
21 Sixteenth, the last two stacks are initialized by loading the stack pointer 22 with the bottom address of the stack to be used for the keyboard handler routine.
23 This is referred to as the communication task.
24 Seventeenth, the start address of the keyboard handler subroutine is pushed onto the initially empty stack, KEYSIN 1860 of Fig. 40, discussed below, to be 26 executled when the user first enters a keystroke on the front panel.

3~Z~35~4 1 1, Eighteenth, the RAM stack is pushed onto the currently empty main 2 1Iregisters AF, BC, DE, HL, and IX, 902. By storing the data of all registers on the 3 ¦communication stack each time the software leaves the current stack, the CPU
4 1l202 register 900 environment can be recreated when the processor returns to the 1lcommunication task.
6 I~ineteenth, with the environment of the CPU register stored on the 7 ~commw~ication, or COM, stack, the current top of-the-stack value (what the stack 8 pointer now contains) in the location COMSPH and COMSPL is saved. By reloading 9 the stack pointer from these locations, the environment of the CP registers can be restored by popping the previously pushed (i.e., saved) values of the register off the 11 stack pointed to by the new, reloaded stack pointer (SP) register.
12 Tw~ntieth, the stack pointer is loaded with the bottom address of the stack 13 to be used by the print annunciation handler PRHNl)L program 1800 of Fig. 39, 14 discussed below. This bottom address is uniquely assigned in memory to the print-lout tasl; (i.e., from the sixth part of the RAM as detailed in step 2).
~6 Twenty-first, the start address of the PRHNDL subroutine is pushed onto 17 this initially empty stack which will be executed from change-of-state in the 18 securitS/ system when it is to be printed.
19 Twenty-second, the values of the AF, BC, DE, HL, and IX registers 902 are pushed ~nto the stack. When the task selection process occurs, it is expected that 21 the microprocessor register environment of the last print annunciation action will 22 Ibe restored from the stack of the print task. Initially, these values are probably 23 10's, which are meAningless QS long as there is some value on the stack to be 24 "popped" off by the task selection (TSKSEL) process, described below.
l~venty-third, the initial top of the stack is saved for the print task in 26 locations called PRSPH and PRSPL. This is where the TSKSEL subroutine 1100 of 27 ¦Fig. 22 goes to get the value of the stack pointer (SP) register 912, which is ,, .

I

~ Z~3594 !

¦I necessary to restore the print task to the CPU 202 registers 900 environment. At 2 li this point, all six stacks and stored stack pointer values have been initialized. The 3 1l seventh t~sk, the LCD handler, does not need a separate task.
4 I T~enty-fourth, the task selection TSKSEL subroutine 1100 shown in Fig. 19 ! below, begins operation of the unit by assigning the CPU 202 to a task until that 6 l task requ~ests an I/O operation (which requires a time period to be waited out) or, 7 ¦ for the communication and print-out tasks, when the function terminates. The four 8 1 tasks which sCAn each of the four cables cyclically poll the points (PIDs) on each 9 I cable from point 00 to the particular maximum used. Whenever the scan is re-1l initialized, the cable 00 is the first scanned; cable 03 is not scanned unless the previous cables have been serviced. The above~2scribed initialization procedure 12 I correiponds to the initial step 1002 of the MAIN SCAN program 1000 shown in 13 Fig. 18.
14 li The MAIN SCAN program 1000 of Fig. 18 begins when the hardware is 1 initially powered or manually reset by reset switch 250 of Fig. 2. The point16 interface devices (PIDs) are scanned at function block 1002 for status indication;
17 the received information is loaded into a random access memory (RAM) 241-244 of 18 Fig. 2 to form a reference table used in the operation described according to the 19 initialization process described above. Next, the system checks to see if the cable RAMs and the PIDs are initialized (PIDs scanned and status stored) at step 1004. If 21 the cables are initialized, the printer is enabled for annunciation according to 22 function step 1006. Thereafter, or in the condition of step 1004 wherein the cables 23 ¦¦ have not been initialized, the PID address #00 is placed on the cable currently 24 ¦~ addressed by not incrementally pulsing the PID address counter. The address pulse ¦ operation is performed according to the step of block 1008, which causes the26 ~ system to transfer control to the task select executive subroutine 1100 shown in 27 I Fig. 19, referred to by the mnemonic TSKSEL. After the task selection routine has 1.

~1 ~2113~94 been executed, the program returns to the function block 1008 to check at 2 I block 1010 to see if the cable address was #0. If it was the first, or #0, cable, the 3 ¦I next address point is addressed at step 1012, which calls both the interrupt routine 4 shown in Fig. 20, and the address pulse routine, as shown in Fig. 21, discussed below. Upon cornpletion, the program resumes the operation of block 1012. If the6 cable number selected is not equal to the cable 0 as tested in step 1010, and after 7 the return from the block 1012, the real-time clock 270 (of Fig. 11) is read at 8 step 1014 which ~lso reads and conffrms the internal registers which include 9 another time indicating information source as generated within the interrupt routine of Fig. 20, discussed below. If the system is being operated on battery 11 power and if the battery power is almost depleted, sensed by a low battery system 12 input, a decision is made at step 1016 whether or not the system should shed or 13 discormect certain burglar alarm (BA) sensors, so as to lighten the system energy 14 draw. If the burglar alarm sensors are to be disconnected, the system first determines whether or not the current point is a burglar alarm sensor at 16 step 1018; if the system should shed the BA sensors, the system requests that the 17 point power be turned off at step 1020. Thereafter, or if the current point is not a 18 BA sensor according to the determination of step 1018, or if the BA sensors are not 19 to be disconnected according to the determination of block 1016, the system determines whether or not the PID is erratic at that particular point, at 1022. If 21 there app~rs to be trouble at the PID, the system evaluates whether or not the 22 PID data should be restored during this subroutine pass, block 1024. If the system 23 attempts to restore the PID data information, the system then checks whether the 24 PID data is vQlid now, step 1026. If the system is not to restore the information according to the decision at block 1024, or if the data is not now valid, block 1026, 26 the program moves to the subsequent test at block 1066 wherein data contained 27 within the RAM address XXOF is compared to the current PID address; an equality I

~LZ()3594 between the RAM data and the PID address indicates that the current point is the2 last point on the cable, as discussed further below. If it is determined that the PID
3 does not indicate trouble, block 1022, it is next determined if the point (PID) is in 4 , test mode, block 1028. If the PID is not in test mode, the system looks at the previous call to that point to determine if the PID was previously noisy, at 6 block 1030. If the PID was previously noisy, the PID is rechecked to determine the 7 ~l validity of information produced by that PID, block 1032. The validity check, 8 ,, block 1032, incorporates a call to the read stat RDSTAT subroutine 1400 and the g ll read address RDADDR subroutine 1460, shown in Figs. 27 and 31, respectively, and ¦¦ discussed below. Since the previous access to the PID currently addressed resulted 11 ~ in a noisy condition according to the decision of block 1030, the PID scan address is 12 1 then incremented one full count, block 1068, so as to reserve reading of that PID
13 ¦ subsequent to a point validity check, block 1032, showing the PID to be non-noisy.
14 1 If the PID was not noisy from the prior access, block 1030, or if the point was in test mode, block 1028, a determination at 1034 is made as to whether the PID
16 should be interrogated. If the point should not be interrogated, the program then 17 examines the RAM data (IX+~) to determine if relay action, according to the 18 C-lead signaling, is to be performed, block 1064. If the PID shall be interrogated, 19 decision block 1034, it is first determined whether or not there is an entry delay, l block 1036; if so, a group (pulses 2052 of Fig. 16) entry timer is engaged wherein a 21 1 predetermined number of hardware interrupts elapses before the alarm is 22 ¦¦ annunciated. If the group entry timer is greater than a value of 70 (or a user-23 1 selectable software delay), the PID number is aMunciated in the alarm at 24 1 block 1040; also, another subroutine for the system redundancy, entry, exit delay 1l check on new alarms 1500 is called REDNAL, shown in Fig. 32 below. After the 26 REDNAL subroutine is completed, the current program will then annunciate the 27 ~I restored point, block 1042, before clearing the entry delay indicator, block 1044;

"

~2~)3S~314 thereafter, the program determines if relay action is necessary, block 1064. If 2 ¦ there is no point entry and delay according to the determination at 1036, or if the 3 group timer value is greater than zero at step 1038, the sequence then determines whether or not there is a point exit delay at block 1046. If there is an exit delay engaged, the group timer value is compared to 70 at block 1048. If the value of the 6 time is greater than the selected delay (e.g., 70), the PID number is annunciated as 7 an alarm, block 1050; the annunciation, block 1050, engages the REDNAL
8 subroutine; thereafter, the exit delay indicator is cleared, block 1052; the 9 program lO00 thereafter checks for required relay action, block 1064. If the point does not have an exit delay, block 1046, or if the group timer is equal to zero,11 block 1048, the PID is checked for a noisy condition, block 1054; this operation 12 engages the SCAN8 subroutine 1600 shown in Fig. 33. If it is determined that the 13 PID is noisy, block 1056, the PID is indicated as such, block 1072; thereafter, the 14 PID scan count is incremented, block 1068. If the PID is not noisy, determination block 1056, the system then checks for a change of state at the PID, block 1058. If 16 there is no change of state, the system now determines if relay action is required, 17 block 1064. If there is a change of state at the particular PID, determination 18 block 105û, the status and address is checked, block 1060; if the address is not 19 valid, the PID is marked "noisy", block 1072, and the subsequent action follows as describeol above. If the status and address are valid, determination block 1060, and 21 if the PID data is valid now, block 1026, a change of state is annunciated if 22 required, block 1062. The execution of this block 1062 invokes the subroutines 23 shown in Figs. 32, 34, and 35, discussed below. If front panel keyswitch is in the 24 access/secure position, the KEY ACC (Fig. 34) and the KEY SEC (Fig. 42) are called. If the PID is a BA point and has a delay time, and is redundant, then the 26 REDNAL ~Fig. 32) subroutine is called. Upon return from ~he appropriate 27 subroutine, the present program then checks for a required change of state of the 112~359~
c I .~
~,-relay according to a signal on the C-lead of the PID as discussed above, block 1064.
2 The relay activation subroutines in turn call additional subroutines ONPLS 1760 and 3 OFFPLS 1770 of Fig. 35 and Fig. 37, corresponding to the ON or OFF pulse 4 sequence of the respective relay. After the appropriate relay action is performed, block 1064~, or after the PID data is shown to be unusable, blocks 1024 and 1026, it 6 is determined whether or not the point is the last point on cable, decision7 block 1066. This determination is derived from the information stored on a 8 location ~:XOF within each RAM stack in the discussion of Fig. 16. If it is not the 9 last point on the cable, the next point is addressed, block 1070; this sequence invokes thle task select routine shown in Fig. 19, discussed below. Thereafter, the 11 MAIN SCAN program 1000 reenters an earlier block 1016, wherein the battery 12 condition determines the appropriate number of BA sensors to be connected. If it 13 is determined that the last point on the cable has been addressed, block 1066, the 14 cable is i~cremented one full scan count, as in the case if the point does not show a valid ststus, block 1032, or the PID is marked as "noisy"J block 1072. After the16 scan courbt is incremented, the program loops to the address point 0 command, 17 block 1008, calling task select TSKSEL, 1100 subroutine of Fig. 19. Thereafter, the 18 entire operation described in regard to the MAIN SCAN program 1000 of Fig. 18 is 19 repeated. This operation is a high priority operation, only to be interrupted by the interrupt routine shown in Fig. 20 discussed below.
21 Th,e present invention performs a plurality of seemingly independent opera-22 tions (taslcs) using a single hardware microprocessor system. The management of 23 these routines are provided by a task selection executive subroutine (TSKSEL) 1100 24 shown in detail in Fig. 21. Briefly, the routines comprise 1) servicing each of the four cables, 2) queuing of the liquid crystal display (LCD) messages, 3) queuing of 26 the printled messages on the printer, and 4) monitoring miscellaneous keyboard 27 entry and system. Since there is a single CPU 202, only one task may be performed ~Z~:)3594 11 '.

at any given time. The tasks therefore share the hardware according to the 2 sequence and priority established within the TSKSEL program.
3 E~cept for the brief interrupt service subroutine 1200 shown in Fig. 20, the 4 TSKSEL program 1100 maintains control of the allocation of the use of the S CPU 20a and will process a particular task until that particular task requests a 6 time-consuming input/output (I/O) action. For instance, when the task is driving 7 one of the cables, the I/O operation comprises pulsing on the signal and carrier 8 lines. ~or the LCD messages task, the I/O operation comprises waiting for an 9 acknowledge key to be struck; for the print messages task, the I/O operation comprise~s waiting for the universal asynchronous receiver and transmitter (UART) 11 transmit buffer to empty and allowing the next character to be transmitted. And 12 for the keyboard input task, the I/O action would include either waiting for a 13 keyboarcl input or for the UART transmit buffer to empty during the printout.
14 Once one of the above-mentioned tasks requests an I/O action, the task returns the CPU control to the task selector program presently described, which loops 16 sequentially through each of the seven tasks, giving higher priority to task #1 and 17 continuing through to task #7 until it finds a task whose previous l/O action (one 18 that prelviously caused the return of the control to the proces~sor) has been 19 completed. When one of the I/O actions has been completed, the task selector subroutine 1200 restores the information within the computer registers for the 21 particulilr task completed which was then resident in the CPU 202 registers 900 at 22 the time that particular task had requested an I/O action, to resume processing 23 where that particular task left off. The transfer of register and RAM data, 24 correspo~nding to the data of each of the seven tasks, occurs when a transition from one task execution to another occurs, as is describ~d above in reference to Fig. 16.
26 The task select TSKSEL program 1200 is called by the MAIN SCAN program 27 1000 ~shDwn in Fig. 18 at block 1008 and block 1070). The task select routine first I . . 1, 1203S9~L ~

il reads the hardware real-time clock 270 of Fig. 11, block 1102, and compares the 2 1I time value with the program implemented clock register values as incremented by 3 1' the interrupt subroutine INTRTN of Fig 20. The CPU 202 includes several registers 4 1 900 as shown in Fig. 4, a pair of which being labelled the IY register are loaded 1l with the pointer for the address within the RAM memory of the address of cable 0, 6 l specifically C000, block 1104. Next, in step 1106, the register pair DE is loaded 7 with the RAM address offset number, 0100 hex, which corresponds to the 8 difference in relative address within the RAM for each stack corresponding to each 9 i of the separate tasks. Next, the current cable count variable within the process is set to Ij, block 1108. After the cable number is set to the first cable, 0, the 11 program checks to see if the I/O action is complete, the SP register pair is loaded 12 with the IY+8 and the IY+9 address information relating the stack pointer storage 13 1 low order byte to the high order byte, as shown in Fig. 15, discussed above. Next, 14 1 the IX register receives the top value on the particular stack as shown in Pig. 15 as ¦ a stack pointer to the RAM status bytes for the currently enabled point on the 16 1 particu]ar cable address, block 1114. The top stack value is the return address to 17 which the task select program returns, block 1116. The program counter receives 18 the top stack value and thereafter returns to that address, block 1118, continuing 19 the MAIN SCAN program 1000 shown in Fig. 18. If the interrupt subroutine 1200 is not complete, block 1110, the system determines whether the current cable is the 21 1 last cable in the system at block 1120 by comparing the cable counter variable to a 22 preset value stored in the system RAM at locations XXOF hex. If the present 23 1 cable iS not the last cable, the IY register is incremented by the offset value 0100 24 1 (as stored in the DE register pair) to provide the IY register with the stack address 1 in RAM of the next cable according to block 1122. In Mock 1124 the current cable 26 1 is incrennented by one, and the program returns to the test of block 1110 which 27 l~ determines the status of the interrupt routine.
.!

~Z~3S94 G , . I .
llIf, at block 1120, it is determined that the last cable in the system has been 2 liaddressed by the above process, the block 1126 next determines whether or not the 3 initializ~tion flag (bit 4 in PRSTAT) has been set. If it has been set, the program 4 l1100 returns to the time change step, block 1102. If the initialization flag has been Iset, the status of the communication card is evaluated, block 1128, subroutine 6 1lCCCMI,P (shown in Fig. 45) is called. At block 1130, the time indication on the 7 ,ILCD is changed if the update is required. The system then polls its own internal 8 ¦tamper sensors, block 1132. The block 1134, the LCD will annunciate a change of 9 istate ii` input status has changed state by invoking a call to the LCD handler ~routine Lt::DHDL 1830 of Fig. 38, discussed below. Looking for user acknowl-11 1edgment, the system next determines if the keyboard has been enabled, block 1136.
12 IF the keyboard has been enabled, the system determines whether or not a key has 13 been struck, block 1138. If a key has been struck, the system checks to see if it 14 1has bec~n a reset key, decision block 1140. If the reset key has been struck, a determlnation is made whether or not the printer is currently printing a low 16 !priority~ message, block 1142. If the result is affirmative, the print is aborted 17 immediately, block 1144. If a low priority message is not being printed, the system 18 next determines whether or not a walk-test (an on-site inspection of the system's 19 sensors, which may trigger the particular alarm) is in progress, block 1146. If a 1walk-te~st is in progress, the walk-test is terminated, blo¢k 1148. Under conditions 21 ~where the keyboard has not been enabled, a key has not been hit, or if a key has 22 jbeen hit, and that key is not the reset key, or after the low priority message is 23 1abortecl, or at the end of the terminated walk-test, blocks 1136 to 1148, the system 24 next checks the printer UART buffer for a value (any contents). If the buffer is ~¦not ennpty, decision block 1150, the end-of-low-priority flag is checked in 26 ~step 1152, so that a low prior;ty message can only be interrupted by a high priority 2~ Imessage at the end of a line of printed messages. If .he end-of-low-priority flag ., .

~2~3594 ~, has been set, the system checks to see if a high priority print message is waiting to 2 be printed, block 1154. If no high priority message is currently waiting to be 3 printed, the decision of block 1156 determines whether a new message is in the 4 high priority queue, according to the print handle subroutine PRNHDL 1800 oî
Fig. 39, discussed below. If there is no message in the high priority message queue, 6 ¦ the system now determines if there is a low priority mesSQge line to be begun, 7 1 block 1158. If no low priority message is to be printed, the system determines whether or not an hourly message is printed, block 1160. If there is no hourly message to be printed, the system next determines whether or not a key from the keyboard has been struck, block 1162. If, in fact, a key has been struck, the system 11 next delermines whether or not a low priority print request is currently running, 12 block 1164. If there is currently a low priority print request running, or if no key 13 has been struck, decision blocks 1164 and 1162, respectively, the system then 14 returns to the beginning of the task select program, block 1102. If the low priority lS print request is not running, decision block 1164, or if the end-of-low-priority flag 16 is not set, block 1152, the system then loads the stack point register (SP) 912 with 17 the COMSPH and the COMSPL signals at CD8 hex and CD90 hex; thereafter, the 18 KEYSIN subroutine 1860 shown in ~ig. 40 is called, discussed below. If there is a 19 low priority message to be begun, decision block 1158, the system then clears the end-of-low-priority flag, bloclc 1168; thereafter, the SP register is loaded with the 21 COMSPE~ and COMSPL address words, block 1170. When there is a high priority 22 message waiting to be printed, or a new message in the high priority message 23 queue, or an hourly message to be printed, decision blocks 1154, 1156, and 1160, 24 respectively, the TSKSEL program 1200 loads the SP registers with the PRSPH and the PRSPL values, and calls the print handling PRNHDL rubroutine 1800 26 ¦ block 1166. After the SP register 912 is loaded with the subroutine call addresses, Z7 block ll~0 end 1166 discussed ebove, t~ present prc_rem loeds the present RAM

- b4 -lZ~3594 stack into the appropriate CPU 202 registers 900, block 1172. Thereafter, the 2 stack pointer ~SP) register points to the return address, block 1174. The top of the 3 RAM stack is loaded into the program counter (PC) register, block 1176, whereupon 4 the TAKSEL program 1200 then returns to either the KEYSIN 1860 cr the PRNHDL
1800 subroutine according to the respective addresses loaded, as discussed above, 6 block 1178.
7 - The interrupt subroutine INTRTN, 1200 is driven by the PINT interrupt 8 signal 2'72 input of the CPU 202 originating frcm the hardware interrupt from the 9 clock circuit 270A shown in Fig. 2. When each particular interrupt pulse occurs at the PINT input, the INTRTN routine temporarily stores all registers in the current 11 stack location of the RAM memory area, Mock 1202. Next, the IY registers are 12 loaded with the pointer to the RAM cable 0 value, block 1204. The DE register 13 pair is ]oaded with the offset value 0100, corresponding to the relative offset of 14 each particular task stack location within the RAM memory, block 1206. In the block 1208, the L register (or 8 bits of HL register pair) is loaded with a value of 1, 16 where 1 corresponds to the quad cable driver A card 290 ~a value of 0 corresponds 17 to the quad cable driver B 291); each of the quad A and quad B cable driver cards 18 provides interface with two quad cables, as discussed above in reference to the 19 quad cable driver 290 and 291 of Fig. 13, the PID devices 100 and the general system 200 structure shown in Fig. 3. The particular number within each quad 21 cable driver is determined by a value loaded into the B register at step 1210.
22 Thereafter, the A register is loaded with a value of 0, indicating that no action is 23 to be taken, block 1212. Next, the system determines whether the task pointed to 24 by the value in the IY register has been completed, block 1214. Next, the action type register is loaded with the byte equal to the contents of the IY register plus 26 the A register, thus specifying the action type, block 1216. In the next block 1218, 27 the IY+B byte, serving as the cable action timer, number is decremented by 1. The Il I

~2-~3594 timer byte, block 1218, is testea for a value of 0, block 1220. If the timer byte is 2 not equal to 0, or if the sction pointed to by the IY register contents, block 1214, 3 has been completed, the next cable number point is set to the value in the IY
4 register, eausing the system to properly address the RAM data bit by adding the S offset value, stored in the DE register ~0100), to the IY register value, block 1230.
6 If the timer byte, block 1220 is equal to 0, indicating the completion of a timer 7 interval, it is determined whether the type of the action just completed was a 8 WAIT pulse, block 1222. If the action type is not a WAIT pulse, the byte corresponding to the IY register plus the DE register pair is loaded with all l's, corresponding to a hexdecimal number FF hex, block 1224, which sets the cable 11 action c~mplete flag for the ~KSEL program, discuæed above. If the pulse type, 12 block 1222, was not a WAIT pulse, the byte corresponding to the IY+A register is 13 - loaded with a value of 0, block 1226. The timer byte, comprising the IY~B
14 registers, is loaded with Q predetermined value, thus setting the timer to a predetermined interrupt interval, block 1228. Thereafter, and after block 1224 16 where the task select flag is set to a value of FF hex, the next RAM stack address 17 is provided by incrementing the DE register by the offset value of 0100 hex, and 18 reading the next cable pointer for the next cable (1, 2, or 3) into the IY register.
19 Similarly, the B register in CPU 202 is decremented by 1, block 1232. When the B
register becomes equal to 0, the test at block 1234 causes the program L register 21 to decrement the loop count at step 1236. If the B register is not equal to 0, the 22 program loops to test block 1214, where the IY register tests for a completed 23 action. After the loop register L is decremented, it is tested for a value of 0, 24 block 1238. If the loop register value is not equal to 0, the output action register contents with the quad cable data is transferred (shifted) to driver A by loading a 26 value of 2 into the B register, block 1240, and returning the subroutine sequence to 27 block 1210. If the L register value is now equal to 0, test block 1238, the output !

~2~359~

action ~egister contents are loaded into the quad cable driver B, block 1242. Next, 2 the interrupt counter is incremented by 1, blo¢k 1246. If the interrupt counter 3 equals ~ value of 250, block 1248, the LED data byte is sent to the LED output 4 ports, block 125û, causing the LED indicators to blink. Thereafter, the 1/2 second counter is incremented, block 1252. If the 1/2 second counter equals 2, which 6 corresponds to an interval of 1 second, block 1254, the second counter (SECCNT, 7 CFF2 hex) is incremented by 1, block 1256. Thereafter, the time change TIMCHG
8 nag is set, block 1258. This flag TIMCHG invokes the time change block 1102 of 9 Fig. 19 in the TSKSEL program, discussed above. Next, at step 1260, it is determined whether 60 seconds have passed, block 1260. If 60 seconds have passed, 11 the minute counter is incremented, block 1262; thereafter, the time change flag is 12 set, block 1264. Since different bits are set for each unit of time change, the time 13 change flag must be set for each incremental change. Next, it is determined 14 whether 60 minutes have elapsed, block 1266. If 60 minutes have elapsed, the hour counter is incremented, block 1268; thereafter, the time change flag is set, 16 block 1270. Thereafter~ the value for the hour counter is compared to the value 17 24, blo~k 1272. If it is equal to 24, the day counter is incremented, block 1274;
18 thereafter, the time change flag is set, block 1276, for operation as described 19 above. If the tests, blocks 1248, 1254, 1260, 1272, and 1266, show that the particular counters hflve not exceeded their respective limits, or after the TIMCHG
21 flag has been set, block 1276, the INTRTN program 1200 prepares to return to the 22 calling program by popping all registers, block 1278. In this step, all interrupt 23 conditions are reset. Finally, the interrupt enables are reset, thereby allowing the 24 hardware interrupt routine INTRTN to be reactivated on the occurrence of the next interrupt period, block 1280.
26 Fig. 21 describes the address pulse ADRPLS subroutine 1300 as called by 27 MAIN SCAN subroutine, block 1012 of Fig. 19, discussed above. The sub-I

3L 2 ~ 3 5 9 9L

routine 1300 provides a specifièd duration signal pulse to the PID signal ~S)lead.
2 1 The A register contains a value corresponding to the pulse type to be produced by 3 ¦ the system. An address pulse is a type 1 pulse, and a 1 is therefore loaded into the 4 address register, block 1302. Ne~t, the B register, corresponding to the in-cremental time interval over which the pulse is generated, receives a pre-6 determined value, as shown in Mock 1304. The period is provided by the hardware 7 clock 270A, shown in Fig. 3, above. Next, the P~JLSE subroutine 1780 is called to 8 generale the desired pulse, block 1306. The PULSE subroutine 1780 is explained 9 below in Fig. 25. Next, the system determines whether the current address counter io has a ~alue equal to the maximum allowable PID address for the current cable, 11 block 1308. If it is not e~ual to the maxium value, the IX status pointer register 12 receives an update so as to point to the status RAM for the current point, IX~X+8, 13 block 1310. The point counter is incremented by 1 to service the next PID, 14 block 1312. Thereafter, or if the address counter is equal to maxium value, block 1308 above, the data counter register is reset to 0, block 1314; the address 16 pulse automatically resets the PID.
~ 7 The address reset subroutine shown as ADRRES, 1320, first loads 1 into the 18 ~ register, corresponding to the address pulse type, block 1322. The pulse timer 19 receives a value of multiple units of the interrupt pulse period, in block 1324.
ThereaEter, the PULSE subroutine 1780 is called, block 1326. When the PULSE
21 subrouline is comple!te, the address counter RAM byte is reset to 0, block 1328.
22 Next, the data counter byte is set to 0, block 1330. Thereafter, the status RAM
23 pointer is reset to the 0th cable and the point 000, block 1332. The IX register 24 receives the offset (corresponding to the number of PlDs per cable times the cable ¦ number) so as to point to the O PID for the next cable, block 1334. The IX register 26 ¦ points to the data status RAM for the correct point, block 1336. Thereafter, the 27 subroul:ine ADRRES 1320 returns to the program from which it was called.

. lZi:~35~4 The data pulse subroutine DATPLS 1340 provides the program control of the 2 negative going pulses used by the system to increment the data counters of the PID
3 devices. First, the A register is loaded with a value corresponding to the data 4 pulse t~e, block 1342. Next, the pulse timer is set to a value corresponding to the interrupt time interval, block 1344. Thereafter, the PULSE subroutine 1780 is 6 called, block 1346. After the program returns from the PULSE subroutine 1780, 7 the system determines whether the PID data was enabled, in block 1348. If the PID
8 data enable was not enabled, the data bit count in the cable's RAM location is 9 incremented, block 1350. If the increment data, block 1346, was enabled, the data iO bit count byte is reset to 0. The count byte is also manually reset, if desired, 11 block 1352. Thereafter, the RAM location corresponding to the current cable 12 receives and stores the new enabled PID data, block 1354. Thereafter, the 13 subroutiKle DATPLS 1840 returns to the calling program.
14 The data reset subroutine DATRES 1360 is shown in Fig. 24. The data reset lS subroutilne performs a function analogous to the address reset, ADRRES, of Fig. 22;
16 however, the pulse type is the appropriate negative going signal as required to 17 reset the data counter of the PID device 100. The A register receives a value 18 corresponding to the pulse type of the negative going data pulse, block 1362. The 19 timer receives a value corresponding to multiple units of timer intervals, block 1364. Thereafter, the PULSE subroutine is called, block 1366. Af~er the program 21 returns from the PULSE subroutine, the enabled data bit counter receives a value 22 of 0, bl~ck 1368. Thereafter, the DATRES subroutine 1860 returns to the calling 23 program.
24 The read status or RDSTAT subroutine 1400 is shown in Fig. 27. At the onset the system loads the AF and BC registers onto the stack location relative to 26 each of the particular tasks the process is performing, according to the map cf 27 i~ig 3, blook t402. ~lext, the DATPLS ~rogrem shown ir l?ig. 23 rnd disous~ d ~359a~
~, above is called for execution, block 1404. This subroutine sends the data counter 2 increment pulse down the quad cable signal S-lead, thereby incrementing the 3 address counters on all of the PID devices connected thereto. The RDBIT program 4 is then called, block 1404. This progrsm reads the PID data bit from each of the quad cable drivers. The value of the PID data bit thereby received from the RDBIT
. 6 subroutirle 1730 is multiplied by 4 by shifting the value left 2 times, block 1408.
7 The value thereby produced is stored in the RAM location IY+4, as shown on the 8 map of E~ig. 15, block 1410. Thereafter, the DATPLS subroutine 1340 of Fig. 23 is again called to provide a data increment pulse on the quad cable, block 1412.
Next, the RDBIT program 1~30 of Fig. 30, discussed below, is called to read a 11 second (new) data bit (labelled as data bit nurnber 1, the first being data bit number 12 0) from the guad cable driver, block 1414. The bit value is tested for a value of 0, 13 block 14:L6. If it is equal to 0, the program skips to block 1424, discussed below, 14 indicating that there is no trouble alarm of the particular PID addressed therein.
1 The pro~ram will move to block 1418 if the bit is not equal to 0, that is, if it is 16 equal to 1. The bit value is multiplied by 4 by shifting the digital word left by two 17 positions, block 1418. Next, the resulting number is arithmetically ORed with the 18 ~ vPlue of the RAM location of IY+4, block 1420. The result is stored ir. that 19 location, IY+43 block 1422. The particular position of the data bit indicates whether a trouble alarm has occurred on the PID addressed. Next, the DATPLS
21 subroutine 1340 of Fig. 23 is called to send a data increment pulse on the quad 22 cable; thereafter, that particular data bit is read by calling the RDBIT subroutine 23 of Fig. 30, block 1426. The received data bit is arithmetically ORed with the value 24 at the I'lr+4 location, block 1428. The IY+4 location stores the indicated tamper alarm in the appropriate RAM location, block 1430. Finally, the program restores26 the AF and BC registers from the RAM stack and returns the program to the 21 ~ ope ting progr2m from whioh this subroutlne was called, block 1432.

I

-- (u --lZ~3~4 ;The read bit subroutine RDBIT 1440 is shown in Fig. 30. The first step is to 2 read the current cable value from the RAM locstion (CURCBL), block 1442. The3 value of the current caMe number is tested first for the third cable! block 1444. ~f 4 the number is equal to the third cable, the system is directed to align the outgoing data to ~he cable driver B and to assign the bit number variable a value of 1, 6 block 1446. Thereafter, the pro~ram reads the bit number value from the quad7 cable driver, block 1448, and returns to the calling program. If the current cable 8 number at block 1444 is not equal to 3, the current cable number value is tested for 9 a value o~ 2, block 1450. If the number value is equal to 2, the data is assigned to cable dri~er B, and the bit number is given a value of 0, block 1452; thereafter, the 11 progr~m advances to block 1448, as discussed above. If the current cable number is 12 neither 3 nor 2 according to tests of blocks 1444 and 1450, the current cable value 13 is tested for a value of 1, block 1454. If it is equal to a value of 1, the data is 14 assigned to cable driver A, and the bit number is given a value of 1. Thereafter, the program advances to block 1448. If the current cable is not equal to 1 at 16 block 1454 and has failed the previous tests of blocks 1444 and 1450, the remaining 17 cable number, 0, is assumed, thereby assigning the data to the cable driver A and a 18 value of 0 to the bit number. Thereafter, the bit number is read from the quad 19 cable driver, block 1448, and the program returns to that which called it.
The read address subroutine RDADDR 1460 is shown in Fig. 31. The system 21 first checks to see if the fourth data bit is enabled, block 1462. If the fourth bit is 22 not enabled, the DATPLS subroutine 1340 of Fig. 23 is called, block 1464, to23 increment the data counter within the enabled PID until the fourth bit is enabled.
24 When it is enabled, the RDBIT program 1440 of Fig. 30 is called to read the data bit from the quad cable driver, block 1466. Next, the data bit is stored in the RAM
26 location of IY~6 at step 1468. Thereafter, the DATPLS subroutine 1340 is called to 27 inor m ent ehe detr coun err of eilch Pl- o the next dete bit locetlon, Mock 1~7~.

"

12~3S94 Next, the RDBIT program 1340 ~s called to read the next PID data bit, Mock 1472.2 Next, the value for the Al bit is shifted left one location, multiplying the value by 3 2, block 1474; the result is then ORed with the first bit read (block 1466) above, 4 block 1476. The result is stored in the RAM at locations I~+6, block 1478.
Thereafter, the DATPLS subroutine is called in to increment data counters to the. 6 next data bit, block 1480, by calling the RDBIT program of Fig. 30, block 1482.
7 The resulting data bit is shifted left twice to move into the number 2 position, 8 block 1482, so as to be ORed with the current IY~6 register value, block 1486, and 9 is stored in the IY+6 register, block 1488. Pinally, the program returns to the program that called it.
11 The integrated security system redundancyy entry, exit delay check on new 12 alarms is shown in Fig. 32. The current point or PID group number is saved in a 13 memory location at the current group number subroutine REDNAL, block 1502.
14 The system checks whether the current point or PID is redundant, block 1504. If the PID addressed is redundant, the system next checks to see whether a previous16 redundant alarm has been suppressed, block 1506. If it has been, the system 17 further checks whether this point has been previously suppressed, block 1508, and 18 clears the annunciate flag, block 1510, clearly indicating that this current point is 19 not to be annunciated. The system then returns to the calling program. If the tests of blocks 1504-1508 are all negative, the system next checks to see whether 21 the point currently belng read is subject to an exit delay, block 1512. If the point 22 is subject to an exit delay, the system checks to see whether the group which 23 contains the current PID is in exit delay, block 1514. If there is an exit delay, the 24 current point is marked as in-exit-delay in the status table, IX register + bit number, block 1516. Next, the software increments counts the exits from the 26 current group, block 1518. The program thereafter returns to block 1510 so as to 27 ¦ clear the annunciate flag and not annunciate the alarm. If the tests of bloclcs 1512 ll ~Z~3S9~

and 1514, relating to delay times, both result in a negative response, the progr~m 2 next determines whether the point is subject to an entry delay, block 1520. If 3 there is an entry delay for that point, the program determines whether the current 4 value for the entry delay group time is equal to 0, and the PID is in entry delay ~IX
+ bit number), block 1522. If the delay time equals 0, the alarm is forced at the 6 current p~int, block 1524, and the program returns to the subroutine from which it 7 was called. If the delay time is not equal to 0, block 1522, the system determines 8 whether or not the entry time is greater than 2 seconds, block 1526. If the entry 9 time is ~eater than 2 seconds, nothing happens, i.e., no annunciation occurs. The audible alarm is sounded, block 1530, and the point is marked for entry delay status 11 at the status cable, block 1532. The program then returns to block 1510, so as to 12 clear the annunciate flag and not annunciate the status change. If the entry timer 13 is not gre~ater than 2 seconds as determined by block 1526, the system determines 14 whether or not the entry timer is equal to a value of 0, block 1538. If the entry timer is greater than 0, the annunciate flag is set, and the point alarm is 16 annunciated, block 1536; the program thereafter returns to that program which 17 called it. A user option sets delay time to Q maximum value when the entry timer 18 equals zeco. If the point is not subject to an exit delay, block 1520, the test at 19 block lS34 next determines whether the point is redundant. If the point is not redundant, the program sets the flag, block 1536, which, in turn, causes the point 21 to be annunciated, block 1536. If the point is redundant, as per block 1534, the 22 value for the redundant time window for the group is determined, block 1540. If 23 the time ~window value is not equal to 0, the system will annunciate any previously 24 suppressed alarm for the current group, block 1542. Thereafter, the system will open [res;et] the redundant timer for all groups redundant with this one, to a 26 second window maximum value, block 1544. Window number 1 defines how long to 27 look for a second alarm; window number 2 is how long subsequent alarms are ~Z03S94 reported immediately following the first two alarms. Thereafter, the program 2 moves to block 1536, discussed above. If the redundant time window is equal to 0, 3 the current point number is saved as the suppressed alarm for groups redundant 4 within the current group, block 1546. Next, the redundant timer is open for all groups (redundant with this one) to the first window maximum value at step 1548.
6 Thereafter, the suppressed alarm indicator is set for the addressed PID device only, 7 block 1550. The suppressed alarm timer is set to the maximum value, block 1552, 8 and the !;ystem thereafter returns to block 1510 so as to clear the nag and not annuncialte the current point change of state. The program finally returns to the calling program.
11 The integrated security system SCAN8 subroutine 1600, shown in Fig. 33, 12 routinely scans the PIDs and calls to recognize changes of state; also, once every 13 eight passes, SCAN8 1600 checks the integrity of each PID device. First, the 14 system rnarks whether a point status has not been read by storing 0 in the RAM
location lY+10 (hex), block 1602. Next, the system checks to see whether only one 16 PID device is currently answering back on the line, block 1604. This aLso has the 17 significance of detecting attempts to bridge (defeat) the PID device by providing 18 an excesslive return current indicator signal, SHHTST, as detected in the quad cable 19 driver of Fig. 13, discussed above. If the current on the signal S-lead of the PID is excessiv~! according to this test at 1604, the point is marked "noisy" at step 1606, 21 and the noisy flags are set. These flags comprise the C-bit and Z-bit, within the 22 CPU 202. The program then returns to the program from which this one was 23 called. llf only one PID device was speaking according to the test at block 1604, 24 the system determines whether or not the point is a latching sensor (according to custom information stored at 8000-9FFF). If the point includes a latching sensor, 26 the system determines whether or not the point is currently powered down, 27 block 16~L2. If neither the tests at blocks 1610 or 1612 are positive, the system I

~2~3594 C~

calls the. RDNOR subroutine 17-30 of Fig. 28, (not yet discussed) block 1614; this 2 subroutine reads the first bit from the PID device called. Next, the program 3 determines whether or not the point is normal, by the value of the first bit read 4 from the PID, block 1616. If it is not normal (equal to ~), the system determines 1 whether or not the point was normal during the last pass of PID device . 6 interrogation, block 1618. If the first bit was not normal, corresponding to a bit 7 having a value of 1 during the last pass and also a bit value of 1 during this pass, 8 the RDSTAT program 1400 shown in Fig. 27, discussed above, is called, block 1620.
9 Thereafl~er, the program marks whether the status has been read by loading a hex io value of FF in the location IY+10 hex, block 1622. Thereafter, the system again 11 determines whether or not the sensor is a latching sensor, block 1624. If the sensor 12 is a latching sensor, the system determines whether or not the new status signifies 13 a trouble signal at the sensor, block 1626. If the response is positive, the system 14 determines whether or not the sensor was recently powered up, block 1628. If it was not, or if the tests of blocks 1624 and 1626 were both negative, the next test 16 determines whether or not the point is in an exit delay period, block 1630. lf the 17 point is in an exit delay, the next determination is whether the point has been 18 restorecl, block 1632. If the point has been restored, the exit delay indicator for 19 that point is cleared, Mock 1634. If that point has not been restored at block 1632, ao the sysl;em determines whether the exit delay is completed, block 1636. lf the 21 delay has been completed, the alarm is forced at that point by changing the old 22 alarm status bit, block 1638. Thereafter, or after block 1634, or if the test, 23 block 1~i30, is negative, or if the exit delay has not been completed, block 1636, the 24 program next determines whether there has been any status change since the last scan of the PID devices7 block 1640. If there has been a change, the bit in IX+0 is 26 cleared to indicate the new state. Thereafter, the program returns to the calling 27 subroutine. If the test of block 1640 reveals no change of state since the last scan, I
. 1.
..

3S9~
c the system determines whether or not a keyswitch has been activated, block 1644.2 ¦ If a keyswitch has not been activated, or if the tests at blocks 1612, 1618, and 1628 3 I are all affirmative, the system next determines whsther the current pass of 4 SCaMing the PID devices is the one during which the validity is to be checked; that is, whether it is the eighth sequential scan, block 1646. If it is that scan, the 6 system resets the recent power-up bit at step 164~. If the current scan is not the 7 scan during which to check the validity of the PID devices, the program directly 8 marks ll:he PID as normal and resets the C and Z noisy flag bits9 block 1694;
9 thereafter, the program returns to the calling program. After the power-up bit is reset, bllock 1648, the system determines whether or not the status has been read 11 for the present point, block 1650. If it has not been read, the system calls the 12 RDSTAT subroutine 1400 of Fig. 27, block 1652. Thereafter, or if the status has 13 been read for this current point doing this current task, or if a keyswitch is being 14 read at block 1644, the program next checks to see whether the point has a valid status, block 1654. If the program does not have a valid status, the subroutine 16 returns to block 1606 and marks the PID as noisy and sets the appropriate .flags to 17 return it to the calling subroutine, block 1608. If the point status is vslid, 18 block 1654, the RDADDR subroutine of Fig. 31 is called to read the address of ~hat 19 PID, blc)ck 1~56. The system determines the validity of the address by comparing the repl~rted address bits from the PID to the last three bits provided by counting 21 the adclress pulses since the last address reset, block 1658. Thereafter, the relay 22 state i9 read by calling the RDREL subroutine 1740 of Fig. 29 (not yet discussed), 23 block 1660. The relay state is now compared to its proper relay state, block 1662.
24 If the s~tate does not correspond to the desired relay state, the system requests a relay change of state, block 1664. Thereafter, or if the relay currently i9 in the 26 proper 3tate at block 1662, the system determines the status of the power signal by 27 calling the RDPWR subroutine, identical to the RDREL subroutine of Fig. 29, ,1 ' ~ i ~;2~35~9~

except for Q different PID data value block 1668. Theresfter, the system 2 determines whether or not the power state is in the correct mode, block 1670. If 3 not, the system requests a power change of state, block 1672. Afterwards, or if 4 the power state is in the proper status, the system determines whether or not a power change of state has been requested, block 1674. If no change of state has 6 been requested, the system determines whether the point is normal according to 7 the first bit read, block 1676. If the point tPID) is not-normal the system 8 determines whether or rlot the sensor is a latching sensor, block 1678. If the sensor 9 is a latc:hing sensor according to data stored in user customized PROM, the system ~o determines whether or not the point is alarmed (disturbed), block 1680. If the point 11 is alarmed, the system determines whether a request for power-off has been made, 12 block 1682. The system determines whether or not a power-on request has been 13 created, block 1684. If a power-on request does exist, the system turns on the 14 power-on lead of the PID, by calling the PWRON subroutine, which is the s~me as the ONPLS subroutine, Fig. 35, except that PID data counter is set to different 16 corresponding value block 1686. Thereafter, or if no power-on request has been 17 provided, the system determines whether or not a power-off request has been 1~ generated, block 1688. If a power-off request does exist, the system tur~3 off the 19 power signal of the PID sensor, block 1690, by calling the PWROFF subroutine, which is the same as the OFFPLS subroutine of Fig. 37, except that the PID data 21 counter is set to a different corresponding value. Thereafter, or if the power-off 22 request does not exist, block 168%, or if the tests of blocks 1676, 1678, or 1680 are 23 negative, the system addresses and resets the PID, in block 1692. Thereafter, the 24 PID is marked as normal, and the C and Z bits are reset. Finally, the program returns to the cslling subroutine.
26 The subroutine controlling the keyswitch open group action, KEYACC, 1700, 27 is shown in Fig. 34. The system determines whether or not the group has Q

~ ' .
I
~ ~ _ ~Z~35~g~

~ schedule, (whether an option ti~ne schedule is stored in user customized PROM), 2 block 1702. Next, the system determines whether or not the schedule is being 3 accessed (off), block 1704. If it is not, the system determines whether or not the 4 access originates from the keyboard, block 1706. If the access originates from the S I keyboar~d, the system determines whether or not the current program relates to a 6 '~evel 3" user, such as an equipment service man. If the access is not from the 7 keybo~rd, or if the level is not 3 according to blocks 1706 and 1708, respectively, 8 the annunciate group cannot be secured, block 1710. Thereafter, the subroutine 9 returns to the calling program. If the schedule is accessed, or if the group does not have a schedule, blocks 1704 and 1702, respectively, or if the user is level 3, 11 block 1708, the system sets accessed bit for all points in the current group, and 12 clears the bypassed bit indicator, block 1712. The program therein calls the ACPID
13 subroutine 1950 of Fig. 44 (not yet discussed). Thereafter, the key accessed bit is 14 set for the group if the access was from a keyswitch, block 1714. The group is lS marked as accessed in the group status byte, block 1716. Thereafter, the entry and 16 exit delay timers are zeroed, block 1718. The alarm bell is turned off, block 1720;
17 the secure command only PID (a relay PID with relay output only) COP is turned 18 off for that group, block 1722. The COP is activated whenever the group is 19 "closed." The group accessed is annunciated, block 1724. Finally, the subroutine returns to the program from which this subroutine was called.
21 ~'he integrated security system software checks the normal bit of the data 22 provided by the PID devices by the read normal bit subroutine, RDNOR, 1730, as 23 shown in Fig. 28. The subroutine RDBIT 1440 shown in Fig. 30 is called, 24 block 1'132. After the data bit is read from the quad cable driver corresponding to the cable and PID addressed, the normal bit condition is stored in the RAM location 26 corresponding to that cable at the location of IY~3, block 1734. Thereafter, the 27 program returns to the calling program.
I

I

~ Zt)359~
~:.

The status of the relay residing at the particular PID addressed is monitored 2 by the ~DREL subroutine 1740, as shown in Fig. 29. The program first cslls the 3 DATPLS subroutine 1340 shown in Fig. 23 and discussed above. The data pulse is 4 sent on the current cable to increment the PID data counter to the next data bit.
Next, the subroutine calls the RDBIT subroutine of Fig. 30 in order to read the data 6 bit from the quad cable driver, block 1744. The data bit read is the newly 7 addressed data bit. The relay status (bit) is stored at the RAM location IY~5, 8 block 1746. A change in relay status is reflected as a change in point status, block 1748. Thereafter, the subroutine returns to the calling program.
The relay wait RELWAT subroutine 1750, shown in Fig. 36, provides a 11 specified delay time between signal pulse events which minimizes erroneous 12 information derived from cross talk between the S-lead and the C-lead signaling of 13 the quad cables. The subroutine loads a zero value into the A register, indicating 14 that no pulse is to be transmitted, Mock 1752. A predetermined silent period is created by loading a corresponding number into the B register, which controls the 16 Ipulse timer, block 1754. Finally, the subroutine PULSE 1780 of Fig. 25 is called to 17 transmit the pulse if a non-null pulse is specified over the respective quad cable, 18 Mock 1756.
19 The subroutine which provides the specified signal pulse over each of the respecti~ve quad cables is provided by the PULSE subroutine, 1780, of Fig. 25. The 21 system determines whether cable 1 or cable 3 (instead of cable 2 or 4) is to receive 22 the desiPed pulse, block 1782. If the cable is either 1 or 3, the pulse type loaded 23 into the ~ register is shifted left by one position, block 1784. The PLSGEN
24 subroutine 1790 of Fig. 26 is called to transmit the pulse, block 1786. Finally, the subroutirle returns to the calling program.
26 The transmitting pulse subroutine PLSGEN 1790 is shown in Fig. 26. The 27 pulse length is determined at block 1792. The length of pulse time is established at ~LZ(~3S'~4 the block 1794 according to pulse type (e.g. count, reset, etc.) specified. There-2 after, the action complete flag is cleared, block 1796, and the current stack 3 pointer is saved in the relative cable RAM location, block 1798. Finally, the 4 subroutine returns to the calling program.
The subroutine turning the remotely controlled relays or power switches on 6 at each of the PID devices is the ONPLS program 1760 shown in Fig. 35. The A
7 register is loaded with a value of 10 hex, which establishes an on pulse type, 8 block 1762. Next, the pulse duration is defined by loading à number into the B
9 register to define 8 long time interval, block 1764. The PULSE subroutine 1780 of Fig. 25 is called, block 1766, to request that a pulse be generated by the quad cable 11 driver. Thereafter, the subroutine generates a quiet period where no pulsing on the 12 quad cable is initiated, to allow the carrier lead to settle and the relay to activate, 13 as provided by the RELWAT subroutine of Fig. 36, block 1768. Finally, the 1~ subroutine returns to the program from which it was called.
The program to deactivate the remotely controlled relays is provided by the 16 OFFPLS subroutine, 1770, of Fig. 37. The pulse type is defined as "off" by loading 17 a value of 40 hex into the A register, block 1772. The duration of the long pulse 18 time is âefined by loading a corresponding number into the B register, block 1774.
19 The PULSE subroutine of Fig. 25 is called to request that a pulse be generated by the quad cable driver, block 1776. Thereafter, a waiting period is generated 21 following the relay action to allow the signal changes to subdue, block 1778. The 22 program then returns to the calling subroutine.
23 The keyboard input dispatch routine DISPAT 1540 is shown at Fig. 41. The 24 bits corresponding to the point status light emitting diode (LED) are cleared, bloc 1542. Nerit, the subroutiDe gets the input key number enù muitiplies it by 2 . I

lZ~3S99~

to get the table offset value, (or number of bytes in the address), block 1544. The 2 ¦I HL register points to the start of the keyboard routine address table, block 1546.
3 1I Next, the system marks that the keyboard function is running, block 1548. The 4 ~ computer offset is added to the HL register value to produce the start address of j the roul:ine corresponding to the key hit on the keyboard, block 1550. The fi subroutine executes this routine for the particular key activated by the user, 7 block 15~52. If the key stroke is improper, or if other errors in use of the keyboard 8 arise, the subroutine determines that an input error has occurred, and the message 9 "KEYBOARD ERROR" appears on the LCD.
Printing of the messages is considered a task similarJ but lower, in status to 11 1 the PID devices on quad cables. The print handling routine, PRHNDL, 1800, is 12 ! shown in Fig. 39. This subroutine first checks whether or not message printing is 13 now enabled, block 1802. If it is enabled, the system marks a high priority print 14 message as in progress, block 1804. Next, the system checks the control inputs for changes of state and annunciates those changes, block 1806. The break-in alarm 16 messages are annunciated, block 1808. Cable troubles are also annunciated, 17 block 1810. Next, the system determines whether the point change of state 18 condition requires annunciation, block 1812; if not, the system will annunciate the 19 hourly message, block 1814. Thereafter, or if the printing is not enabled according to the decision block 1802, the subroutine moves to block 1820, discussed below. If 21 the point change of state of block 1812 requires annunciation, it is annunciated, 22 block 1816. Thereafter, the point is removed from the print queue, block 1818.
23 ¦ The program then moves to block 1820, where the stack pointer is moved to 24 I indicate the bottom of the stack, block 1820. Thereafter, the subroutine pushes ¦ the beginning address of this subroutine, PRHNDL, block 1822. All registers are 26 j pushed from the stacks, block 1824; also, the new stack pointer for the print 27 routine stack pointer, is stored in RAM memory locations PRSPH and P~SPL, ~Z03S94 ~!

block 1826. Finally, the high priority print flag is cleared, block 1828, and the 2 subroutine returns to the calling program.
3 ¦ The subroutine to control the display of messages on the liquid crystal 4 ¦¦ display (LCD) is the LCDHDL subroutine, 1830, described in Fig. 38. The first step is to determine whether the passcode has activated the keyboard, block 1832. If 6 the keyboard has not been activated, the system inquires whether the passcode is 7 currently being entered, block 1834. If the passcode has activated the keyboard, 8 block 1832, or if the passcode is not currently being entered, block 1834, the 9 system determines whether or not there is currently any message in the LCD
queue, bLock 1836. If there is, the subroutine will save the top point number in the 11 LCD queue, relating to the highest priority message, block 1838. NextJ the current 12 number of the point will be saved, at the LCDHAS location in RAM, block 1840.
13 At block 1842, the system determines whether or not the number of the point being 14 displayed is equal to 0. If it is not equal to 0, the number at the top of the print queue is compared to the current point displayed on the LCD, block 1844; if equal, 16 the system next determines whether the passcode has activated the keyboard, 17 block 1846. If the passcode has activated the keyboard, the subroutine determines 18 whether or not a character has been struck on the keyboard, block 1848. If a 19 character has been struck, the system determines whether it was the acknowledge key, blo~k 18S0. If it WQS the acknowledge key, the keyboard is Peset to await a21 new key function input, block 1852. The acknowledge function for the point being 22 displayed is next performed, block 1854. Thereafter, or if the comparisons of 23 blocks 11944 and 1842 are both negative, the top PID number in the LCD message 24 queue vnlues will be flnnunciated, Mock 1856. Finally, this subroutine returns to the calling program. If the passcode is currently being entered, block 1834, or if 26 the decisions at blocks 1836, 1846, 1858, and 1850 were all negative, the subroutine 27 will return to the program from which it was called without performing any action 28 in the LCD display.

~2~3S94 The subroutine for receiYing the information provided b~ the keystroke input 2 is described in the subroutine KEYSIN, 1860, described in Fig. 40. The first step is 3 to get the character from the keyboard and reset the keyboard thereafter, 4 block 181;2. Next, the subroutine determines whether it is in the mode for looking for a passcode at the keyboard input, block 1864. If it is looking for a passcode, as 6 1 determirsd by the history of keystroke inputs, the subroutine will move directly to 7 ¦ block 1868, discussed below. If the system is not looking for a passcode, the 8 ¦ system determines whether or not a message exists in the LCD queue, block 1866.
9 If a message does exist, the system determines whether or not a number has been io struck on the keyboard, block 1868. If a number has been struck, the system 11 ¦ advances, block 1872, to mark the keyboard function as running. If there is no 12 message in the LCD queue, block 1866, or if a number has been hit on the 13 keyboard, block 1868, the system calls the DISPAT program 1540 of Fig. 41.
14 Thereafter, the program returns to block 1872, described above. A keyboard error may result if the improper keystroke is entered; if an error results, the KEYERR16 subroutine (not shown) may be entered, block 1880, to annunciate the keyboard 17 error Thereafter, the subroutine marks the keyboard function as compieted, 18 block 18S'2. The stack pointer is moved to the bottom of the data stack, 19 block 1814, and the start address of the KEYSIN subroutine is pushed, block 1876.
Finally, Qll registers are saved, block 1878, and the subroutine returns to the 21 program that called it. f 22 The subroutine indicating whether or not a group can be secured, and 23 securing them if possible, the KEYSEC subroutine, 1900, is shown in Fig. 42. The 24 first function of this subroutine, block 1902, determines whether or not the particular PIDs addressed pass the security check test of the CHKSEC sub-26 routine 1320 of Fig. 43, discussed below. If the particular bit correspondir.g to the 27 security status of that point indicates that the point cannot be secured, the ~Z(:~3S9~ I

I suùroutine 1900 indicates that that group cannot be secured, block 1904, ~nd 2 I returns l:o the calling program. However, if the point indicates that it can be 3 l~ secured from the CHKSEC subroutine shown in Fig. 43, the key access bit for that 4 ~ group is cleared if the entry is from a keyswltch, block 1906. Next, all points in that group are marked as secure, Mock 1908. The group status byte marks the 6 group as closed, block 1910. Thereafter, the subroutine turns on the secure group 7 relay, ~connected to any display desired, typically a red LED), block 1912. Next, 8 the group timer is set to a maximum value, block 1914. The group is marked as 9 ¦ being in the exit delay mode, block 1916. Finally, the group is annunciated as 1 secure, block 1918, and the subroutine returns to the calling program.
11 1 The subroutine checking the security status of the individual points, or PID
12 devices, is the CHKSEC subroutine, 1920, shown in Fig. 43. The first step is to 13 zero the bypaæed PID count number for the particular group in question, 14 block 1922. The pointer moves to the list of points in the group, block 1924.
Thereaft~r, the point number for that group is retrieved, block 1926. A determina-16 tion is made whether or not the pointer is pointing to the end of the list by 17 I determinilng whether or not the current point was the same as the last point, 18 block 1928. If the current point is the end of the list (last point), the subroutine 19 also detea mines whether there were any points bypassed in this group, block 1930.
If there were no points bypassed, block 1930, the bit indicating secure position is 21 marked as such, block 1932, and the subroutine returns to the calling program. If, 22 in fact, there were points bypassed, block 1930, it is next determined whether or 23 1l not there was more than one point bypassed, block 1936. If there was not more 24 than one point bypassed, and an option which allows a group to be secured with no more than one point bypassed is invoked, block 1938, the subroutine then moves to 26 block 1932 and marks the group as secure. If, in fact, there is more than one point 27 bypassed, or the option is not allowed according to the decisions of block 1936 and Il i Il ~

I~ -84- !

12~;~5~4 1938, the bit is marked to indicate that the group cannot be secured, block 1940, 2 and the subroutine returns to the calling program. If it is determined that the end 3 11 of the list of points has not yet occurred, block 1928, the pointer status for that 4 ¦ particular point is retrieved, block 1942, at IX~, IX~l RAM locations for current PID. Next, the system determines whether or not the point was bypassed, 6 block 1944. If the point was not bypassed, the system determines whether or not 7 the PID has trouble, block 1946. If the PID does not have trouble (the PID is 8 normal) a~ cording to a determination at block 1948, the current point number is 9 saved, block 1950. Thereafter, the list pointer is incremented, block 1952, and the program then returns to block 1926 and repeats the program alternatives as 11 described. If the point has been bypassed according to the determination of 12 block 1944, the program increments a count of bypassed points, block 1954.
13 Thereafter, the program enters the block 1950 as described above to provide the 14 appropriate program functions. Also, if the PID has trouble according to the determination at block 1946 or the PID is not normal, block 1948, the program 16 enters block 1940, thus indicating that the group cannot be secured, thereafter 17 returning to the calling program.
18 The subroutine to access each particular PID device is the ACPID subroutine 19 1950, shown in Fig. 44. The first step points to the list of points for the particular group serviced, block 1952. Next, the point number is retrievecl from the list, 21 block 1954. If the point is at the end of the list, determined by its being identical 22 to the last point retrieved, block 1956, the subroutine returns to the program which 23 called it. If the list is not at the end, block 1958 determines whether a point is a 24 keyswitch point. If it is, the point number is saved at block 1960, and the pointer is incremented to point to the group point list, block 1962. Thereafter, the program 26 returns to block 1954 to perform the functions described. If the point is not a 27 keyswitch, block 1958, the pointer moves to the status of the point, block 1964.
. ' '.

- 12(:~3S94 & 11 Next, a determination is made whether or not the janitor is accessing the group,2 block 1966. If it is the janitor (identified by a previously entered passcode), 3 block 1968 determines whether this is a fixed point of protection. If it is not a 4 1 fixed point of protection, or the janitor is not accessing, block 1966, the point is 5 ¦ marked as accessed, block 1970. Thereafter, or if the point is a fixed point of 6 protection, block 1968, the subroutine determines whether the point is bypassed, 7 block 1972. If the point is bypassed, the counter corresponding to the number OI
8 points bypassed is decremented by a value of 1, block 1974. Thereafter, or if the point is not bypassed according to the determination of block 1972, the system determines whether or not an entry delay period is allowed for the particular point, 11 block 1976. If there is no entry delay period to be allowed, then the system 12 determines whether an exit delay period is allowed, block 1978. If there is no exit 13 delay period aUowed, the system determines whether the point is in alarm 14 condition, block 1980. Then the bypaæ indicator for the particular point is cleared, block 1982. Thereafter, the entry and exit delay indicators for that particular 16 point are cleared, block 1984. Thereafter, the system returns to block 1960 to 17 perform the operations thusly described. If the point is in alarm condition, 18 block 1980, the system determines whether it is a "fixed" point, block 1986. If the 19 point is a fixed point, or if the tests at blocks 1976 and 1978 are both affirmative, the program then returns to block 1982 for the function described. If the point is 21 not fixed according to the test at block 1986, the alarm restoration counter is 22 incremented by a value of 1, block 1988. Thereafter, the breakin alarm counter is 23 decremented by a value of 1, block 1990. Also, if the value of the counter is 0, the 24 relay (indicating the BA-type alarm) is turned off. Thereafter, the group counter is decremented, block 1992. Similarly, if the count equals 0, the group alarm relay 26 is also turned off. Finally, any linked relays are turned off, block 1994. There-27 after, the program returns to block 1982 for functions thusly described. Any point ~Z~3S94 can have a relay linked to it by program control. For instance, if a relay is linked 2 ¦I to a PID, it is activated whenever the point is secure and alarmed. The +12 and l 5 3 ~I volt power supply signals to the communication card a89 are controlled by the 4 ¦¦ relay 448O The relay is powered by transistor 447. The transistor 447 receives its ¦¦ base drive through resistors 445 and 446 from the disable signal 438.
6 The interaction between the security system control unit 200 and communi-7 cation card within it, 289, is shown in the software programs of Fig. 45. The polling of up to four transmission cards 289 by the system is done by calling the 9 l subroutine CCCMLP 2100, during the hardware interrupt. Each time the sub-¦ routine CCCMLP is called, it services one communication card, sequentially 11 covering nll four. The subroutine CCCMLP 2100 is the main routine responsible for 12 1 identifying the card being serviced, and for positioning all relevant data pointers to 13 ¦ the proper RAM and ROM data fields for that transmission card. ~fter the card is 14 ~ identified, block 2102, the number of the communication card (03) is computed and checked by using the current state of the interface counter. The I/O port to be 16 used is also identified among those shown in Table II above, at block 2104. The 17 subroutine COMCRD 2110 is called, block 2106; thereafter, the program CCCMLP
18 ¦ returns to the calling program.
~ The subroutine COMCRD, 2110, cQlled in the subroutine CCCMLP 2100, performs actions according to the information received from the transmission card 21 ¦ to which it has been directed by the program CCCMLP. The program COMCRD
22 11 expects to receive at least one, typically two, bytes of data from the communi-23 ~ ¦I cation card, the first of which being a status byte which gives information about 24 1I the communication card's status, block 2112. The data returned from the card ¦ indicates whether or not a card exists in that position, at block all4. If a eard 26 ¦ does exist, the subroutine requests the card status at block 2116. These requests 27 ¦ include requests such as sonalart (audible) alarm indication and other signals. If i 3S9~ !
_, _ _ __ _ _ _ l these signlals include a read flag, the block 2120 determines if the read flag is set.
2 If it is sel:, the memory is read, and the information is sent to the communicatiOn 3 card. The data is requested from either the ROM or RAM memory areas and is 4 accessed Iby the second byte from the communication card data port. if the read fïag is not set, the subroutine stores the data from the communication card in the 6 RAM memory, according to the block 2124, wherein the subroutine WRTRAM is 7 called. Ii there is no data from the card specified, or after the program RDMEM
S and WRTRAM are completed, the COMCRD program returns to the CCCMLP
program.
Th~e RDMEM program called in step 2122 is shown at 2130. The subroutine 11 determines if a ROM read flag has been set at block 2132. If it has not been set, 12 the subroutine determines if an address offset is set to a value of zero, at 13 block 2134. If it has not been set to zero, the RAM address is added to the offset, 14 ~nd the passcard code is computed, if necessary, at block 2136. Thereafter, the address 9s sent to the communication card at block 2138. If the ROM flag is not 16 set at block 2132, the ROM address is retrieved for the card currently enabled, and 17 added to the offset from the particular card, block 2140. Next, the program moves 18 to block 5!138, discussed above.
19 If the card offset is equal to zero according to step 2134, the card identific~tion address is retrieved at step 2142. Thereafter, the program proceeds 21 to step 2138, as discussed above.
22 The WRTRAM subroutine 2145, called in step 2124, first determines if the 23 write flag has been set, block 2146. If it has not been set, the data is loaded into 24 the RAM area specified by the communication byte number plus the RAM offset number. Thereafter, the program returns to the subroutine COMCRD. If the write 26 flag has Ibeen set, block 2146, the data received is written into the command byte 27 of the ca,mmunication card RAM, block 2147. Thereafter, the program WRTRAM
I 1.
i 03S~
t tl returns lto the COMCRD subroutine, which in turn returns to the CCCMLP
2 1I subroutine 2100, discussed above.
3 ¦ The invention is not to be limited by what has been particularly shown and 4 describecl exoept es indlceted in the appended olllim-.

Claims (27)

  1. C L A I M S
    What is claimed is:
    security system comprising:
    a control unit;
    plurality of cables, each connected to the control unit and each having a respective address;
    a plurality of point interface devices each having a respective address, and at least one point interface device being connected to each of said cables;
    each of the point interface devices being operative to provide a signal in response to and representative of a sensed condition;
    said control unit including:
    means for simultaneously addressing point interface device on different cables;
    means for simultaneously receiving signals from the addressed point interface devices on different cables; and processing means for sequentially processing the signals received from the point interface devices.
  2. 2. The security system of claim 1 wherein said means for addressing is operative during a first time interval which occurs on a cyclical basis and wherein said processing means are operative during said first time interval.
  3. 3. The security system of claim 2 wherein each point interface device further comprises means to provide a signal representative of at least part of the respective address of that point interface device.
  4. 4. The security system of claim 1 wherein said control unit further comprises means to produce a command signal on said cables, said point interface device further comprising a control device selectively operative in response to said command signal.
  5. 5. The security system of claim 4 wherein the sensed conditions from which the point interface device provides signals in response to and representative of, includes a sensor alarm condition, a tamper alarm condition and a control device status.
  6. 6. The security system of claim 1 wherein a plurality of said point interface devices are connected in parallel on at least one of said cables, each said point interface device being sequentially addressed to report sensed conditions and selectively operate control devices associated therewith.
  7. 7. The security system of claim 1 further comprising means for selectively connecting both ends of each said cable to said control unit; and means of sensing a break in cable continuity to cause said means for selectively connecting to provide an alternate path for addressing the point interface devices on that cable and for receiving signals from the point interface devices on that cable.
  8. 8. The security system of claim 1 wherein said control unit further comprises:
    message priority means operative to store an assigned priority associated with each point interface device; and message display means providing an indication corresponding to a point interface device signal in accordance with said assigned priority.
  9. 9. The security system of claim 1 wherein said control unit further comprises:
    keyboard means for entry of system codes;
    storage means for storing the entered system codes;
    the system codes including passcodes, system commands, and system ac-knowledge signals; and the control unit being continuously operative while the system codes are being entered.
  10. 10. The security system of claim 8 further comprising a printer connected to said control unit to provide printed copy of selected message information.
  11. 11. The security system of claim 8 further comprising a matrix display comprising a plurality of indicators connected to said control unit, wherein said indicators denote the status of each location monitored by the point interface devices.
  12. 12. The security system of claim 1 further comprising communication means connected to said control unit, and operative to transmit data to and receive data from one or more devices external to the security system.
  13. 13. The security system of claim 12 wherein said one or more external devices include an audible alarm.
  14. 14. The security system of claim 12 wherein said one or more external devices include a central office.
  15. 15. The security system of claim 14 wherein said transmitted data comprises status and alarm signals and said received data comprises central office responses thereto.
  16. 16. The security system of claim 1 wherein said point interface device includes redundant sense means providing a verified indication of the sensed condition.
  17. 17. The security system of claim 1 wherein the control unit includes redundant communication means for addressing the point interface devices and for receiving signals therefrom.
  18. 18. A security system comprising:
    a control unit;
    input means receiving system codes, the operation of said control unit being alterable according to said system codes;
    a cable or cables connected to the control unit;
    a plurality of point interface devices each having a respective address, and each being connected to said cable;
    each of the point interface devices being operative to provide a signal in response to and representative of a sensed condition;
    said control unit including:
    means for addressing each point interface device;
    means for receiving signals from the addressed point interface devices and simultaneously receiving signals from said input means;
    processing means for sequentially processing the signals received from the point interface devices and from said input means; and means for incrementing the addresses of the point interface devices.
  19. 19. The security system of claim 18 wherein said input means includes keyboard means for entry of operating data and communication means for entry of operating data from a device external to the system.
  20. 20. A security system comprising:
    a plurality of remote point interface devices;
    a status indicator;
    operator control means;
    a controller connected to said point interface devices, status indicator and operator control means the controller including:
    means to communicate with said remote point interface devices, status indicator and operator control means; and task selection means for performing a plurality of tasks in a predetermined order and in accordance with the priority of the tasks.
  21. 21. The security system of claim 20 wherein the controller includes:
    means for providing a recurring interrupt interval;
    means for storing a data indication of I/O operations to be performed;
    means operative during each interrupt interval to perform the I/O
    operations; and the task selection means being operative in the time between the interrupt intervals.
  22. 22. The security system of claim 21 wherein the task selection means is operative to sequentially perform the tasks according to the priority of the task.
  23. 23. The security system of claim 22 wherein the task selection means is operative to perform each task until an I/O operation associated with that task is requested, as denoted by data in the I/O storage means; and the task selection means being operative to perform the next task in priority after request of the I/O operation for the previous task.
  24. 24. The security system of claim 1 including:
    a primary power source;
    a standby power supply;
    means to automatically connect said controller to said stand by power supply when said primary power source fails; and means to sense a low power condition of said standby power supply and operative to cause said control unit to selectively reduce power consumption to conserve the remaining standby power supply energy.
  25. 25. The security system of claim 1, wherein said means for simultaneously receiving signals further comprises:
    means for detecting improper signals from point interface device; and means to alert the operator of improper signals.
  26. 26. The security system of claim 1, further comprising:
    means to alert the security system operator of a system alarm condition;
    means to acknowledge said alarm condition operable by the security system operator;
    means to detect a failure to acknowledge said alarm condition alert; and means to provide a secondary alert indication upon failure of the security system operator to respond to said alarm condition alert.
  27. 27. The security system of claim 1 wherein said control unit further comprises:
    means to detect a noisy point interface device providing a corresponding noise indicator signal; and means to selectively disable from said security system said noisy point interface device according to said noise indicator signal.
CA000442819A 1982-12-17 1983-12-08 Integrated security system having a multiprogrammed controller Expired CA1203594A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US451,744 1982-12-17
US06/451,744 US4538138A (en) 1982-12-17 1982-12-17 Integrated security system having a multiprogrammed controller

Publications (1)

Publication Number Publication Date
CA1203594A true CA1203594A (en) 1986-04-22

Family

ID=23793523

Family Applications (1)

Application Number Title Priority Date Filing Date
CA000442819A Expired CA1203594A (en) 1982-12-17 1983-12-08 Integrated security system having a multiprogrammed controller

Country Status (6)

Country Link
US (1) US4538138A (en)
EP (1) EP0111982B1 (en)
AT (1) ATE30977T1 (en)
AU (1) AU558297B2 (en)
CA (1) CA1203594A (en)
DE (1) DE3374621D1 (en)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6010336U (en) * 1983-06-29 1985-01-24 キヤノン電子株式会社 Interface circuit device
EP0156474A1 (en) * 1984-02-24 1985-10-02 Tann-Synchronome Limited Vigilant fire alarm system
GB8431883D0 (en) * 1984-12-18 1985-01-30 Gent Ltd Transmission system
JPS61170899A (en) * 1985-01-25 1986-08-01 ニツタン株式会社 Centralized monitoring system for disaster prevention equipment
US4788711A (en) * 1985-11-25 1988-11-29 Cellular Communications Corporation Apparatus and method for a cellular freeway emergency telephone service
GB8616276D0 (en) * 1986-07-03 1986-08-13 Racal Chubb Ltd Data acquisition system
GB2195041A (en) * 1986-09-12 1988-03-23 Gp Elliott Electronic Systems Multi-sensor monitoring system
DE3640401A1 (en) * 1986-11-28 1988-06-09 Siemens Ag Air space surveillance centre
US4741017A (en) * 1986-12-08 1988-04-26 Communications Test Design, Inc. Apparatus and method for identifying and analyzing telephone channel units, commands and responses
US4885573A (en) * 1987-08-12 1989-12-05 Gas Research Institute Diagnostic system for combustion controller
FR2636157A1 (en) * 1988-09-08 1990-03-09 Hugon Emile FIRE ALARM DETECTOR ADDRESS AND PROGRAMMING CENTRAL
US4933667A (en) * 1988-09-23 1990-06-12 Fike Corporation Graphic annunciator
US4931769A (en) * 1988-11-14 1990-06-05 Moose Products, Inc. Method and apparatus for controlling the operation of a security system
US5140306A (en) * 1989-01-04 1992-08-18 Hemphill Sr Francis A Alarm indicating system
US5153827A (en) * 1989-01-30 1992-10-06 Omni-Flow, Inc. An infusion management and pumping system having an alarm handling system
CH675789A5 (en) * 1989-05-11 1990-10-31 Tean Ag
US5225806A (en) * 1991-12-20 1993-07-06 Honeywell Inc. Security system having mode control of sensor points
US5268668A (en) * 1992-01-07 1993-12-07 Detection Systems, Inc. Security/fire alarm system with group-addressing remote sensors
DE4401540B4 (en) * 1994-01-20 2006-06-08 Tenovis Gmbh & Co. Kg Method for processing fault, error and information messages occurring in a communication switching system or data processing system
US5629687A (en) * 1994-08-29 1997-05-13 Emergency Technologies, Inc. Universal interface for remotely-monitored security systems
US5608375A (en) * 1995-03-20 1997-03-04 Wheelock Inc. Synchronized visual/audible alarm system
US6906616B1 (en) * 1995-03-20 2005-06-14 Wheelock, Inc. Apparatus and method for synchronizing visual/audible alarm units in an alarm system
US5881361A (en) * 1996-04-03 1999-03-09 Motorola, Inc. Communication unit power up sequencing
US5790045A (en) * 1996-10-09 1998-08-04 Motorola, Inc. Method and apparatus for generating alerts in a messaging device
DE19716850C2 (en) * 1997-04-22 2003-11-06 Deutsche Telekom Ag Procedures for better differentiation when processing alarm messages
US5955946A (en) * 1998-02-06 1999-09-21 Beheshti; Ali Alarm/facility management unit
US5900801A (en) * 1998-02-27 1999-05-04 Food Safety Solutions Corp. Integral master system for monitoring food service requirements for compliance at a plurality of food service establishments
US5939974A (en) * 1998-02-27 1999-08-17 Food Safety Solutions Corp. System for monitoring food service requirements for compliance at a food service establishment
US6366215B1 (en) * 1998-12-04 2002-04-02 Pittway Corporation Communications systems and methods
DE19933086B4 (en) * 1999-07-15 2008-11-20 Robert Bosch Gmbh Method and device for mutual monitoring of control units
US6985870B2 (en) * 2002-01-11 2006-01-10 Baxter International Inc. Medication delivery system
US8775196B2 (en) 2002-01-29 2014-07-08 Baxter International Inc. System and method for notification and escalation of medical data
US10173008B2 (en) 2002-01-29 2019-01-08 Baxter International Inc. System and method for communicating with a dialysis machine through a network
US8234128B2 (en) 2002-04-30 2012-07-31 Baxter International, Inc. System and method for verifying medical device operational parameters
US20030222548A1 (en) * 2002-05-31 2003-12-04 Richardson William R. Storage device for health care facility
US7167088B2 (en) * 2002-05-10 2007-01-23 Simplexgrinnell Lp Wireless walk through test system
US6737967B2 (en) 2002-05-10 2004-05-18 Simplexgrinnell, Lp Wireless walk through test system
US7242307B1 (en) 2003-10-20 2007-07-10 Cognetive Systems Incorporated System for monitoring hygiene appliances
CN100511308C (en) * 2004-06-28 2009-07-08 Abb研究有限公司 System and method for inhibiting redundant warning
US7423533B1 (en) 2004-10-19 2008-09-09 Cognetive Systems, Incorporated System for monitoring and recording cross-contamination events
US8161453B2 (en) * 2004-11-16 2012-04-17 Rabih Chrabieh Method and apparatus for implementing task management of computer operations
US7292449B2 (en) * 2004-12-13 2007-11-06 Lexmark International, Inc. Virtual ground return for reduction of radiated emissions
GB2423222A (en) * 2004-12-21 2006-08-16 Yossi Bedarshi Implementing a broadband network over an existing network/cabling infrastructure of a fire alarm system
JP4527636B2 (en) * 2005-08-30 2010-08-18 富士通株式会社 RFID interrogator and data communication method
US7855651B2 (en) * 2006-04-07 2010-12-21 Cognetive Systems Incorporated System for monitoring and recording hand hygiene performance
US10089443B2 (en) 2012-05-15 2018-10-02 Baxter International Inc. Home medical device systems and methods for therapy prescription and tracking, servicing and inventory
US8057679B2 (en) 2008-07-09 2011-11-15 Baxter International Inc. Dialysis system having trending and alert generation
US8554579B2 (en) 2008-10-13 2013-10-08 Fht, Inc. Management, reporting and benchmarking of medication preparation
DE102010035476B3 (en) * 2010-08-26 2012-02-09 Novar Gmbh Alarm system and method of operation
SG11201501427PA (en) 2012-08-31 2015-03-30 Baxter Corp Englewood Medication requisition fulfillment system and method
WO2014065871A2 (en) 2012-10-26 2014-05-01 Baxter Corporation Englewood Improved image acquisition for medical dose preparation system
EP2911641B1 (en) 2012-10-26 2018-10-17 Baxter Corporation Englewood Improved work station for medical dose preparation system
EP3826028B1 (en) 2014-06-30 2024-04-24 Baxter Corporation Englewood Managed medical information exchange
US11575673B2 (en) 2014-09-30 2023-02-07 Baxter Corporation Englewood Central user management in a distributed healthcare information management system
US11107574B2 (en) 2014-09-30 2021-08-31 Baxter Corporation Englewood Management of medication preparation with formulary management
EP3227851A4 (en) 2014-12-05 2018-07-11 Baxter Corporation Englewood Dose preparation data analytics
US10346737B1 (en) * 2015-01-12 2019-07-09 Gridspace Inc. Distributed multisensor system to record spatially diverse events
JP2018507487A (en) 2015-03-03 2018-03-15 バクスター・コーポレーション・イングルウッドBaxter Corporation Englewood Pharmacy workflow management with alert integration
CN116206744A (en) 2015-06-25 2023-06-02 甘布罗伦迪亚股份公司 Medical device systems and methods with distributed databases
CN106097637B (en) * 2016-06-15 2018-01-30 青岛厚科信息工程有限公司 Above and below ground space facility safeguard management information system
EP3559951B1 (en) 2016-12-21 2022-01-12 Gambro Lundia AB Medical device system including information technology infrastructure having secure cluster domain supporting external domain
CN113094158A (en) * 2021-03-15 2021-07-09 国政通科技有限公司 Service drive calling method, service drive calling device, electronic equipment and storage medium

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3516063A (en) * 1966-05-09 1970-06-02 Leeds & Northrup Co Supervisory and control system having buffer storage input to data logger
US3765016A (en) * 1971-05-24 1973-10-09 Oak Electro Netics Corp Security system including means for polling the premises to be protected
DE2310127A1 (en) * 1973-03-01 1974-09-05 Licentia Gmbh INTEGRATED HAZARD REPORTING SYSTEM
US3911412A (en) * 1974-01-17 1975-10-07 John F Bennetts High and low temperature warning device
JPS52143855A (en) * 1976-05-26 1977-11-30 Ricoh Co Ltd Data collection system
US4218677A (en) * 1979-03-02 1980-08-19 Potter Electric Signal Co. Detecting loop digital interface circuitry
DE3001100A1 (en) * 1980-01-14 1981-07-16 Bieler & Lang GmbH, 7590 Achern Multiple sensor gas or fire detector system - employing microprocessor which tests condition of each sensor in turn

Also Published As

Publication number Publication date
US4538138A (en) 1985-08-27
EP0111982B1 (en) 1987-11-19
AU2229883A (en) 1984-06-21
ATE30977T1 (en) 1987-12-15
DE3374621D1 (en) 1987-12-23
AU558297B2 (en) 1987-01-22
EP0111982A1 (en) 1984-06-27

Similar Documents

Publication Publication Date Title
CA1203594A (en) Integrated security system having a multiprogrammed controller
US5283905A (en) Power supply for computer system manager
US4286118A (en) Data distribution system for private automatic branch exchange
US5084875A (en) System for automatically monitoring copiers from a remote location
US4991123A (en) Alarm system
US4342986A (en) Central station alarm reporting system
EP0049276B1 (en) Terminal unit for automatic meter reading system
EP0520769A2 (en) Computer system manager
CA2104797C (en) Monitoring apparatus and system
EP0084441A2 (en) Method and apparatus for the protection of proprietary computer software
EP0456395A2 (en) System and method for monitoring electronic data processing equipment
CA1224847A (en) Remote data controller for a communications system
SE449038B (en) SOKNINGSMOTTAGARE
US4503291A (en) Repertory dialer with efficient data storage
CA1233523A (en) Optical encoder
US5838249A (en) Control/supervisory signal transmission/reception system
US4011542A (en) Redundant data transmission system
GB2203577A (en) Environmental abnormality alarm apparatus
CA1303182C (en) Parameter value communication system
US4249166A (en) Line supervision
US4406995A (en) Base station for monitoring call boxes
US4254499A (en) Signal transmission system in a digital controller system
US4527235A (en) Subscriber terminal polling unit
WO1987006750A1 (en) Fire alarm facility
GB2357389A (en) Telemetry systems

Legal Events

Date Code Title Description
MKEX Expiry