GB2107083A - Sequence controller with microprocessor - Google Patents

Sequence controller with microprocessor Download PDF

Info

Publication number
GB2107083A
GB2107083A GB08212661A GB8212661A GB2107083A GB 2107083 A GB2107083 A GB 2107083A GB 08212661 A GB08212661 A GB 08212661A GB 8212661 A GB8212661 A GB 8212661A GB 2107083 A GB2107083 A GB 2107083A
Authority
GB
United Kingdom
Prior art keywords
mov
unit
storage means
service module
switch
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.)
Granted
Application number
GB08212661A
Other versions
GB2107083B (en
Inventor
Cemetry Road Stephen E Heeger
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.)
AMF Inc
Original Assignee
AMF Inc
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 AMF Inc filed Critical AMF Inc
Publication of GB2107083A publication Critical patent/GB2107083A/en
Application granted granted Critical
Publication of GB2107083B publication Critical patent/GB2107083B/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F9/00Details other than those peculiar to special kinds or types of apparatus
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F13/00Coin-freed apparatus for controlling dispensing or fluids, semiliquids or granular material from reservoirs
    • G07F13/06Coin-freed apparatus for controlling dispensing or fluids, semiliquids or granular material from reservoirs with selective dispensing of different fluids or materials or mixtures thereof
    • G07F13/065Coin-freed apparatus for controlling dispensing or fluids, semiliquids or granular material from reservoirs with selective dispensing of different fluids or materials or mixtures thereof for drink preparation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/10Programme control other than numerical control, i.e. in sequence controllers or logic controllers using selector switches
    • G05B19/102Programme control other than numerical control, i.e. in sequence controllers or logic controllers using selector switches for input of programme steps, i.e. setting up sequence
    • G05B19/104Programme control other than numerical control, i.e. in sequence controllers or logic controllers using selector switches for input of programme steps, i.e. setting up sequence characterised by physical layout of switches; switches co-operating with display; use of switches in a special way
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/10Programme control other than numerical control, i.e. in sequence controllers or logic controllers using selector switches
    • G05B19/106Programme control other than numerical control, i.e. in sequence controllers or logic controllers using selector switches for selecting a programme, variable or parameter
    • G05B19/108Programme control other than numerical control, i.e. in sequence controllers or logic controllers using selector switches for selecting a programme, variable or parameter characterised by physical layout of switches; switches co-operating with display; use of switches in a special way
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/087Inventory or stock management, e.g. order filling, procurement or balancing against orders
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23016Accelerate input, exponent as function of pressure, time, turning speed, keys for 10-to-1
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23029Up down, increment decrement keys, jog, sequentially show functions or values
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23051Remote control, enter program remote, detachable programmer
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23082Enter parameters with two hands, dead man knob, switch, pedal
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23215Check data validity in ram, keep correct validity, compare rom ram
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23329Modification, correction entered values
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23371Fixed and variable memory for parameters or user program
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23406Programmer device, portable, handheld detachable programmer
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23466Block, latch entry keys once program launched
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24032Power on reset, powering up
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24138Battery backup
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25289Energy saving, brown out, standby, sleep, powerdown modus for microcomputer
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25458Opto isolation, optical separation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25462Galvanic separation, galvanic isolation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/26Pc applications
    • G05B2219/2645Vending, distribute drinks

Landscapes

  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Automation & Control Theory (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Quality & Reliability (AREA)
  • Finance (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Accounting & Taxation (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Development Economics (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Control Of Vending Devices And Auxiliary Devices For Vending Devices (AREA)
  • Programmable Controllers (AREA)
  • Beverage Vending Machines With Cups, And Gas Or Electricity Vending Machines (AREA)

Abstract

A microprocessor based sequence controller, for a soup and beverage vending machine, has a separate service module 46, which is not normally connected with the sequence controller during normal vending operations. The start and stop times of each function of a sequence of functions are independently modifiable, and an interlock is provided to assure against unintentional modification of the start and stop times. <IMAGE>

Description

1 GB 2 107 083 A 1
SPECIFICATION Sequence controller with microcompressor
Field of the invention
The present invention relates to sequence controllers, and more particularly, to a sequence controller especially adapted for use with an automatic soup and beverage vending machine.
The prior art
Soup and beverage vending machines have heretofore been generally controlled by electromechanical devices, incorporating a plurality of cams for actuating a plurality of on-off switches. The cams are mounted on a common shaft for rotation together, and they actuate the switches in a fixed, predetermined sequence, to allow the device to produce a number of output signals in predetermined sequences. The times of occurrences of the signals can be modified by adjusting the angular position of the cams on the shaft, but this modification is very inexact. Typically, after each adjustment, the machine must be cycled and timed, to determine the effect which each adjustment has on operation of the system.
While such systems have been sat;sfactory for the limited purposes for which they are intended, 15 they are relatively inflexible, and difficult to adjust. It is accordingly desirable to produce a system which is more flexible, and simpler and more economical to manufacture.
Another disadvantage of previous machines is their vulnerability to modification of the timing adjustments by unauthorized persons. Since the timing cams are exposed to tampering by anyone who has access to the interior of a vending machine or the like which incorporates the controller, there is.20 little control over the actual operation of the vending machine by the machine's owner.
Yet another disadvantage results from the fact that the cam shaft must turn through the same angle during each cycle of operation, which means that all possible sequences take the full time required for the longest possible sequence. This materially decreases the vending speed of a vending machine for sequences which can be shorter in duration.
Brief description of the invention
It is a principal object of the present invention to provide a sequence control lerflavi ng substantially more flexibility than past controllers, with the facility for changing the timing and sequence of operations in an exact predetermined manner.
A further object of the present invention is to provide such a controller which is digital in nature, the 30 operation of which is controlled precisely in accordance with digital information.
A further object of the present invention is to provide a controller having a basic program of sequences which is permanently stored, and providing modifying means for storing adjustable modifications to the basic program.
A further object of the present invention is to provide means for making modifications to a basic 35 program in a manner which maintains the integrity of the modifying information.
A further object of the present invention is to provide a sequence controller incorporating an independent service module, separate from the controller, which can readily be employed to make modifications in the programming as needed.
Another object of the present invention is to provide such a service module in a relatively 40 compact and inexpensive form, with a minimum of controls for accomplishing the purposes of the service module.
A furtherobject of the present invention is to provide such a service module with means for rapidly incrementing or decrementing the content of a storage location of the system controller with a minimum of manual controls.
A further object of the present invention is to provide such a service module with means for incrementing or decrementing from the program control storage in a way which enables the operator to make large modifications in the storage contents, while requiring a minimum of equipment and a minimum of time required to make adjustment.
Another object of the present invention is to provide a sequence controller with means for 50 independently controlling the start and stop time of each function controlled by the controller, with minimal apparatus required, to minimize size and cost.
Another object of the present invention is to provide an interlock for preventing unintentional modifications to the sequence times stored within the controller.
A further object of the present invention is to provide a sequence controller in which the 55 selectable sequences have individual time durations, so that short sequences are performed more rapidly than in the past.
Another object of the present invention is to provide such a sequence controller incorporating a microprocessor.
In one embodiment of the present invention, there is provided a microprocessor having stored 60 program means for programming the microprocessor as a sequence controller to produce a plurality of output signals for controlling external apparatus in response to the condition of a plurality of sequence 2 GB 2 107 083 A 2 selection switches, and two separate memory sections, one of the memory sections being nonalterable and storing a basic program for control of the sequence and times of production of the output signals, and the other memory section being alterable and storing modifications of the basic program, the alterable memory section being adapted to be altered only through use of a normally separate control module.
In a more specific embodiment, the system controller of the present invention has a service module provided with a display, means for selecting a channel address, and means for modifying individual parts of the content of the storage location identified by said channel address, said service module being adapted to modify the content of said storage location when the service module is in connected relationship to the controller, but not otherwise.
Summary of the drawings
Reference will now be made to the accompanying drawings in which:
Fig. 1 is a front elevation view of a soup and beverage vending machine incorporating an illustrative embodiment of the present invention; Fig. 2 is an elevational view of a portion of the interior of the apparatus of Fig. 1 Fig. 3 is an elevational view of an embodiment of the service module associated with the present invention; Fig. 4 is a functional block diagram of a sequence controller incorporating an illustrative embodiment of the preent invention; Figs. 5a-5d are flow charts of sequences of operations performed by the apparatus of Fig. 4; 20 and Figs. 6a-6c are maps of selected sections of storage of the apparatus of Fig. 4.
Description of the preferred embodiment
Referring now to Fig. 1, a soup and beverage dispensing machine 10 is illustrated which is adapted to dispense soup and beverages such as coffee, tea, hot chocolate, etc. The machine has a coin 25 slot 12 and a plurality of pushbuttons 14 which are adapted to select the desired soup or beverage, and to add normal or extra cream and sugar, when the beverage selected is tea or coffee. A compartment 16 is provided at which a cup 18 is presented, and the cup is filled with the selected soup or beverage by means of a dispensing mechanism having a spout 20 supported above the cup 18.
A number of indicators 22 are provided for giving information to the user such as the coins which 30 may be accepted by the machine, and the like. In the machine illustrated in Fig. 1, the ten pushbuttons 14 respectively select black coffee, coffee with cream, coffee with sugar, coffee with cream and sugar, Sanka, hot chocolate, tea, soup, extra cream, and extra sugar. The first eight pushbuttons, which may be referred to as sequence selecting controls, select the soup or beverage to be dispensed, and the last two may be pressed during a vending cycle of coffee, Sanka or tea to select extra cream or extra sugar, 35 respectively.
Fig. 2 illustrates a portion of the interior of the apparatus of Fig. 1 with the front cover removed.
Within the interior of the machine 10, a number of magazines occupy a space 24, and they are provided for storing the concentrates required for coffee, hot chocolate, tea, soup, etc., which are mixed with hot water during the dispensing operations before being dispensed into the cup 18. A coffee brewer is located in area 26, for the purpose of brewing coffee.
In the space above the locations 24 and 26 a circuit board 30 is located, and the sequence controller for the machine 10 is located on the circuit board 30. The circuit board is connected by means of flat ribbon cables 32 and 34 to two other units, one of which is illustrated in Fig. 2. The unit 36 is connected by means of the cable 34 to a board 30, and preferably the cable 34 is provided with a 45 jack and plug connection 38, at least at one end so that the cable 34 may be disconnected, when that is desirable for service to the board 30 or the unit 36. The unit 36 supports components which are connected by lines 37 to various switches, including the switches 14, to produce signals which are communicated to the apparatus on the board 30. These signals are isolated from any transients which may be present on the lines connected with the switches 14, etc.
A plurality of relays (not shown) are mounted behind the board 30 and are electrically connected with components of the board 30 by means not shown. The relays are selectively energized for controlling the various functions of the dispensing machine 10. For example, when a cup 18 is to be dispensed into the compartment 16, one of the relays is operated, and its contacts close a circuit energizing a motor for operating the mechanism for allowing the dispensing of a single cup 18 into the 55 space 16. The specific construction of the apparatus required for the mechanical functions of the dispensing machine 10 are well-known to those skilled in the vending machine art, and form no part of the present invention. For that reason, they will not be described in detail, it being understood that the relays open and close the required electrical circuits for proper operation of the dispensing machine.
The circuit board 30 supports a microprocessor chip 39, a few other logic chips, one of which is 60 identified by reference numeral 62, and also another connector 40. The connector 40 is a multiple conductor receptacle which is adapted to receive a plug jack 42 (Fig. 3), but during normal operation of the apparatus of Figs. 1 and 2, no jack is in place in the connector 40.
1 3 GB 2 107 083 A 3 A service module 46 (Fig. 3) is connected to the board 30 via the connector 40 when the sequencer is being serviced. During those times, the plug jack 42 is inserted into the connector 40, and by that means, a ribbon cable 44 interconnects the circuit board 30 with the service module 46. The service module 46 has a display unit 48 adapted for displaying a number of numerical integers with an appropriate decimal point. It also includes a four-position selector switch which is adjustable to select one of four modes of operation. In the vend position of the switch 50, the machine operates normally. When the switch 50 is in its channel position, the display 48 shows one of a plurality of channel numbers. The channel number corresponds to the address of a storage location, in the modifiable memory of the microprocessor, at which is stored a start time and a stop time.
When the switch 50 is in its start time position, the display 48 illustrates the start time stored in 10 the storage location identified by channel number displayed when the switch 50 was in its channel position. When the switch 50 is adjusted to its stop time position, the display 48 displays the stop time of the selected channel.
Two pushbuttons 52 and 54 are provided for selectively increasing or decreasing the content of any channel or storage location. When the pushbutton 52 is depressed, the content of the selected 15 channel is decreased at a variable rate. The rate of decrease is quite slow in the beginning, but the rate of decrease continues to increase until a relatively rapid rate of decrease is achieved. The rate of decrease is reset to its initial slow condition each time the pushbutton 52 is released and redepressed. By this means, an operator can, with a few short depressions of the pushbutton 52, very slowly reduce the content of the selected storage location, while he may rapidly reduce the value stored in a selected 20 channel by simply maintaining the pushbutton 52 in depressed condition. A second pushbutton 54 is provided for increasing the value stored in a selected channel, and its rate of increase is variable in the same way as described in connection with the pushbutton 52. This feature allows the service module to make large changes, or small and precise changes, with equal facility.
An interlock pushbutton 56 is provided for executing a lock or unlock function. The pushbutton 25 56 must be in its unlocked or depressed condition in order to allow the start time to be modified by either of the pushbuttons 52 and 54. The switch 56 must be in its non- depressed or locked condition in order to allow modification of the stop time by either of the pushbuttons 52 or 54. By this means, an operator must manipulate both of the two switches 50 and 56 in order to cause the start time to be modified, and this materially reduces the chance of inadventently modifying the start time when only 30 the stop time is intended to be changed. Since most modifications will be made with respect to the stop times only, the need to maintain the pushbutton 56 depressed in order to modify start times substantially eliminates inadvertent modifications to the start times. The service module 46 is extremely small and compact, and has only four controls. Notwithstanding the simplicity of the service module, it is amply powerful to completely program the sequence controller supported on the circuit 35 board 30.
The programming of the sequence controller is accomplished by inserting a start time and a stop time into each of a plurality of channel locations. Each channel location corresponds to a given relay or set of relays, and the start and stop times determine the time, during each cycle of operation, at which such relay or group of relays is energized and deenergized.
In the operation of the sequence controller of the present invention, to control the vending machine 10, each vending cycle of operation begins with time zero, when a timer is reset at the beginning of a vending operation. The counter continuously manifests the elapsed time since the prevous reset. The elapsed time of the timer is periodically (and frequently) compared with every start time and every stop time in every channel, and when a match or coincidence is found, a program is 45 executed which makes a relevance test. The relevance test determines whether the channel which produced the coincidence match is one which is relevant to the particular sequence selected by the pushbuttons 14. For example, when soup is selected, the coffee brewer 26 is not required, and so the times for starting and stopping operation of the coffee brewer are irrelevant during a soup dispensing cycle. If the relevance test determines that the channel producing the coincidence match is relevant to 50 the selected operation, the relays associated with that channel will be energized or deenergized, depending on whether the start or the stop time produced the coincidence match. When the last relevant coincidence is recognized, the operation of the vending machine halts, and the machine is immediately ready for a subsequent vending cycle, without waiting for the duration of the longest possible sequence.
It will be appreciated that the start and stop times cannot be modified unless the service module of Fig. 3 is in position relative to the circuit board 30. This is a desirable feature in connection with vending machines, because it is very desirable to prevent any unauthorized tampering with the timing of the various operations of the vending machine. It is not feasible to make the interior of the vending machine completely inaccessible, because there are circumstances which require such access. For 60 example, coins must be removed from the coin box, and periodically supplies must be added to the magazines of the machine. Since it is necessary to have access to the interior of the machine available to unauthorized service personnel, it is highly desirable to provide some other way of preventing unauthorized tampering with the machine timing. By use of the present invention, no timing adjustments may be made without access to a service moduie, and since the service module is 65 4 GB 2 107 083 A 4 separate and may be maintained in the possession of authorized service personnel only, access to the machine timing is in that way limited to qualified service personnel.
The microprocessor unit 39 is preferably a single chip unit such as Intel Model No. 8048. Such a microprocessor unit has two internal areas of storage. One storage area is a read only memory, or ROM, and the other storage area is a random access memory, or RAM. The contents of the ROM are fixed, and it is not possible to modify the contents in the field. The information stored in ROM is retained during periods of power outages, so that a restart program contained in the ROM section of memory, can restart the apparatus after a power failure. A RAM, however, is a volatile memory, and a power failure results in the loss of the contents stored in the RAM. Only the data stored in the RAM portion of memory can be modified by operation of the service module (Fig. 3), and no provision is made in the present invention for operating the sequence controller without access to the RAM, allowing for continued operation of the machine even following a power failure.
In the present invention, data relative to the start and stop times is stored partly in the ROM and partly in the RAM. The start and stop time data stored in the ROM forms a basic program, serving to permit operation of the machine in an acceptable, but not necessarily optimum, fashion.
The RAM section of memory is loaded, by using the service module 46, with incremental times which may serve to either increase or decrease the values of the basic program start and stop times stored in the ROM. Thus, a RAM is used to enable each vending machine to function in an ideal or optimum manner, with the exact times of operation being calculated by subtracting or adding the basic values stored in ROM to the modifying values stored in RAM. Since the modifications stored in RAM are typically small, compared to the basic times stored in ROM, the RAM memory capacity is conserved, and ample RAM capacity remains for performance of the functions of the MPU which require use of RAM for a scratchpad memory, the integrity test, the relevance test, etc.
Although the content of the RAM is typically lost during periods of power outage, a rechargeable battery maintains power to the RAM portion during power outage. If protection against only short periods of power interruption is desired, a relatively low capacity battery source will suffice. Larger capacity batteries must be used in order to extend the time of preservation of data in the RAM to account for longer interruptions of power. Alternatively, an independent non-volatile memory such as an EAROM may be employed, which may be modified by writing, as a RAM, but does not lose its storage content during losses of applied power (up to ten years). When an EAROM is used, the incremental data stored therein for the start and stop times is never lost for any duration of power interruption. Since EAROM's are more expensive than other types of memory, it is highly beneficial to conserve their memory capacity, and this can be accomplished in the present invention by storing only modification values in the EAROM. Alternatively, the EAROM stores the times which are actually used as the start and stop times, so that incremental data need not be stored.
Reference will now be made to Fig. 4, which illustrates a functional block diagram of the sequence controller of the present invention. The MPU 39 is functionally illustrated as a single block, to which is connected a source of clock pulses 64 for controlling the timing of the MPU 39, a power supply 66, and a coin mechanism 68. The power supply 66 comprises a conventional power supply for furnishing the required voltage levels to the MPU and to the other units, derived from conventional AC 40 power available on lines 70. The coin mechanism 68 is connected to a terminal of the MPU 39 which may be interrogated as to its condition. When the MPU used in the Intel Model 8048, the coin mechanism 68 is connected to the T1 terminal of the MPU, which, during the execution of suitable instructions, may be tested for a high or low value. The source of clock pulses 64, the power supply 66 and the coin mechanism 68 are all conventional units, so that they need not be described in detail. The function of the coin mechanism 68 is to supply a signal to the terminal T1 when the proper amount of coinage has been deposited in the coin receiving slots, so that a dispensing or vending cycle can begin.
A dispensing cycle begins, after deposit of the requisite number of coins, by depression of one of the soup or beverage selecting buttons 14.
The MPU 39 is provided with two ports P 'I and P2 and a data bus D13. The data bus consists of 50 eight lines 76, which are connected from the MPU 39 to a set of drivers 78. The output of the drivers is connected to appropriate ones of a set of LED's 60, and to appropriate ones of a set of relays 80.
The port P2 is connected over eight lines 74 to a set of drivers 82, and the output of the drivers is connected to some of the LED's 60 and to appropriate ones of the relays 80.
Port P 1 is connected to eight lines 72 and performs both input and output functions. When it 55 functions as an input, it senses a condition of a plurality of switches, and when it functions as an output, it supplies control signals to the display unit 48, designating which part of the display is to be energized at any given time. The outputs of the data bus are also connected to the display unit 48, via drivers 78, and furnish signals indicating the information which is to be displayed at various positions of the display.
When the lines 72 function as inputs, they sense the condition of the nine switches 14 on the front panel of the dispensing machine, and also the condition of the switches on the service module 46.
The nine switches are each connected to unique combinations of the eight lines 72, so that the closing of any one of the switches is recognized during operation of the MPU 39 because of such interconnection. Preferably, all of the ten switches are isolated from any effects on the power lines by 65 a T i GB 2 107 083 A means of opto-isolator units, such as the one 84 which is shown in association with the switch C13. The switch CB (for selecting black coffee) connects the opto-isolator 84 to a source of input power which may be conventional AC power applied to terminals L1 and L2. The opto- isolator 84 functions to complete an electrical circuit between two output leads, which are electrically isolated from the input leads connected to L1 and L2, and therefore are not affected by transient conditions on the line. The 5 two output leads of the opto-isolator 84 are connected to the first and fifth lines of the eight lines 72.
The other eight panel switches, although indicated diagrammatically in Fig. 4, are preferably arranged with opto-isolators in the same manner as the switch C13.
Six of the eight lines 72 are connected through the connector 40 to various ones of the switches of the service module 46. The lock switch 56 is connected between the sixth and eighth lines, the decrement switch 52 is connected between the second and seventh lines, and the increment switch 54 is connected between the first and seventh lines of the lines 72. The switch 50 selectively connects the sixth line of the lines 72 to the first, second and third lines of the set. The condition of the switches 50-56 is determined during operation of the MPU 39 in the same manner as described above in connection with the panel switches.
The disconnection of the service module 46, by opening the connector 40, does not interfere with the relationship between the sequence controller and the switches 14 and relays 80, which execute the various operations required during dispensing cycles. The sequence controller is therefore effective for normal operation of the vending machine therefor without the presence of the service module 46.
Since only one service module 46 is required for a large family of sequence controllers, the cost, 20 complexity, and power consumption of the sequence controller is materially reduced.
The power-down/power-on reset circuit 90 provides for the sensing of an imminent power failure or removal of power. When this condition is sensed, the appropriate input pin of the MPU 39 is driven to a zero voltage level, thereby initializing the MPU 39 internal program, disabling the relays 80, and protecting the RAM contents from being erroneously altered during a marginal power supply condition.
This reset input pin is held at zero volts until the power is restored to the proper level as sensed by the power-down/power-on reset circuit 90.
Reference will now be made to Figs. 5a-5d, which taken together form a flow chart illustrating operations performed by the sequence controller of the present invention. The flow chart assumes that the MPU which is used is the Intel Model 8048. The several blocks of the flow charts shown in Figs. 30 5a-5d are representative both of the structure of the present invention, and the function of that structure. Although in the preferred embodiment, most of the decisional and operational units shown in these figures are contained internally within the MPU chip, it is equally feasible to construct them of conventional logic integrated circuits, or even with discrete components. Thus, the representation of the boxes in Figs. 5a-5d are both structural and functional, and can be interpreted as hardware and/or 35 software. In these figures, rectangles are provided to illustrate operational devices or units which may be flip- flops, solenoids, relays, etc.; and where diamonds are provided to represent decision units which may be comparators, coincidence gates, or the like. Since the physical construction of each operation unit, and each decision unit, is obvious to those skilled in the art from a consideration of its function, the specific construction which maybe employed for the various operation units and decision units will 40 not be described in detail.
The decision units and operation units shown in Figs. 5a-5d operate in a prescribed sequence, and control the manner in which the various functions are carried out. For that reason, the flow charts will be described in terms of one unit passing control to the next unit, implying that the previous operation or decision has been completed.
Operation is initiated when power is applied to the apparatus of Fig. 4, via the power supply 66, by operation of the power-down/power-on reset unit 90 (Fig. 5a), causing a reset of the internal program counter of the MPU 39 to zero. This causes the program to be entered at the proper starting point. Control is next passed to a unit 104 which explicitly turns off the vend relay, sets the channel number code to zero and resets the interrupt timer 101 to zero. The interrupt timer 101 is a timer contained within the MPU 39, but may be a discrete timer. Its function is to count clock pulses constantly, and when the timer counter overflows, a signal is produced which passes control to unit 104, restarting the program from that point. The interrupt timer counter is reset at frequent intervals during normal operation of the programs of Figs. 5a-5d, so that during normal operation it never overflows. If it should overflow because of a transient fault condition, the operation of the apparatus is 55 restarted and then resumes normally.
Unit 104 passes control to a unit 106 which next starts the interrupttimer, which then begins incrementing continuously at a fixed rate independently of the main program flow. Control is then passed to the unit 108, which sets the content of register 5 equal to 30, and clears all of the output flip-flops for driving the relays 80. The contents of register 5 are used to execute the variable rate increment and decrement function when the control module is used.
The unit 108 passes control to a unit 110 which functions to call a subprogram for performing a check sum program. The check sum program constitutes the integrity test of the data stored in the RAM and it is performed by successively addressing every storage location in the RAM where a 6 GB 2 107 083 A 6 modification of a start time or a stop time is stored, and adding together the total sum of all of the modifications. This results in a check sum, which is used in the integrity test.
When the check sum is calculated, control is passed to the unit 112 which compares the calculated check sum with a previously calculated value stored in the RAM. If the calculated value equals the stored value, control is passed to the unit 114 over a line 116. If the calculated value does not equal the stored value, control is passed to the unit 113 through a unit 118 which operates to set a reload flag, and clears the modifying contents of the RAM to all zeros.
The integrity test performed by the units 110 and 112 insures that the contents of the RAM have not been altered, for example, as a result of a power failure exceeding the capacity of the battery power supply. Following such a power failure, the contents of every RAM location is random, and the integrity 10 test fails with a high degree of certainty. Under those circumstances, the random contents of the RAM are ignored and the RAM is set to zero, so that the start and stop times of the basic program are not modified. No other program alterations are necessary, because the addition or subtraction of zero does not modify the basic program times. The reload flag is an output which is connected to one of the other LED's 60, so that if the integrity test fails, the lighting of that specific LED 60 will indicate that service is necessary to reload the contents of the RAM.
The unit 113 provides for one of the frequent resets of the interrupt timer, as described above.
The unit 114 determines whether the channel switch has been operated, i.e. , if the switch 50 is in its channel position. If it is, control is passed over a line 120. If not, control is passed over a line 122 to a unit 124, which determines whether the switch 50 is in its start time position. If it is, control is passed over a line 126, and if not, control is passed over a line 128 to a unit 130. The unit 130 determines whether the switch 50 is in its stop time position. If it is, control is passed to a line 132, and if not, control is passed to a unit 134. Since the unit 134 receives control only if the switch 50 is in its vend condition, or the service module 46 is not connected, the vend cycle is indicated. The unit 134 determines whether credit has been received, as determined by a signal from the coin mechanism 68 25 at the T1 terminal of the MPU 39. If it is, control is passed over the line 136 to start the vend program.
If not, control passes to the unit 138 which turns on the coin mechanism 68 and then returns control to the unit 108. As long as the service module 46 is not connected, or the switch 50 is not in one of its three service positions, the program will cycle through the units just described, until credit is established by depositing the proper coins in the coin slot 12. Then, the vend program is entered over 30 line 136, to initiate it as a sequence of operations which result in the vending or dispensing of the selected soup or beverage.
If the control module 46 is connected, and the switch 50 is in its channel position, the line 120 passes control to a unit 140, which causes the display 48 to display the content of the channel register.
When the unit 140 has displayed the channel number, control is passed to the unit 141 for clearing of the interrupt timer, and then to the unit 142, which examines the state of the increment pushbutton switch 54. If it has been depressed, control passes to the unit 144 which compares the display channel number with number 15. If the channel number is 15, control returns directly to the unit 108. In the example described, 15 is the highest channel number, so that depressing the pushbutton 54 when the channel number is 15 is an erroneous condition.
If the unit 144 determines that the channel number is not 15, control passes to the unit 146 which increments the content of the channel register, and then returns control to the unit 108. The loop described beginning with 108 and ending with 146 is then repeated, with each repetition resulting in an increase of the content of the channel register by one. In this way, any channel may be readily selected by incrementing the channel register until the correct channel is arrived at.
If the unit 142 determines that the increment pushbutton has not been depressed, control passes to the unit 148 which determines whether the pushbutton 52 has been depressed. If the unit 148 determines that neither of the pushbuttons 52 and 54 is depressed, control returns to the unit 108, and the program sequence beginning with 108 and ending with 148 is repeated until one of the pushbuttons is depressed to increase or decrease the content of the channel register. Since unit 140 is 50 operated periodically, for each repetition of this loop, the channel number appears to be continuously displayed.
If the unit 148 determines that the pushbutton 52 has been depressed, control passes to the unit 150, which compares the state of the channel register with zero.!f the channel register is equal to zero, the number of the lowest channel, a decrease operation is erroneous and control passes directly back 55 to the unit 108. If the channel register is not set to zero, control passes to the unit 152 which decrements the channel register before returning control to 108.
Through the program described above, any desired channel is quickly selected and displayed by the use of the controls of the service module 46.
When the desired channel has been found, the switch 50 is moved to either its start time position 60 or its stop time position. When it is moved to its start time position, control is passed over the line 126 to a unit 154 where it sets a flag equal to zero. The flag will be referred to as the start-stop flag, and a condition of zero indicates that the switch 50 is in its start time position. Control is then passed to a unit 156 which stores the content of register 5 in register 3, and then passes control to a unit 158, which calls a display subroutine. The display routine operates to cause a display device 48 to display 65 7 GB 2 107 083 A 7 the content of the selected register, which corresponds to a modification of a start time or a modification of a stop time. When the switch 50 is in its start time position, the part displayed is the start time stored in the selected channel. Control passes from unit 158 to unit 159 for the clearing of the interrupt timer, and then to unit 160 which determines whether R3 is equal to zero. Since the unit 160 first receives control when the content of R3 is 30 (and not zero), control is passed to unit 162, 5 which functions to decrease the content of the R3 register by 1, and then returns control to the unit 158. The loop including the units 158, 160 and 162 accordingly is traversed 30 times before R3 is equal to zero. Then.control is passed to a unit 164 which determines whether the switch 50 is in its start time position, with the lock pushbutton 156 in its unlocked condition. If so, control is passed to a unit 166 to initiate the steps which bring about a change in the content of the selected channel.
When it is desired to modify the stop time, the switch 50 is adjusted to its stop time position, and then the unit 130 receives control, and passes control to the unit 156 through a unit 168 which sets the start- stop flag equal to 1, signifying that the stop time is to be modified. Subsequent operations are performed in the manner described, down to the unit 164. If the unit 164 determines that the switch 50 is not in its start time position, or the pushbutton 56 is not in its unlocked position, control is passed15 to unit 170 which determines whether the switch 150 is in its stop time position, with the switch 56 in its locked condition. If so, control is passed to the unit 166 for initiating the change in the selected start or stop time. If the unit 170 determines that either the switch 50 is not in its stop time position, or the lock 56 is not operating, an erroneous condition is indicated, and control is passed directly back to the unit 108 without modifying the content of the channel.
The steps which have just been described constitute the interlock program, which requires the operation of the switches 50 and 56 in conjunction. If these switches are not properly operated, the times stored in the selected channel cannot be altered, and this feature substantially prevents unintentional modification of the start and stop times.
The unit 166 inspects the condition of the pushbutton 54. If it is not depressed, control is passed 25 to a unit 168 which examines the condition of the pusbbutton 52. If it is also not depressed, control is returned to the unit 108, and continues to cycle through the loop beginning with 108 and ending with 168 repetitively until one of the pushbuttons 52 or 54 is depressed. When the unit 166 recognizes that the pushbutton 54 has been depressed, control is passed to a unit 172 which determines if the switch 50 is in its start time position. If it is, control is passed to a unit 174 which determines whether the 30 start time and stop time stored in the selected channel are equal. If so, the incrementing of the start time is an erroneous condition, and control is returned to the unit 108 over a line 176. If not, control is passed to a unit 178 which executes the next step in bringing about a change in the selected start or stop time. If the unit 172 determines that the switch 50 is not in its start position, the unit 178 receives control directly.
When the pushbutton 52 is depressed, the unit 168 passes control to a unit 180, which determines whether the switch 50 is in its stop position. If it is, control is passed to a unit 182 which determines whether the start and stop times of the selected channel are equal. If so, any attempt to decrease the stop time is erroneous and control is returned directly to the unit 108 over the line 176. If not, the unit 178 receives control. When the unit 180 determines that the switch 50 is not in its stop 40 time position, control is passed to a unit 184 which determines whether the start time is zero. If so, it cannot be decremented and control is returned to the unit 108. If the start time of the selected channel is not equal to zero, control is passed to the unit 178.
The unit 178 determines whether the sign of the selected start or stop time is negative and the decrease pushbutton 52 has been depressed. If so, it passes control to a unit 186 which determines 45 whether the current content of the selected time of the selected channel is at a maximum value. An attempt to increase it further is erroneous and controls return to the unit 108. The unit 186 can also receive control from a unit 188, when the unit 178 determines that the sign of the modifier stored in RAM is not negative, or the pushbutton 52 has not been depressed. Under these conditions, the unit 188 receives control and determines whether the modifier stored in the RAM is positive and the pushbutton 54 has been depressed. If so, control passes to 186. If not, control passes to a unit 190.
The unit 190 can also receive control from the unit 186 if the content of the selected RAM location is not at a maximum value. The unit 190 again inspects the condition of the pushbutton 54. If it is depressed, control passes to unit 192 which increases the selected time of the selected channel by one unit. Otherwise, control passes to unit 194 which decreases the selected time by one unit. Then control 55 passes to unit 196 which updates the checks sum stored in RAM, an operation which is necessary every time the start and stop time modifiers stored in the RAM are adjusted. The control is passed to unit 197 which resets the reload flag, and then unit 198 decreases the content of the register 5 and then returns control over line 122 to the unit 110.
As long as either pushbutton 52 or 54 is maintained depressed, the steps described above are 60 repeated and unit 198 receives control before returning control to the unit 110. Each time the unit 198 receives control, the content of register 5 is decreased by one, which shortens the time required in the loop including the units 158, 160 and 162. This loop is repeated, each time it is entered, the number of time corresponding to the content of register 5, since register 3 is set accordingly by the unit 156 just before the loop is entered. Since the initial content of register 5 is 30, thirty repetitions of the loop 65 8 GB 2 107 083 A 8 occur between each adjustment of the content of the selected channel, whether it is being increased or decreased. After it is adjusted by 30 units, in the course of 30 repetitions of the loop including the unit 198, the content of register 5 has been reduced to zero, and the loop including the unit 162 is bypassed. In this way, the rate at which the modified values are adjusted is increased as long as one of the pushbuttons 52 or 54 remains depressed. In this way, large adjustments may be made to the 5 contents of RAM in a short time, simply by the expedient of holding the appropriate pushbutton depressed. Very fine adjustments are made equally well simply by depressing the appropriate pushbutton for short periods of time.
By the programmed step described above, any channel may be selected, and its modification of the start time and stop time may be adjusted up or down easily and quickly to enter desired value. 10 Whenever an adjustment is made, the unit 197 resets the reload flag automatically, so that it will again be capable of indicating a subsequent failure of the intergrity check.
When the unit 134 (Fig. 5a) receives control and recognizes credit, it passes control to the first unit in the vend program over a line 136. The first unit is the unit 200 (Fig. 5c) which causes the switches 14 to be read in, together with a conventional debounce program, for avoiding errors due to 15 bouncing of the switch contacts. After the unit 200 operates, control is passed to the unit 202 which determines whether one of the selection switches 14 has been depressed. If not, control is returned over a line 204 to the unit 108. If a selection has been made, control passes to the unit 204 which decodes the switches and places in the upper half of the register 4 a representation of what sequence has been selected. Cortrol is passed to a unit 206 which resets the interrupt timer and clears-the internal clock which controls the timing of the functions during the vend cycle. 206 passes control to a unit 208 which sets a flag F1 to zero, which allows start times to be checked for coincidence. It also sets the channel register to 15 so that the first channel to be checked for a time coincidence is channel No. 15.
After the channel register is set to 15, unit 210 receives control and inspects the switches 14 to 25 determine whether the extra cream switch has been depressed. If so, control is passed to the unit 212 which sets bit No. 7 of register 5. If not, a unit 214 examines the condition of the extra sugar switch, and passes control to unit 216 which sets bit 6 of register 5 if the extra sugar switch has been depressed. Unit 217 then determines if F1 =0, indicating a start time. If so, control passes to a group of units 218a-e which determine whether the channel 15 start time corresponds to the time of the clock. The unit 218a gets the start time for channel 15 from ROM and the unit 218b gets the signed modification parameter from RAM. Unit 218c adds them; unit 218d gets the clock value; and unit 21 Be checks for coincidence. If a coincidence is found, control passes to unit 220. Otherwise, control passes to unit 221. If the unit 217 determines that F1 =1, the same sequence is performed for the stop time of the selected channel, by operation of units 21 8f-21 8j. As described hereinafter, all the channels are checked for start time coincidence, and then all are checked for coincidence with stop times.
If the clock value is not equal to either the start time or the stop time, control passes to a unit 221 (Fig. 5d) which clears the interrupt timer. Then a unit 222 inspects the state of the channel register. If the channel register is not zero, control passes to a unit 224 which decreases the state of the channel 40 register by one and then returns control to the unit 210. This sequence of operations beginning with 210 and ending with 224 is repeated until the start times of all sixteen channels have been compared with the clock, after which control is passed over a line 225 to a unit 226. The unit 226 examines the state of the flag F 'I which was set to 0 by the unit 208, before the start times were compared with the clock. Since the first time the unit 226 receives control, the flag F1 is 0, control passes to the unit 228 45 which resets the channel register to 15; sets the stop bit F1 to 1; and returns control to the unit 210.
The sequence beginning with the unit 210 and ending with the unit 228 is then repeated, so that the stop times of all channels are compared with the timer so that a coincidence can be detected.
When a coincidence is detected by the unit 218, control is passed to the unit 220 which performs a relevance test by determining, from the data stored in the upper half of the register 4, whether the 50 channel for which a coincidence has been detected is one which is used in the selected sequence. If not, control passes directly to the unit 22 1. If the relevance test is positive, control passes to a unit 230 which determines whether the channel for which coincidence has been detected is the extra cream channel. If 'It is the extra cream channel, control passes to the unit 232 which examines bit 7 of the R5 register. This bit would have been set by the unit 212 in response to recognition of the extra cream pushbutton. If unit 230 determined that it had not been the extra cream channel, control passes to unit 231 to determine if it is the cream channel. If it is, control is passed to the unit 232 for the bit 7 test of R5. If bit 7 is found to be set, control passes to the unit 233 which determines whether the time for which coincidence has been found is the cream stop time. If it is, control is passed directly to unit 22 1, thus causing no change in cream dispenses status. If it is not cream stop time, control is passed to unit 60 234 for the substitution of the cream channel output code for the extra cream code, and thence to unit 242. The subsequent turn on or turn off of the cream dispenser is described below. If the test by unit 231 for cream channel was negative, or if bit 7 of R5 was not found to be set by unit 232, control is passed to unit 236 which determines if the coincidence channel is the extra sugar channel. If it is, control passes to unit 238 which examines bit 6 of R5, which may have been set by the unit 216. If 65 z 9 GB 2 107 083 A 9 unit 236 determined that it had not been the extra sugar channel, control passes to unit 237 to determine if it is the sugar channel. If it is, control is passed to the unit 238 for the bit 6 test of R5. If bit 6 is found to be set, control is passed to the unit 239 which determines whether the time for which coincidence has been found is the sugar stop time. If it is, control is passed directly to unit 22 1, thus causing no change in the sugar dispenser status. If it is not sugar stop time, control is passed to unit 5 240 for the substitution of the sugar channel output codes for the extra sugar code and then to unit 242 for the subsequent turn on or turn off of the sugar dispenser. Unit 242 can also receive control from unit 237 if the sugar channel test was negative, or from unit 238 if bit 6 of R5 was not found to be set.
The unit 242 determines whether the brew channel is the channel for which a coincidence has 10 been recognized, and, if so, passes control to unit 244 which sets bit 3 of register 5 to indicate that a long cycle is required, since the coffee dispensing cycles employing the brewer require longer time durations than other cycles. Control is then passed to unit 246 which receives control directly from the unit 242 if the brewer channel is not the coincidence channel. The unit 246 determines whether the coincidence time is a stop time, and if so, passes control to a unit 248 which conditions the apparatus 15 for turning off an output bit. Then control is passed to a unit 250 to accomplish turning off of the appropriate output. If the unit 246 recognizes a start time instead of a stop time, it passes control to the unit 252 which conditions the apparatus for turning an output on and then passes control to a unit 254 to accomplish turning on of the selected output.
Control is then passed to unit 266, which may also receive control from 250 in the output turn off 20 sequence. In the unit 266, the current channel output code is tested to determine if it is the code for Sanka, cream or sugar. If it is not one of these, unit 268 then determines if this is an output turn-on by sensing if F1 =0. If it is, R5 is incremented by one to provide for a count of the outputs which are currently energized. If F1 =11, indicating an output turn-off, R5 is decremented by one, thereby decreasing the count of the outputs currently energized. Control is then passed to unit 22 1.
When the unit 226 determines that the last recognized coincidence is a stop time, control is passed to a unit 256 instead of to the unit 228. The unit 256 determines whether the time of the vend cycle has equalled or exceeded the time value of the vend channel plus a modifier which may have been stored in RAM memory and if it has, control is passed to a unit 258 which operates to turn off all the relays and return control over a line 260 to the unit 104. Although a single decision unit 256 has 30 been illustrated, it will be understood that several different operations are required, and the unit 256 is representative of a series of units such as units 218a-218e, which check for a start time comparison.
The unit 256 establishes the maximum time for any vending operation, and restores the apparatus to its normal condition if, for any reason, such as extraneous noise or the like, any output relay has been improperly left on.
If the unit 256 determines that the maximum cycle time has not yet elapsed, control is passed to a unit 262 which determines whether the elapsed time of the vend cycle is greater than 10 seconds. If not, control is passed to unit 274 for incrementing of the clock by 1, and then to the unit 208 and the sequence described above is repeated. If more than 10 seconds have elapsed, control is passed to the unit 264 which examines the state of bits 0, 1, 2 and 3 of register 5. If bit 0, 1 or 2, which together 40 constitute the output status count for the number of relays currently energized, is set (meaning at least one is still on), or if bit 3 is set, indicating that a long cycle is required because the brewer has been selected, control is returned to the unit 208. If none of these bits are set, control is passed directly to the unit 258, and all relays are explicitly turned off (even those which had previously been turned off).
By operation of the units 256, 262, and 264, as well as the unit 244, no selected sequence requires more than 10 seconds, except for a sequence which involves operation of the brewer, and then the sequence is limited to the vend channel time, which is nominally 18 seconds, unless modified.
Accordingly, selected sequences which do not involve operation of the brewer are permitted to occur with almost twice the speed of brewer-depending sequences.
Figs. 6a-6c illustrate portions of the ROM and RAM storage sections of the present invention. In 50 Fig. 6a, corresponding partsof the ROM and RAM are illustrated, in which are stored, respectively, the basic times and the modifying parameters of a typical channel. Four decimal digits are stored in ROM for the basic times, and three decimal digits (of which the most significant digit is a maximum of 7) is stored in RAM. Thus, a basic time may be any time within the range G-9999 units, and the modifying parameter may be within the range of minus 799 to plus 799. Also, the total of the basic time plus the 55 modifier must be within the range of 0-9999 units. Since the modifying parameters are typically small, not as much RAM storage capacity is required.
The actual time value of each unit of the stored start and stop times depends on the speed of operation of the apparatus. In one embodiment, each unit corresponded to 0.05 seconds. Fig. 6a also shows the check sum stored in a portion of RAM.
Fig. 6b shows the significance assigned to several of the MPU's operating registers. Register 4 stores, in one bit, an indication that the proper coins have been deposited as determined by signals from the coin mechanism. Three other bits store a representation of the selected sequence, in accordance with which of the sequence-selecting pushbuttons 14 are operated. The other half of GB 2 107 083 A 10 register 4 constitutes the channel re gister, for designating the channel being accessed currently in ROM and RAM.
In register 5, two bits store flags indicating that extra cream and sugar have been selected; another bit stores an indication of whether the current cycle is short or long, i.e., whether the brewer has been selected, and three other bits maintain a count of the number of outputs turned on, so that a 5 subsequent vend program can be initiated as soon as all outputs of a preceding vend cycle are turned off, signifying the end of that cycle. This enables vending cycles to be shorter than the vend cycle time for non-brewer vends. The unit 258 functions as a back-up, after 10 seconds, in case some fault prevents a turn off of one or more outputs.
Registers 6 and 7 constitute the internal timer, which may be counted from 0 to 9999 (counting 10 in binary-coded decimal). It can, of course, count from 0 to 211 when operated as a binary counter of 16 stages. If desired, the data stored in the ROM and RAM sections for the basic times and modifications may also be in binary.
Fig. 6c illustrates a table used in the relevance test. The table is stored in ROM, and identifies which channels are relevant to any of the eight selectable sequences. No data is stored for channels 0 15 and 1, because an indication of whether extra sugar or cream is selected is stored in register 5 (Fig. 6b).
When an EAROM is used, it is a separate unit 300 (Fig. 4) connected to the MPU via data bus lines 301. The EAROM is operated for reading and writing by a logic unit 302, under control of the MPU unit 39. The details of the logic unit 302 are well known to those skilled in the art. When the EAROM is used, it is accessed for modification by the service module in the same way that the internal 20 RAM is accessed, which has been described above in detail. The EAROM may store either the modification parameters, like the RAM, or may store the complete programmed times, in which case, the ROM of the MPU 39 need not store the basic times, and this memory space is made available for program instructions and the like.
It is apparent that the sequence controller described above may be adapted for other applications 25 than the control of a soup and beverage vending machine. Various additions and modifications may be made by those skilled in the art without departing from the essential features of novelty of the present invention, which are intended to be defined and secured by the appended claims. 9 n ---APPENDIXASequence controller with microprocessor Case 78,332 LOC
OBJ SEO SOURCE S7ATEMENT 1;COPYRIGHT 1978 AMF INCORPORATED 2;FM. VENDING MACHINE CONTROLLER 3 W9/78 4 JIMING FOR 1 INCR AND 3.5 MHZ CLOCK 5;START OF PROGRAM PORTS RESET AND TIMER RESET 6;RAM CHECKED FOR CHECK SUM FAILURE 0006 7 0006 8 CLK1 EQU 06 OOEF 9 COL1 EQU OEFH OODF 10 COL2 EQU ODFI-1 OOAF 11 COL3 EQU OAFH 007F 12 COL4 EQU 07FH 13 ROW EQU 050H OOOF 14 OSS EQU OFH 15 RAM EQU 010H OOOA 16 TIMES EQU OAH 004R 17 VENDC EQU 04AH 0002 18 VENCHA EQU 02 0300 19 OPG 0300H 0300 40 20 DIGITS DB 040H 0301 F9 21 DB OF9H 0302 24 22 DB 024H 0303 30 23 DB 030H 0304 19 24 DB 019H 0305 12 25 DB 012H 0306 02 26 DB 002H 0307 F8 27 DB OF81-11, 0308 00 28 DB OOOH 0369 18 29 DB 018H;XS CHO 030A 00 30 ROMTIM DB OOOH 030B 48 31 DB 048H 030C 73 32 DB 073H 030D 00 33 D131 OOOH 030E 00 34 DB OOOH;XCR CH1 030F 62 35 DB 062H 0310 66 36 DB 066H 0311 00 37 DB OOOH 0312 00 38 DB OOOH;VENC V1-12 K2 0313 50 39 DB 050H G) m N) ---APPENDIXA- (contd.) LOC 081 SEO SOURCESTATEMENT
0314 70 40 DB 070H 0315 10 41 DB 010H 0316 00 42 DB OOOH;BREW CH3 K3 0317 65 43 DB 065H 0318 20 44 DB 020H 0319 00 45 DB 0001-1 031A 46 DB OOOH;CUP M CH4 K4 031 B 84 47 DB 004H 031 C 21 48 DB 021 H 031 D 00 49 DB OOOH 031 E 00 50 DB OOOH;COF A CH5 K5 031 F 02 51 DB 002H 0320 64 52 DB 064H 0321 00 53 DB OOOH 0322 00 54 DB OOOH;X WAT. CH6 K6 0323 48 55 DB 048H 0324 94 56 DB 094H 0325 00 57 DB 0001-1 0326 00 58 DB OOOH;LIGHT M CH7 K7 0327 14 59 DB 014H 0328 64 60 DB 064H 0329 00 61 DB OOOH 032A 00 62 DB 0001-1;SUGAR M CH8 K8 032B 50 63 DB 050H 032C 64 64 DB 064H 032D 00 65 DB OOOH 032E 00 66 DB OOOH;CHOC M CH9 K8 032F 03 67 DB 003H 0330 74 68 DB 074H 0331 00 69 DB OOOH 0332 00 70 DB 0001-1;CHOC W CH10 K10 0333 00 71 DB OOOH 0034 73 72 DB 073H 0335 00 73 DB OOOH 0336 00 74 DB OOOH JEA M CH1 1 K11 0337 87 75 DB 087H 0338 54 76 DB 054H 0339 00 77 DB OOOH 033A 00 78 DB OOOH JEA W CH12 K12 033B 00 79 DB OOOH 033C 92 80 DB 092H 033D 00 81 DB POOH N) G) m bi C co W N ---APPENDIXA- (contd.) LOC OBJ SEO SOURCESTATEMENT
033E 00 82 DB OOOH;SOUP M CH13 K13 033F 68 83 DB 068H 0340 64 84 DB 064H 0341 00 85 DB OOOH 0342 00 86 DB OOOH;SOUP W CH14 K14 0343 38 87 DB 038H 0344 82 88 DB 082H 0345 00 89 DB OOOH 0346 00 90 DB OOOH;SANKA CH15 K15 0347 77 91 DB 077H 0348 64 92 DB 064H 0349 00 93 DB OOOH 034A FF 94 VENDCO: DB OFFH;CLS 1 034B 2A 95 DB 02AH;SOUP1 034C EA 96 DB OEAH;TEA1 034D 2A 97 DB 02AH;CHOC1 034E EA 98 DB OEAH;SANKA1 034F FE 99 DB OFEH;CS 1 0350 FF 100 DB OFFH;CL1 0351 FE 101 DB OFEH;CB 1 0352 80 102 DB OOOH;CLS2 0353 06 103 DB 006H;SOUP2 0354 18 104 DB 010H JEA2 0355 60 105 DB OEOH;CHOC2 0356 01 106 DB 001 H;SANKA2 0357 00 107 DB OOOH;CS2 0358 00 108 DB OOOH;CL2 0359 00 109 DB OOOH;C132 0000 110 ORG 0 0000 F8 111 START: mov kPO 0001 0407 112 imp STAR '11 0003 OA 113 INTRPT: IN A,P2 0004 A8 114 mov POA 0405 115 INTR: imp INTR 0007 3A 116 STAR 11: OUTL P2,A 0008 0A02 117 OPI- P2,002H TURN CREM ON OOOA 27 118 CLR A 00013 AC 119 mov R4,A JAKE AWAY CREDIT 000C 900B 120 START1: ANI- P2,OOOBH JURN RELAYS OFF OOOE 62 121 mov T,A OOOF D7 122 mov PSW^ W bi ---APPENDIXA- (contd.) LOC oBJ SE0 SOURCESTATEMENT
55 123 ST T 0011 B98C 124 MOV R1,OCH 0013 Al 125 MOV CR1A 0014 AA 126 MOV R2A B920 1,27 MOV Rt0201-1 0017 EA17 128 START3: DJNZ R2,START3 0019 62 129 MOV T^ 001A E917 130 WNZ RtSTART3 oolc 37 131 CPL A 001D 82 132 OUTL BUSA 001E BD30 133 VEND? MOV R5,0030H 27 134 VNTST: CLR A 0021 9A0B 135 AHL P2,0131-1 0023 62 136 MOV T,A 0024 OA 137 IN A,P2 37 138 CPL A 0026 122A 139 J130 VNTS1 0028 8A08 140 ORL P2,08H;SET RELOAD INDICATOR 002A 34C3 141 VNTS1: CALL CHKSUM 002C 05 142 EN 1 002D 25 143 EN TCNT1 002E C63B 144 iz VEN3 BA33 145 MOV R2,033H;SET UP LOOP COUNTER 0032 B93F 146 RAMCI-R: MOV Rl,3FH;ROLITINE TO CLR RAM 147;SET PTR 0034 27 148 RAMCL1: CLR A Al 149 mov C131,A;CR1=0 0036 C9 150 DEC Rl 0037 EA34 151 DJNZ R2MAMCL1;IF YES DONE 0039 8A01 152 ORL P2,001 H 003B 237F 153 VEN3: MOV A,OCOL4;READ WHICH SWITCH 003D A9 154 MOV Rl,A 003E 39 155 OUTL P 1,A 003F 09 156 1 N A,P 1 37 157 CPL A 0041 A5 158 CLR F 1 0042 525B 159 JB2 CHAN;IF CHANNEL SELECTED 0044 3286 160 JB1 STRTT;IF START TIME 0046 1287 161 JBO STOPP;IF STOP TIME 0048 FC 162 VEN1 MOV A,R4 0049 F251 163 JB7 VEN2;IF CREDIT GIVEN CHECK SWITCHES a) W r11) 0 00 W -PI LOC 004B 004D 004F 0051 0053 0055 0056 0057 0058 0059 005A 005B 005D 005F 0061 0062 0063 0064 0065 0066 0067 0068 006A 0060 006D 006E 006F 0071 0073 0075 0077 OBJ 8A02 34D4 041 E 445B 7657 38 93 47 30 AO BCOO B80C B90D 27 Al 19 FO 6C 57 Al 3495 23AF 39 09 37 B80C 1277 327F 041 E FO SEG 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 CHAN 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 INC1:
START 4: VEN2 ---APPENDIXA- (contd.) SOURCESTATEMENT
ORL P2,02 CALL SENCON imp VEND? imp VEND;LODRAM ROUTINE;RELOAD RAM WITH WHATS IN ACC REGISTERS CHANGED: ACC AND AREA FT. TO BY RO;REGISTERS NEEDED: ACC WITH DIGIT RO PTR TO DIGITTO BE CHANGED Fl 1 FOR STOP 0 FOR START LODRAM:
LODRA1:
LODRA2:
TURN CREM ON JF1 XCHD RETR SWAP XCHD mov RETR CHANNEL mov mov mov CLR mov INC mov ADD DA mov CALL mov OUTL IN CPL mov JBO JB1 imp mov LODRA1 A,CRO A A,C110 CRO,A R4,001-1 RO,OCH P 1,ODH A CR1-,A Rl &CRO A,134 A CP 1,A DISPLM &OCOL3 P 1, 8 A,P 1 A RO,OCH INC1 DEC1 VEND? A,C130 IF STOP TIME J.;MOVE DIGIT INTO RAM LOWER NIBBLE MOVE DIGIT INTO RAM UPPER NIBBLE LOAD CHN NUMBER PTR;CLEAR LOC D AND E SET UP LOC E LOC E HAS THE RIGHT VALUE;CALL DISPLAY ROUTINE SET CHN PTR;INCR;DECR AS CHN PT11=F G) m hi 0 00 W -01 "APPENDIX A" (contd.) LOC OBJ SEO SOURCESTATEMENT
0078 03F1 204 ADD A,00F11-1 007A C61 E 205 iz VEND?;IF SO J. TO VEND? 007C 10 206 INC CRO 007D 0484 207 imp ACC 007F FO 208 DEC1: mov A,CPO;CHN PTR=0 C61 E 209 iz VEND? 0082 07 210 DEC A 0083 211 mov CP0A 0084 0420 212 ACC: imp VNTST:J. TO VNTST 213 214 START OR STOP 215 0086 B5 216 STRTT: CPL Fl 0087 B5 217 STOPP: CPL Fl;F 1 =0 FOR START 1 FOR STOP 0088 B80C 218 mov RO,OCH 008A FO 219 mov &CRO 008B AC 220 mov R4,A;SET R4 TO CHN PTR 088C 34FC 221 CALL RTIME TME RESULT IN E AND F 008E 3495 222 CALL DISPLM 23AF 223 LPP: mov A,COL3 0092 39 224 OUTL P 1,A 0093 09 225 1 N A,P 1 0094 37 226 CPL A B90C 227 mov P t0CH 0097 Al 228 mov CR 1A 0098 B29E 229 JB5 STRT2 009A 76A0 230 JF1 STRT3 IF NO SAFETY S WAND IS STP TIME CONT 009C 2482 231 STRT1: imp OUTT;OTHERWISE J. TO VEND? 009E 769C 232 STRT2: JF1 SRTR1;IF SAFETY SW AND START TIME CONT 233;OTHERWISE J TO 1 VEND? OOAO Fl 234 STRT3: mov &CR 1 00A1 12B4 235 JBO STRT6;IF INCR 00A3 32A7 236 JB1 STRT4;IF DECR 00A5 2482 237 imp OUTT;OTHERWISE J. TO VEND? 00A7 76B6 238 STRT4: JF1 STRT7;IF STOP TIME AND DECR J 00A9 B80D 239 mov RO,ODH;IF STRTTIME AND DECR CHECK IF EQUAL 240;TO ZERO OOAB 241 mov &CRO OOAC 96B2 242 JNZ STRT5 OOAE 18 243 INC Ro 0) G) W NJ 0 00 W "APPENDIX A" (contd.) LOC oBJ SEG SOURCESTATEMENT
OOAF FO 244 mov A,CRO OOBO C69c 245 iZ STRT1;IF ZERO THEN DO NOT DECR 00B2 04D6 246 STRT5 imp STRT8;OTHERWISE DECR 00B4 76B2 247 STRT6 JF1 STRT5;IF A STOP TIME AND INCR J.
00B6 B80D 248 STRT7 mov R0,0131-1;IF A START TIME AND INCR AND STOP DECR CHECK 249;IF STOP=START 00B8 B906 250 mov R1,CLK1 OOBA FO 251 mov kCRO 0013B Al 252 mov CR1^;LOC(CI(L)=LOC(D) OOBC 18 253 INC RO OOBD 19 254 INC Rl OOBE FO 255 mov A,CRO 00[3F Al 256 mov CR1^ 1OC(CLI(+l)=LOC(E) ooCo 85 257 CPL Fl;CHANGE FROM START TO STOP TI M ES 258;OR FROM STOP TO START 00C1 34FC 259 CALL RTIME 00C3 B5 260 CPL Fl 00C4 B80D 261 mov RO,ODH;PTR TO RTIME RESULT 00C6 B906 262 mov R1,CLK1 00C8 BA02 263 mov R2,82 OOCA FO 264 STRT77 mov &CRO 00C13 37 265 CPL A 0OCC 17 266 INC A OOCD 61 267 ADD A,CR1 IF NOT EQUAL J OOCE 96D6 268 JNZ STRT8 OODO 18 269 STRT76 INC RO OOD1 19 270 INC Rl 00132 EACA 271 DJNZ R2,STRT77 OOD4 04FE 272 imp STRT8;IF BOTH EQUAL J. OUT OOD6 3488 273 STRT8 CALL RAMPTR;GET PIR TO RAM OOD8 BA02 274 mov R2,2;SET LP CTR OODA FO 275 mov A,CRO;CHECK IF RAM EQUAL TO 799 00D13 34F7 276 CALL LOADHU OODD 890c 277 mov R1,OCH OODF 21 278 XCH A,CP 1 OOEO 12E7 279 JBO INCCTS;IF INCR J 00E2 21 280 XCH kCR1 00E3 72EA 281 JB3 STRT88 AF SIGN NEG AND DECR CHECK 00E5 2400 282 INCCT1 imp INCDEC;IF SIGN POS AND DECR DON'T WORRY 00E7 21 283 INCCTS XCH A,CP 1 G) M N) ---APPENDIXA" (contd.) LOC OBJ SE0 SOURCESTATEMENT
00E8 72E5 284 JB3 INCCT1 3F SIGN NEG AND INCR DON'T WORRY OOEA 5307 285 STRT88 AHL A,0007H;DON'T WORRY ABOUT THE SIGN OOEC 03F9 286 ADD A,OF9H OOEE 96E5 287 JNZ INCCT1 OOFO C8 288 DEC RO OOF 1 B13F7 289 mov R3,13F7H 3S RAM EQUAL TO 79 00F3 FO 290 STRT9 mov &CRO 00F4 34F7 291 CALL LOADNU 00F6 613 292 ADD AP3 00F7 96E5 293 JNZ INCCT1 00F9 BBOO 294 mov P3,001-1 00F13 C8 295 DEC RO OWC EAF3 296 WNZ R2,STI1T9 OOFE 2482 297 STRTO imp OUTT 3F EQUAL J TO VEND? 3488 298 INCDEC CALL RAMPTR 0102 FO 299 mov A,C130 0103 34E7 300 CALL LOADNU 85 301 CLR FO;NEGATIVE NUM 0106 7209 302 JB3 NEGRAM 0108 95 303 CPL FO;POSITIVE NUM 0109 B98C 304 NEGRAM mov R1,00CH 01 OB Fl 305 mov A,CR1;l30=1 INC oloc 1224 306 JEO INCEM3;l30=0 DEC 010E 95 307 CPL FO 01OF F8 308 INCRAM mov A,110;CHECK=0 BA03 310 mov R2,3 0113 FO 311 INCRM1 mov &CRO 0114 34E7 312 CALL LOADNU 0116 9622 313 JNZ INCRM2 0118 C8 314 DEC RO 0119 EA13 315 WNZ R2,1NCI1M1 011B FE 316 mov A,116 ollc A8 317 mov RO,A 011D 2308 318 mov A,08H 011F 1453 319 CALL LODRAM 0121 95 320 CPL FO 321;AND INCR 0122 FE 322 INCRM2 mov A,116 0123 A8 323 mov RO,A 0124 BBOA 324 INCRM3 mov R3,OAH m G) m N ---APPENDIXA(contd.) LOC OBJ SEO SOURCESTATEMENT
0126 B62A 325 JFO INCRM4 0128 131300 326 mov R3,OOH;DECR RAM 012A FO 327 INCRM4 mov A,C130 012B 34E7 328 CALL LOADNU 012D 5308 329 ANIA,081-1;STORE SIGN 012F AE 330 mov R6,A C8 331 DEC Ro 0131 C8 332 DEC RO;POINT AT LEAST SIGN DIGIT 0132 97 333 CLR c 0133 BA02 334 mov R2,2;SET LP CTR FO 335 INCRM5 mov A,CRO 0136 34E7 336 CALL LOADNU 0138 713 337 ADDC A,P3;ADD OR SUB RAM 0139 57 338 DA A 01 3A 37 339 CPL A 013B 923E 340 JB4 INCRM6 013D A7 341 CPL c;SET CARRY IF OVERFLOW 013E 37 342 INCRM6 CPL A 013F 1453 343 CALL LODRAM;STORE DIGIT AWAY 0141 18 344 INC RO 0142 B64A 345 JFO INCRM7;IF INCR SET R3=0 0144 BB09 346 mov R3,09H 0146 EA35 347 WNZ R2,1NCRM5;DO NEXT DIGIT 0148 2450 348 imp INCRM8 014A E672 349 INCRM7 JNC ACC 1 014C 131300 350 mov R3,000;RESET R3=0 014E EA35 351 WNZ R2,1NCRM5 FO 352 INCRM8 mov A,C130;DO MED WITH SIGN 0151 34E7 353 CALL LOADNU 0153 5307 354 ANI- A,07H 713 355 ADDC A,R3 ADD R3 TO DIGIT NOT INC CARRY 0156 57 356 DA A 0157 5307 357 ANI- A,:P07H;STRIP SIGN BIT 0159 4E 358 ORL A,R6;SET SIGN BACK 01 5A 1453 359 CALL LODRAM 01 5C F8 360 mov &RO 01 5D AE 361 mov R6A 015E FO 362 mov A,CRO 01 5F 34E7 363 CALL LOADNU;CHECK TO SEE IF HAVE -0 364 AF SO SET IT TO +0 C.0 NJ 0 m W m "APPENDIX A" (contd.) LOC 081 SEO SOURCE S TA TEMENT 0161 5307 365 ANL A,07H 0163 BA03 366 mov R2,03 9672 367 INCRM9 JNZ ACC1 0167 C8 368 DEC RO 0168 FO 369 mov &CRO 0169 34E7 370 CALL LOADNU 0168 EA65 371 D.INZ RZINCRM9 016D FE 372 mov AM6 01 6E A8 373 mov RO,A 1453 375 CALL LODRAM 0172 23F0 376 ACC1 mov A,OFOH 0174 61) 377 ADD AM5 C678 378 iz oum 0177 CD 379 DEC R5 0178 34C3 380 OUM CALL CHEKSUM;UPDATE CHKSUM 017A F8 381 mov AfflO;GET PTR 017B AI 382 mov CR 1A;STORE CHKSUM AWAY 017C B80C 383 mov RO,CH;RESET CHN PTR 017E FC 384 mov A,R4 017F AO 385 mov CROA 0420 386 imp VNTST 0182 B80C 387 OUM mov RO,OCH 0184 FC 388 mov AM AO 389 mov CROA 0186 041E 390 imp VEND? 391;RAMPTR 392;ROUTINE TO GET RAM TABLE PTR 393;REGISTER NEEDED R4 WITH CHN PTR 394; PTR RETURNED IN ACC 395;REGISTERS CHANGED ACC AND R2 396 0188 FC 397 RAMPTR mov AM;GET RAM TABLE PTR 0189 530F 398 ANI- A,OFH 018B 17 399 INC A 018C AA 400 mov R2,A 018D 230F 401 mov A,RAM-1;STARTING LOC OF RAM-4 018F 0303 402 RAMI ADD A,03 0191 EA8F 403 WNZ R2,RAM 1 0193 A8 404 mov RO^;RO HAS PTR TO THE RAM 0194 93 405 RETR "APPENDIX A- (contd.) LOC oBJ SEG SOURCESTATEMENT
406;DISPI-M ROUTINE 407;THIS ROUTINE DISPLAYS THE DIGITS ON TO THE 408;LED DISPLAY 409;REGISTERS NEEDED: DIGITS IN E AND F 410;REGISTERS ALTERED: ACC, RO,R1,112,R3 411 FD 412 DiSPLM: MOV A,R5 0196 AB 413 MOV R3,A;REGISTER FOR ACCELERATE 0197 BA04 414 DISPL4 MOV R2,4;SET UP LOOP COUNTER 0199 B90C 415 MOV R t0CH 01913 B8F8 416 MOV RO,OF81-1;TURN FIRST DIGIT ON 01 9D F8 417 MOV A,130 01 9E 39 418 DISPL1 OUTL P l^ JURN ON DIGIT 01 9F 85 419 CRL FO;GET DIGIT 01A0 FA 420 MOV M2;IF GETTOP NIBBLE 421;IF EVEN GET BOTTOM NIBBLE 01A1 12A5 422 JBO DISPL2;1FODDJ 01A3 19 423 INC Rl;IF EVEN INC Rl 01A4 95 424 CPL FO 01A5 95 425 DISPL2 CPL FO 01A6 Fl 426 MOV A,CR1;LOAD A WITH BYTE 01A7 34E3 427 CALL LOADN2 01A9 E3 428 MOVP3 A,CA A=MUSEGT+M 01AA 02 429 OUTL BUSA 01AB 2A 430 XCH Affl2;HAVE A DELAY 01AC BA50 431 DISPL3 MOV R2,0050H OlAE EAAE 432 DISPL5 DJNZ R2,1)1SPI-5 01 BO 2A 433 XCH A,132;RESTORE R2 01B1 27 434 CLR A 01B2 62 435 MOV TA 01B3 37 436 CPL A 01 B4 02 437 OUTL BUS,A 01B5 9A02 438 ANI- P2,821-1 JURN RELOAD OFF 01 B7 97 439 CLR c 01 B8 A7 440 CPL c 01 B9 F8 441 MOV AfflO 01 BA 53EF 442 ANI- A,OEF1-1 TURN BIT 4 OFF 01 BC 67 443 RRC A 01 BD A8 444 MOV ROA;SET UP FOR NEXT DIGIT 01 BE EA9E 445 DJNZ R2,DiSPL1 IF R2 NOT EQUAL TO ZERO i N) c) m 1 "APPENDIX A" (contd.) LOC oBJ SE0 SOURCESTATEMENT
01 co EB97 446 DJNZ R3,1)1SPI-4;IF R3 NOT EQUAL TO ZERO J 01C2 93 447 RETR 448;CHI(SUM ROUTINE 449;ROUTINE TO CHECK RAM 450;REGISTERS CHANGED: ACC,FlO, AND Rl 451 01C3 BA30 452 CHKSUM MOV R2,0301-1;SET LOOP CTR 01C5 B93F 453 MOV R1,83F1-1;SET INITIAL PTR 01C7 27 454 CLR A 01C8 61 455 CHKSU1 ADD &CR1 fflO=RO+CR 1 01C9 C9 456 DEC R 1 01CA EAC8 457 WNZ R2,CHKSU1 oicc A8 458 MOV RO^ 01 CD B90F 459 MOV R1mCSS 01CF Fl 460 MOV A,C131;CHECK CHKSUM 01DO 37 461 CPL A 01D1 17 462 INC A 01D2 68 463 ADD A,130 IS CHKSUM PREV=CHI(SUM NOW 01D3 93 464 RETR 465;SENCON 466;ROUTINE TO CHECK IF CREDIT IS GIVEN 467;INPLIT TO ROUTINE: TO=0 MULTIPRICE 468 TO=1 SINGLE PRICE 469 Tl =0 IF COIN 470 Tl =1 NO COIN 471;REG EFFECTED: ACC, RO, BIT7 OF R4 01D4 26DE 473 SENCON JNTO SENC02;MULTIPRICE 01D6 BB4B 474 MOV R3m04BH;DEBOU SWITCH OF CREDIT 01D8 56E2 475 SENC04 JT1 SENC03;NO COIN SINGLE PRICE 01DA EBD8 476 DJNZ 133,SENCO4 OlDC 9AFD 477 ANIP2,OOFDH JURN CREM OFF IF COIN 01DE FC 478 SENC02 MOV A,R4 OlDF 4380 479 ORL A,0801-1;SET BIT 7 OF R4 FOR CREDIT 01E1 AC 480 MOV R4,A 01E2 93 481 SENC03 RETR 482;LOADNU ROUTINE 483;ROUTINE TO LOAD NUMBER INTO ACC 484;REGISTERS NEEDED: ACC, F 1 AND FO 1 FOR START 0 FOR STOP 485;REGISTERS CHANGED: ACC 486 N hi G) W N) N N ---APPENDIXA" (contd.) LOC 01E3 01E5 01 E7 01E9 01EA 01 EB 01ED 01 EE 01EF 01F1 01F2 01 F3 01 F5 01 F6 01F7 01 F8 01F9 01 FA 01 F13 01 FC 01 FE 0200 0202 0203 0205 OBJ B6EA 24E9 76EA 47 47 530F 93 2A 12F5 2A 31 24FA 2A 47 31 Al 19 18 93 3488 B90D BA03 FO 34E7 85 SEG 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513;ROMRAM THE ROUTINE TO ADD ROM TO RAM 514;THE RESULTS ARE STORED IN LOC E AND F 515;REGISTERS NEEDED: R4 WITH CHN PTR 516 Fl=l FOR STOP 517 0 FOR START 518;REGISTERS CHANGED: ACC,130,Rl,R2,R3, AND FO LOC E AND F 519 520 RTfME 521 522 TENS 523 524 525 526TENSI SOURCESTATEMENT
LOADN2 JFO LOADN 1 imp LOADN3 LOADNU JF1 LOADN 1 LOADN3 SWAP A LOADN 1 SWAP A ANI- A,OFH RETR LOADEF ROUTINE TO LOAD E AND F REG;REGISTERS NEEDED: ACC WITH DIGIT R2=1-PCTI1; CHANGED: LOC E AND F, ACC. R2,R 1 LOADEF LOADE1 XCH J130 XCH XCHD imp SWPINC XCH SWAP XCHD mov INC INC RETR ROMRAM CALL RAMPTR TENS ROUTINE TO TAKE TEN'S COMPLEMENT OF RAM mov mov mov CALL CLR A,R2 SWPiNC A,R2 A,C131 LOADE 1 A,112 A &CR1 CF11,A R 1 RO Rt0DH R2,03 A,CRO LOADNU FO bi W IF STOP PUT DIGIT IN LOW NIBBL ROUTINE TO GET RA PTR LSD LOCATION TO STORE DIGIT;LOOP COUNTER a) W N 0 co W hi W "APPENDIX A- (contd.) LOC 081 SEG SOURCESTATEMENT
0206 7209 527 JB3 TENS2;POSITIVE FO=1 0208 95 528 CPL FO;NEGATIVE FO=0 0209 97 529 TENS2 CLR c 020A A7 530 CPL c;SET CARRY FIRSTTIME THRU 020B C8 531 DEC RO 020C C8 532 DEC RO 020D FO 533 TENS3 mov A,CRO;PTR TO LSD AND GET DIGIT 020E 34E7 534 CALL LOADNU 0210 EA17 535 DJNZ R2JENS41;IF NOT MED J 0212 1A 536 INC R2 0213 5307 537 ANI- A,071-1 AF IT IS CLEAR SIGN 0215 4418 538 imp TENS42 0217 1A 539 TENS41 INC R2 0218 B61D 540 TENS42 JFO TENS5;POSITIVE NUMBER DON'T COMPL 021A 37 541 CPL A 021B 130A 542 ADDC A,OAH;FORM TEN'S COMPLEMENT 021D 1A 543 TENS5 INC R2 021E 34EE 544 CALL LOADEF 0220 CA 545 DEC R2 0221 97 546 CLR c 0222 EAOD 547 DJNZ R2JENS3;R2=0 IF YES DON'T J 0224 27 548 CLR A 0225 BE29 549 JFO TENS7 0227 2390 550 mov A,90H 0229 31 551 TENS7 XCHD A,CR 1;CLEAR MSD 022A Al 552 mov C131,A 022B FC 553 RTIME1 mov A,R4;GET ROM TABLE POINTER 022C 530F 554 ANI- &OEH 022E AA 555 mov R2,A;JUST GET LOWER 4 BITS 022F 2306 556 mov A,TIMES-4;GET STARTING LOC OF ROM-1 0231 1A 557 INC R2 0232 0304 558 RTIME2 ADD A,04 0234 EA32 559 DJNZ R2,RTIME2 0236 A8 560 mov ROA;RO HAS STARTING LOC OF LSD OF ROM 0237 97 561 CLR c 0238 B90D 562 mov R 11,0DH;LSD LOC OF TEN'S COMPLEMENT 023A BA04 563 mov R2,4;LOOP COUNTER 023C Fl 564 RTIME3 mov ACR 1;GET DIGIT 023D 2A 565 XCH A,R2 023E 1244 566 JBO SWPP 0240 2A 567 XCH AR2;IF EVEN GET LOWER 4 BITS IN UPPER m -PI hi -P.
---APPENDIXA" (contd.) LOC OBJ SEG SOURCESTATEMENT
0241 47 568 SWAP A 0242 4445 569 imp RTIME4 0244 2A 570 SWPP XCH A,R2;IF ODD GET UPPER 4 BITS IN UPPER 0245 53F0 571 RTIME4 ANI- A,OFOH 0247 AB 572 RTIME5 mov R3,A;R3 GET DIGITS OF TEN'S COMPL 0248 F8 573 mov A,RO;GET STOP START TIME IN CRO 0249 E3 574 MOVP3 A,CA 024A 764D 575 JF1 RTIME6;IF NOT STOP PUT START IN UPPER 4 BITS 024C 47 576 SWAP A 024D 430F 577 RTIME6 ORL A,Offi 024F 713 578 ADDC A,R3;A NOW HAS SUM OF ROM AND RAM 0250 53F0 579 ANI- A,o0F01-1 0252 57 580 DA A 0253 47 581 SWAP A;UPPER 4 BITS NOW IN LOWER 0254 34EE 582 CALL LOADEF 0256 EA3C 583 WNZ R2,11TIME3;IF R2=0 RET 0258 93 584 RETR 585;VEND 586 AN THIS STATE CHECK TO SEE IF SELECTION 587;MADE IF SO PROCEED TO VEND SELECTION 588 0259 041 E 589 BACK1 imp VEND? 025B BB20 590 VEND mov R3,0020H;SETUP DEBOU LOOP 025D 23EF 591 VEND1 mov A,COL1;CHECK FOR FIRST ROW OF SWITCHES 025F 39 592 OUTL P 1,A 0260 09 593 1 N A,P 1 0261 530F 594 ANL A,OFH 0263 AD 595 mov F15,A 0264 23DF 596 mov A,-ACOL2;CHECK SECOND ROW FOR A SELECTION 0266 39 597 OUTL P 1,A 0267 09 598 IN AP 1 0268 530F 599 ANI- A,OFH 026A 47 600 SWAP A 026B 4D 601 ORL A,R5 026C A8 602 mov RO,A;SET UP TO DEBOU SWITCHES 026D 23E0 603 mov A,:p0E0H 026F 613 604 ADD A,R3 JS THIS FIRST TIME THRU 0270 9674 605 JNZ DEBOU2 0272 F8 606 mov AR0 0273 AA 607 mov F12,A;STORE INITIAL INPUT IN R2 N al a) m N rli al "APPENDIX A" (contd.) LOC OBJ SEG SOURCESTATEMENT
0274 F8 608 DEBOU2 MOV A,110 0275 37 609 CPL A 0276 17 610 INC A 0277 6A 611 ADD A,112;IS INPUT SAME AS INITIAL INPUT 0278 965B 612 DEBOU3 JNZ VEND 027A EB5D 613 WNZ R3,VEND1 027C FA 614 mov A,R2 027D 37 615 CPL A 027E BB07 616 SELCOD MOV R3,071-1;PRESET R3 0280 1287 617 SELC01 J130 SELC02;IF BIT SET SELECTION MADE 0282 77 618 RR A 0283 EP80 619 DJNZ R3,SELC01;f33=R3-1 0285 4459 620 imp BACK1 0287 328F 621 SELC02 JB1 SELC05 AF BIT SET THEN SELECT CLS 0289 27 622 SELC04 CLR A 028A 413 623 ORL A,133 028B 47 624 SWAP A 028C AC 625 MOV R4,A;PUT SELCOD IN R4 028D 4491 imp SELC06 028F 27 627 SELC05 CLR A 0290 AC 628 mov R4,A 0291 27 629 SELC06 CLR A 0292 62 630 mov T^ 0293 02 631 OUTL BUS,A 0294 B90C 632 mov R t0CH 0296 Al 633 mov CIll,A 0297 9A01 634 ANI- P2,001 H JURN ALL OFF EXC RELOAD 0299 AD 635 mov R5,A 029A AE 636 mov R6,A 029B AF 637 mov R7,A;SET CLOCK=0 029C A5 638 D032 CLR Fl 029D FC 639 D0320 mov A,R4 029E 430F 640 ORL A,Offi;SET CH N PTR= 15 0280 AC 641 mov R4,A 02A1 34FC 642 D0321 CALL RTIME 02A3 34D4 643 CALL SENCON 02A5 BB03 644 D0311 mov R3,03H;SET UP TO DEBOU XCR XS 02A7 2350 645 D0312 mov AROW;CHECK XCR OR XS 02A9 39 646 OUTL P 1A 02AA 09 647 1 N &P 1 N 0) G) m N) 0 co W K) m 1--- "APPENDIX K' (contd.) LOC OBJ SEO SOURCESTATEMENT
02AB 2A 648 XCH A,P2 02AC 37 649 CPL A 02AD 17 650 INC A 02AE 6A 651 ADD A,R2 02AF 96A5 652 JNZ D0311 02B1 EBA7 653 DJNZ R3,1)0312 02B3 2A 654 XCH A,R2 02B4 37 655 COP A 02B5 D21313 656 JB6 XSUG;XSLIGAR SELECTED 02B7 92C1 657 SETT JB4 XCREM;XCREAM SELECTED 02B9 44C5 658 imp D03211 02BB 2D 659 XSUG XCH A,135;SET B6 OF R5 02BC 4340 660 ORL A,040H 02BE 2D 661 XCH A,R5 02BF 44B7 662 imp SETT 02C1 FD 663 XCREM mov A,115;SET B7 OF R5 02C2 4380 664 ORL &000H 02C4 AD 665 mov RM 02C5 B806 666 D03211 mov RO,06H 02C7 B90D 667 mov Rl,ODH 02C9 BA02 668 mov R2,02H 02CB FO 669 D0322 mov &CRO;IS Cl-K=TIME OF CHAN 02CC 37 670 CPL A 02CD 17 671 INC A 02CE 61 672 ADD &CR1 02CF 96FE 673 JNZ D03299 02D1 18 674 INC RO 02D2 19 675 INC Rl 02D3 EACB 676 DJNZ R2,D0322 02D5 85 677 CLR FO 02D6 A8 678 mov RO,A 02D7 FC 679 mov A,R4 02D8 530F 680 ANI- A,OOFH;GET CHN NUMBER STORE IN Rl 02DA A9 681 mov R l^ 02DB 03F8 682 ADD A,OF8H;SEE IF BOTTOM OR TOP 8 CHN 02DD 92E3 683 JB4 D0323;IF LOWER J AROUND 02DF 95 684 CPL FO;SET FO= 1 TO SHOW THAT UPPER 02E0 A9 685 mov RtA;SET Rl TO CHN-8 02E1 B808 686 mov RO,08;SET RO=8 TO PT. TO UPPER SEL CD 02E3 F9 687 D0323 mov A,Rl N -.i G) m m "APPENDIX K' (contd.) LOC OBJ SE0 SOURCESTATEMENT
02E4 AA 688 mov R2,A;STORE CHN PTR IN R2 02E5 FC 689 mov A,R4;GET SEL CODE 02E6 5370 690 ANI- A,0070H 02E8 47 691 SWAP A 02E9 68 692 ADD A,RO 02EA 034A 693 ADD kOVENDC 02EC E3 694 MOM A,CA 02ED 19 695 INC Rl 02EE F7 696 D0324 RLC A 02EF E9EE 697 WNZ R1,D0324;GET PROPER BIT SELECT CODE IN BIT 7 02F1 E6FE 698 MC D03299;IF NOT PROPER BIT J. OUT 02F3 FA 699 mov A,R2 02F4 03FD 700 ADD A,00F131-1 02F6 96FC 701 JNZ D0355 02F8 B6FC 702 JFO D0355 AF UPPER 8 J. AROUND 02FA 645A 703 imp NEXTP 02FC 645E 704 D0355 imp D0325 02FE 64B3 705 D03299 imp D0329 706 707 NEXTP 708 035A 709 ORG 035AH 035A FD 710 NEXTP mov A,R5 035B 4308 711 ORL A,00081-1;SET BIT 3 OF R5 TO 1 FOR LONG CYC 035D AD 712 mov R5A 035E 7677 713 D0325 JF1 XTR1 036A B68B 714 XTR7 JFO XTR9 0362 FA 715 mov A,R2;DECIDE IF XS CHAN 0363 C66A 716 iz XTR2 0365 07 717 DEC A 0366 C670 718 iz XTR3;DECIDE IF XCR CHAN 0368 648B 719 imp XTR9 036A 95 720 XTR2 CPL FO;PT TO SUGAR 036B FD 721 mov AR5 036C D28B 722 JB6 XTR9 036E 64B3 723 imp D0329 0370 BA07 724 XTR3 mov R2,o07H;SET R2 TO PT. TO LIGHT CHAN 0372 FD 725 mov A,R5 0373 F28B 726 JB7 XTR9 0375 64B3 727 imp D0329 NJ 00 G) m m bi 00 ---APPENDIXA- (contd.) LOC OBJ SEO SOURCESTATEMENT
0377 B685 728 XTR1 JFO XTR4 0379 23F9 729 mov A,OF9H 037B 6A 730 ADD A,R2 037C 9660 731 JNZ XTR7;CREME SELECTED 037E FD 732 mov A,115 037F F.283 733 JB7 XTR8 0381 6460 734 imp XTR7;CREME NOT SELECTED 0383 64B3 735 XTR8 imp D0329 0385 FA 736 XTR4 mov A,R2 0386 968B 737 JNZ XTR9;SUGAR NOT SELECTED J 0388 FD 738 mov A,115 0389 D283 739 JB6 XTR8 038B 95 740 XTR9 CPL FO 038C 1A 741 INC R2 038D 2380 742 mov A,OOOH;DECIDE WHICH OUTPUT TO TURN ON 038F E7 743 D03255 RL A 0390 EA8F 744 DJNZ R2,D03255 0392 B90C 745 mov R1,=A0CH 0394 AA 746 mov R2,A 0395 B69A 747 JBO D0326;IF LOWER 8 AFFECT P2 0397 Fl 748 mov A,CR 1 0398 649B 749 imp D0327;GET WHATS ON P 1 039A OA 750 D0326 IN A,P2;GET WHATS ON P2 039B 2A 751 D0327 XCH A,R2 039C F2A5 752 JB7 NMEM3;IF LIGHT OR SANKA NO MEM3 CHANGE 039E 12A5 753 iBo NMEM3;IF SUGAR NO MEM3 CHANGE 03A0 CD 754 DEC R5 03A1 76AA 755 JF1 D0328 03A3 1D 756 INC R5 03A4 1D 757 INC R5 03A5 76AA 758 NMEM3 JF1 D0328;IF STOP TIME J 03A7 4A 759 OPL A,112;SET UP A FOR SEND OUT TO PORT 03A8 64AC 760 imp D03281 03AA 37 761 D0328 CPL A 03AB 5A 762 ANL A,R2 03AC B6B2 763 D03281 JFO D03282;CHECK IF LOWER 8 J 03AE Al 764 mov CP 1,A 03AF 02 765 OUTL BUS,A 03BO 64B3 766 imp D0329 03B2 3A 767 D03282 OUTL P2,A N) (0 G) co N 0 co W N W "APPENDIX A- (contd.) LOC oBj SEO SOURCESTATEMENT
03B3 B967 768 D0329 mov R1,0671-1 03B5 E9B5 769 DELAY DJNZ R I,DELAY 03B7 F9 770 mov A,Rl 03B8 62 771 MOV TA TA 03B9 FC 772 mov AM 03BA 530F 773 ANI- A,Offi 3S R4=0 03BC 96C0 774 JNZ D03298 03BE 64C3 775 imp D03291 03C0 cc 776 D03298 DEC R4 03C1 44A1 777 imp D0321 03C3 76C8 778 D03291 JF1 ENDD:IF J. STOP TIMES QUIT OTHERWISE CON 03C5 B5 779 CPL Fl 03C6 449D 780 imp D0320 03C8 FC 781 ENDD mov Affi4;SET CHN TO VEND CH 03C9 4302 782 ORL A,OVENCHA 03CB AC 783 mov R4,A 03CC 34FC 784 CALL R RTIME 03CE BA02 785 mov R2,2 03DO B90D 786 mov R 1,ODH 03D2 B806 787 mov 130,006 03D4 F 1 788 ENDD1 mov A,C131 03D5 37 789 CPL A 3S CLOCK=VENCHA TIME IF 790;SO QUIT 03D6 17 791 INC A 03D7 60 792 ADD A,CRO 03D8 96E1 793 JNZ CLKIN 03DA 19 794 INC Rl 03DB 18 795 INC RO 03DC EAD4 796 DJNZ 132,ENDD1 03DE 27 797 CLR A 03DF 040C 798 BACK imp START1 03E1 FE 799 CLKIN mov A,R6 03E2 0310 800 ADD A,:t_0 1 OH;INCR THE CLOCK 03E4 57 801 DA A 03E5 AE 802 mov R6,A 03E6 E6FE 803 JNC CLKIN2 03E8 26ED 804 JNTO CLKIN4;IF MULTIPRICE J AROUND 03EA FC 805 mov A,R4;IS CREDIT MADE 03EB F2EF 806 JB7 CLKIN3 3F SO JUMP AROUND 03ED 8A02 807 CLKIN4 ORL P11,021-1 3F NOTTURN CREM ON A, W 0 G) W bi t, ---APPENDIXA- (contd.) LOC OBJ SEO SOURCESTATEMENT
03EF FF 808 CLKIN3 mov A,R7 03F0 0301 809 ADD A,0 1 H 03F2 57 810 DA A 03F3 AF 811 mov R7^ 03F4 37 812 CPL A 03F5 92FE 813 JB4 Cl-KIN2 03F7 FD 814 mov A,R5 03F8 530F 815 ANL A,OFH 03FA 03FF 816 ADD A,OFFH 03FC C61)F 817 iz BACK 03FE 449C 818 CLKIN2 imp D032 819;COPYRIGHT 1978 AMF INCORPORATED 820 END TIME LONGER THAN 10 SEC NOT DO NOT CHECK FOR SHORT CYC IS CHECK FOR SHORT CYCLE AF MEM3=1 THEN J OUT;IT ALSO MEANS THAT IS SHORT CYCLE ACC 0084 ACC1 0172 BACK 03DF BACK1 0259 CHAN 005B CHKSU 1 01C8 CHKSUM 0103 CLK1 0006 CLKIN 03E1 CLKIN2 03FE CLKIN3 03EF CLKIN4 03ED COL1 OOEF COL2 OODF COL3 OOAF COL4 007F css OOOF DEBOU2 0274 DEBOU3 0278 DEC1 007F DELAY 0385 DIGITS 0300 DISPL1 01 9E DISPL2 01A5 DISPL3 01AC DISPL4 0197 DISPL5 OlAE DISPLM 0195 D031 1 02A5 D0312 02A7 D032 029C D0320 029D D0321 02A1 D0321 1 02C5 D0322 026B D0323 02E3 D0324 02EE D0325 035E D03255 038F D0326 039A D0327 039B D0328 03AA D03281 03AC D03282 03B2 D0329 03B3 D03291 03C3 D03298 03C0 D03299 02FE D0355 02FC ENDD 03C8 ENDD1 03D4 INC1 0077 INCCT1 00E5 INCCTS 00E7 INCI3EC 0100 INCRAM 01OF INCRM1 0113 INCRM2 0122 INCRM3 0124 INCRM4 012A INCRM5 0135 INCRM6 01 3E INCRM7 01 4R INCRMS 0150 INCRM9 0165 iNTR 0005 INTRPT 0003 LOADE1 01 FA LOADEF OlEE LOADN 1 01 EA LOADN2 01 E3 LOADN3 01E9 LOADNU 01 E7 LODRA1 0057 LODRA2 005A LODRAM 0053 LPP 0090 NEGRAM 0109 NEXTP 035A NMEM3 03A5 OUTT 0182 OUM 0178 RAM 0010 RAM1 01 8F RAMCL1 0034 RAMCLR 0032 RAMPTR 0188 ROMTIM 030A ROW 0058 RTIME OlFC RTIME1 022B RTIME2 0232 RTIME3 023C RTIME4 0245 RTIME5 0247 RTIME6 024D SELC01 0280 SELC02 0287 SELC04 0289 SELC05 028F SELC06 0291 SELCOD 027E SENC02 01 DE SENC03 01 E2 SENC04 01 D8 SENCON 01D4 SETT 02B7 STAR 11 0007 START 0000 START1 OOOC START3 0017 START4 004F STOPP 0087 STRTO OOFE STRT1 009C STRT2 009E STRT3 OOAB STRT4 00A7 STRT5 00B2 STRT6 00B4 STRT7 00B6 STRT76 OODO STRT77 OOCA STRT8 OOD6 STRT88 OOEA STRT9 00F3 STRTT 0086 SWPINC 01F5 SWPP 0244 TENS 01FE TENS1 0205 TENS2 0209 TENS3 020D TENS4 0217 TENS42 0218 TENS5 021 D VEND? 001 E VENDC 004R VENDCO 034A VNTS 1 002A VNTST 0020 XCREM 02C1 XSUG 02BB XTR1 0377 XTR2 036A XTR3 0370 XTR4 0385 XTR7 0360 XTR8 0383 XTR9 038B G) m N 0 4 0 00 W W 32 GB 2 107 083 A 32

Claims (11)

Claims
1. A detachable service module for use with program controlled apparatus of the type having storage means for storing program data and modifiable storage means for storing data including timing data, said service module comprising a hand held unit, containing switch means operable to modify only said timing data in dependence on the period of actuation of said switch means, display means for monitoring the timing data modified by said switch means and an electrical connector connected with said switch means, said connector being releasably connectable with said storage means, whereby the timing data content of said storage means may be modified by said switch means only while said service module is connected with said storage means by said connector and in dependence on the 10 period of actuation of said switch means, said program data other than said time data being unmodifiable by said service module.
2. A module as claimed in claim 1, wherein the switch means cooperates with said storage means whereby the period of actuation can be determined by individual accumulated actuating periods of said switch means.
3. A module as claimed in claim 1 or 2, wherein means are provided whereby the modification 15 rate of said timing data may be varied whilst said switch means is actuated.
4. A module as claimed in claims 1, 2 or 3, including means associated with said program controlled apparatus for periodically testing the state of said switch means when said service module is connected with said storage means, and for modifying the content of said storage means only in 20 response to operation of said switch means during said testing.
5. A module as claimed in any one of claims 1 to 4, wherein said switch means comprises means for selecting a predetermined location within said modifiable storage means, and said display means comprises means for displaying an identification of the location selected.
6. A module is claimed in any one of claims 1 to 5 wherein said switch means comprises separate 25 switches for increasing and decreasing the data content of said modifiable storage means.
7. A module as claimed in any of claims 1 to 6, wherein said modifiable storage means stores first and second separate data items, and wherein said switch means comprises a plurality of separate switches and means responsive to operation of one of said switches for allowing modification of said first data item and to non-operation of said one switch for allowing modification of said second data item.
a J Ii i
8. A module as claimed in any one of claims 1 to 7, wherein said modifiable storage means stores 30 data representative of a plurality of times at which events are to occur during operation of said program controlled apparatus, said program controlled apparatus including means for repetitively executing a sequence of operation steps, at least one of said steps testing whether said service module is connected with said storage means, and a subsequent step for selectively modifying said data only if said service module is connected.
9. A sequence controlled for producing a plurality of signals at programmable times, comprising first and second storage means, said first storage means being non- alterable and storing representations of a plurality of programmed operations to be performed in sequence, said second means being alterable and storing representations of the variable portion of a plurality of programmable times, timing means for timing a cycle of operation of said sequence controller, and for 40 producing signals corresponding to time intervals within such cycle of operation, and a detachable service module comprising a hand held unit containing switch means operable to modify only said timing data in dependence on the period of actuation of said switch means, display means for monitoring the timing data modified by said switch means and an electrical connector connected with said switch means and display means, said connector being releasably connectable with said storage means, whereby the timing data content of said storage means may be modified by said switch means only while said service module is connected with said storage means by said connector and in dependence on the period of actuation of said switch means, said program data other than said time data being unmodifiable by said service module.
10. A detachable service module substantially as described herein and as illustrated in the 50 accompanying drawings.
11. A sequence controller and detachable service module substantially as described herein with reference to the accompanying drawings.
Printed for Her Majesty's Stationery Office by the Courier Press, Leamington Spa, 1983. Published by the Patent Office, Southampton Buildings, London, WC2A 1AV, from which copies may be obtained 45; a 4
GB08212661A 1978-07-28 1982-04-30 Sequence controller with microprocessor Expired GB2107083B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US92890578A 1978-07-28 1978-07-28
AU76171/81A AU7617181A (en) 1978-07-28 1981-10-08 Service module

Publications (2)

Publication Number Publication Date
GB2107083A true GB2107083A (en) 1983-04-20
GB2107083B GB2107083B (en) 1983-08-17

Family

ID=34394674

Family Applications (2)

Application Number Title Priority Date Filing Date
GB7925394A Expired GB2028539B (en) 1978-07-28 1979-07-20 Sequence controller with microprocessor
GB08212661A Expired GB2107083B (en) 1978-07-28 1982-04-30 Sequence controller with microprocessor

Family Applications Before (1)

Application Number Title Priority Date Filing Date
GB7925394A Expired GB2028539B (en) 1978-07-28 1979-07-20 Sequence controller with microprocessor

Country Status (8)

Country Link
JP (2) JPS5520597A (en)
AU (2) AU520909B2 (en)
CA (1) CA1116729A (en)
DE (1) DE2930347A1 (en)
FR (1) FR2432184B1 (en)
GB (2) GB2028539B (en)
IT (1) IT1117395B (en)
SE (1) SE445396B (en)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4344000A (en) * 1979-03-21 1982-08-10 Dynascan Corporation Power circuit control programmable timer
JPS5657191A (en) * 1979-10-16 1981-05-19 Nippon Coinco Co Ltd Controller for vendor
EP0036734A1 (en) * 1980-03-20 1981-09-30 Vgl Industries Limited Improvements in and relating to vending machines
FR2480970B1 (en) * 1980-04-18 1987-03-20 Gaz De France COMPACT INDUSTRIAL PROCESSOR WITH PERMANENT PARAMETER SAVING
CA1171159A (en) * 1981-01-19 1984-07-17 Lee C. Verduin Control system for cold drink merchandising machine
JPS6222943Y2 (en) * 1981-02-04 1987-06-11
FR2503410B1 (en) * 1981-04-01 1985-11-08 Cognard Pierre METHOD AND DEVICE FOR DETERMINING AND REPRODUCING A DURATION SIGNAL
US4411139A (en) * 1981-04-09 1983-10-25 Amf Incorporated Defrost control system and display panel
JPS57205553A (en) * 1981-06-10 1982-12-16 Tsudakoma Ind Co Ltd Weft yarn selector of loom
JPS5810180U (en) * 1981-07-08 1983-01-22 株式会社クボタ vending machine
EP0069796A1 (en) * 1981-07-14 1983-01-19 Fuji Electric Co., Ltd. Automatic vending machine
DE3279953D1 (en) * 1981-09-29 1989-10-26 Mars Inc Coin handling apparatus
JPS5860393A (en) * 1981-10-07 1983-04-09 株式会社クボタ Vending machine
JPS58130332U (en) * 1982-02-26 1983-09-03 株式会社明電舎 Reduced type switch
JPS58193027A (en) * 1982-05-04 1983-11-10 Matsushita Electric Ind Co Ltd Heater
JPS59113876U (en) * 1983-01-19 1984-08-01 富士電機株式会社 Vending machine raw material mixing control device
DE3410082A1 (en) * 1984-03-20 1985-09-26 Robert Bosch Gmbh, 7000 Stuttgart CONTROL UNIT FOR MOTOR VEHICLES
DE8622141U1 (en) * 1986-08-19 1986-10-23 Schmidt, Bernhard, 5206 Neunkirchen Connector for fiber optic cables
US4902878A (en) * 1988-11-04 1990-02-20 General Electric Company Data entry and control arrangement for an appliance
FR2649808B1 (en) * 1989-07-11 1991-10-25 Crouzet Sa METHOD FOR STORING AND RETURNING A MODIFIABLE PROGRAM TO BE EXECUTED BY A PROCESSOR
JP2523191B2 (en) * 1989-09-01 1996-08-07 富士機械製造株式会社 Sequence control device
DE19705818A1 (en) * 1997-02-15 1998-08-20 Aeg Hausgeraete Gmbh Procedure for securing a household appliance against unintentional interference in the selected operating procedure
EP2959462A4 (en) * 2013-03-15 2017-02-01 Briggo, Inc. Automated beverage generating system and method of operating the same

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5321183B2 (en) * 1972-01-07 1978-06-30
JPS4996451A (en) * 1973-01-25 1974-09-12
US3969703A (en) * 1973-10-19 1976-07-13 Ball Corporation Programmable automatic controller
JPS50160967A (en) * 1974-06-19 1975-12-26
US3903515A (en) * 1974-09-05 1975-09-02 Tri Tech Method of and apparatus for controlling the performance of timed functions
US3959636A (en) * 1975-03-10 1976-05-25 Mangood Corporation Batching system
US4001557A (en) * 1975-10-14 1977-01-04 The United States Of America As Represented By The United States Energy Research And Development Administration Stored program digital process controller
JPS605963B2 (en) * 1977-04-30 1985-02-15 株式会社東芝 Control device
MX145266A (en) * 1977-06-06 1982-01-19 Fabricacion De Maquinas Sa IMPROVEMENTS IN ELECTRONIC CONTROL SYSTEM FOR GLASS AND THERMOPLASTIC ARTICLE FORMING MACHINES
US4247317A (en) * 1978-04-20 1981-01-27 Ball Corporation Glassware forming machine computer-ram controller system

Also Published As

Publication number Publication date
GB2028539B (en) 1983-05-05
AU7617181A (en) 1982-01-28
AU520909B2 (en) 1982-03-04
JPH01111205A (en) 1989-04-27
SE445396B (en) 1986-06-16
GB2107083B (en) 1983-08-17
IT7949701A0 (en) 1979-07-09
CA1116729A (en) 1982-01-19
GB2028539A (en) 1980-03-05
DE2930347A1 (en) 1980-02-14
FR2432184B1 (en) 1985-05-31
AU4773779A (en) 1980-01-31
JPS5520597A (en) 1980-02-14
FR2432184A1 (en) 1980-02-22
IT1117395B (en) 1986-02-17
SE7906405L (en) 1980-01-29

Similar Documents

Publication Publication Date Title
GB2107083A (en) Sequence controller with microprocessor
US4328539A (en) Sequence controller with microprocessor
CA1132687A (en) Foodstuff vending apparatus employing improved solid-state type control apparatus
US4409649A (en) Sequence controller with microprocessor
US5168372A (en) Video control system
US4246495A (en) Television monitor and control
US4657256A (en) Slot machine with win/loss biasing means
US5231310A (en) Electrical and electronic appliance lock
US4213524A (en) Automatic vending machine with lottery bonus
US4508345A (en) Slot machine with player-friendly bonus game
US5142358A (en) Earn per view television viewing regulation device
US5050881A (en) Slot machine
US4588901A (en) Timer control for television
US5046157A (en) Time control device for appliances
EP0060019A1 (en) Entertainment machines
US4597506A (en) Beverage dispensing machine
US4188779A (en) Electronic timepiece capable of simulating and displaying a game of chance
US4511895A (en) Method and apparatus for controlling distributed electrical loads
US4712049A (en) Operation completion detection means
US3815720A (en) Money receiving and credit accumulator system
GB1579687A (en) Coin-freed gaming device
GB511285A (en) Improvements relating to automatic coin actuated ticket issuing machines
US4259736A (en) Electronic timepiece
US3783988A (en) Automatic power supply control apparatus for flat rate electric service systems
US4397534A (en) Device for displaying bulb photographing operation time in a photographic camera

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee

Effective date: 19930720