GB2066735A - Electronic postal meter - Google Patents

Electronic postal meter Download PDF

Info

Publication number
GB2066735A
GB2066735A GB8039253A GB8039253A GB2066735A GB 2066735 A GB2066735 A GB 2066735A GB 8039253 A GB8039253 A GB 8039253A GB 8039253 A GB8039253 A GB 8039253A GB 2066735 A GB2066735 A GB 2066735A
Authority
GB
United Kingdom
Prior art keywords
block
register
subroutine
meter
error
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
GB8039253A
Other versions
GB2066735B (en
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.)
Pitney Bowes Inc
Original Assignee
Pitney Bowes 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=27126644&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=GB2066735(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from US05/950,302 external-priority patent/US4251874A/en
Application filed by Pitney Bowes Inc filed Critical Pitney Bowes Inc
Publication of GB2066735A publication Critical patent/GB2066735A/en
Application granted granted Critical
Publication of GB2066735B publication Critical patent/GB2066735B/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07BTICKET-ISSUING APPARATUS; FARE-REGISTERING APPARATUS; FRANKING APPARATUS
    • G07B17/00Franking apparatus
    • G07B17/00185Details internally of apparatus in a franking system, e.g. franking machine at customer or apparatus at post office
    • G07B17/00314Communication within apparatus, personal computer [PC] system, or server, e.g. between printhead and central unit in a franking machine
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07BTICKET-ISSUING APPARATUS; FARE-REGISTERING APPARATUS; FRANKING APPARATUS
    • G07B17/00Franking apparatus
    • G07B17/00185Details internally of apparatus in a franking system, e.g. franking machine at customer or apparatus at post office
    • G07B17/00362Calculation or computing within apparatus, e.g. calculation of postage value
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07BTICKET-ISSUING APPARATUS; FARE-REGISTERING APPARATUS; FRANKING APPARATUS
    • G07B17/00Franking apparatus
    • G07B17/00185Details internally of apparatus in a franking system, e.g. franking machine at customer or apparatus at post office
    • G07B17/00193Constructional details of apparatus in a franking system
    • G07B2017/00233Housing, e.g. lock or hardened casing
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07BTICKET-ISSUING APPARATUS; FARE-REGISTERING APPARATUS; FRANKING APPARATUS
    • G07B17/00Franking apparatus
    • G07B17/00185Details internally of apparatus in a franking system, e.g. franking machine at customer or apparatus at post office
    • G07B17/00193Constructional details of apparatus in a franking system
    • G07B2017/00241Modular design
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07BTICKET-ISSUING APPARATUS; FARE-REGISTERING APPARATUS; FRANKING APPARATUS
    • G07B17/00Franking apparatus
    • G07B17/00185Details internally of apparatus in a franking system, e.g. franking machine at customer or apparatus at post office
    • G07B17/00314Communication within apparatus, personal computer [PC] system, or server, e.g. between printhead and central unit in a franking machine
    • G07B2017/00322Communication between components/modules/parts, e.g. printer, printhead, keyboard, conveyor or central unit
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07BTICKET-ISSUING APPARATUS; FARE-REGISTERING APPARATUS; FRANKING APPARATUS
    • G07B17/00Franking apparatus
    • G07B17/00185Details internally of apparatus in a franking system, e.g. franking machine at customer or apparatus at post office
    • G07B17/00314Communication within apparatus, personal computer [PC] system, or server, e.g. between printhead and central unit in a franking machine
    • G07B2017/00338Error detection or handling
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07BTICKET-ISSUING APPARATUS; FARE-REGISTERING APPARATUS; FRANKING APPARATUS
    • G07B17/00Franking apparatus
    • G07B17/00185Details internally of apparatus in a franking system, e.g. franking machine at customer or apparatus at post office
    • G07B17/00362Calculation or computing within apparatus, e.g. calculation of postage value
    • G07B2017/00427Special accounting procedures, e.g. storing special information

Abstract

An electronic postal meter has an electronic accounting system including a memory and connected to control a postage printing device, and also has means for applying data and control signals to the electronic accounting system. Means are provided responsive to determined errors in said signals for storing in said memory the number of said determined errors that have occurred in said signals. Means are also provided responsive to the accumulation of a count of a predetermined number of said errors in said memory and operative to disable further operation of said postal meter.

Description

1 GB 2 066 735 A 1
SPECIFICATION Electronic postal meter
The present invention relates to an electronic postal meter and more particularly to an electronic meter which is highly secure from tampering involving the data processing capabilities of the meter.
Postal meters in use today are, almost universally, mechanical devices in which postage values are set, printed, and accounted for by means of mechanical assemblies such as linkages and registers- Such meters include a mechanical ascending register which provides a record of the amount of postage printed over the life of the meter. The meter also includes a mechanical 80 descending register which provides a record of the amount of postage remaining for use in the meter.
To prevent tampering with the critical functions of such mechanical meters, a number of different mechanical interlocks have been used. Such interlocks prevent a user from printing postage amounts without changing the contents of the ascending and descending registers. Similarly, such interlocks make it nearly impossible for a user, without leaving telltale signs, to reset the descending register himself to "recharge" the postal meter.
Electronic postal meters have been developed.
In such meters, a computer device such as a microprocessor may calculate postage amounts and cause an electrically driven printer to be set to 95 the proper postage amount. All data, including critical accounting data, is stored in electrical format in memory units.
The advantages of electronic postal meters are known. Such meters, having fewer mechanical parts, should last longer and prove more reliable than mechanical meters. Furthermore, electronic postal meters are extremely versatile devices which may perform functions that cannot practically be performed in a purely mechanical meter. For example, an electronic postal meter may include logic circuitry for determining the destination zone of a package given the zip code of the point of origin and the zip code of the point of destination. Moreover, such meters can 110 generally be more readily changed to accommodate changes in the postal regulations or rates. Also,.such meters are generally capable of performing at high speeds, a necessity for high volume mailing operations.
While electronic postal meters have many advantages, they also present certain problems which had already been solved in the widely-used mechanical postal meters. The use of electronics to perform the necessary meter functions renders obsolete many of the mechanical interlocks formerly developed to prevent tampering with the meter contents. Naturally, this increases the risk that a user knowledgeable in the electronic technologies employed in a postal meter may find a way to print postage amounts without these amounts being registered in the descending or ascending registers. Similarly, a knowledgeable and unscrupulous user may attempt to develop a method for "recharging" the meter without the normally necessary payment to the Post Office.
A problem which occurs in most present designs of electronic postal meter is that such meters will not necessarily be disabled upon a malfunction or failure in a particular section or upon the occurrence of certain events. The meter will continue to functioh, albeit perhaps improperly, until instructed to stop. It is particularly important that operation of the meter shall be disabled if more than one, or more than a selected number, of particular errors should occur.
According to the present invention, there is provided an electronic postal meter having an electronic accounting system connected to control a postage printing device, and means for applying data and control signals to the electronic accounting system, in which the electronic accounting system includes a m emory, means responsive to determined errors in said signals for storing in said memory the number of said determined errors that have occurred in said signals, and means responsive to the accumulation of a count of a predetermined number of said errors in said memory and operative to disable further operation of said postal meter.
Description of the Drawings
While the specification concludes with claims particularly pointing out and distinctly claiming that which is regarded as the present invention, details of a preferred embodiment of the invention may be more readily ascertained from the following detailed description when read in conjunction with the accompanying drawings wherein:
FIGURE 1 is a perspective view of the housings for one embodiment of an electronic postal meter system into which the present invention may be incorporated; FIGURE 2 is a basic block diagram of an electronic postal meter incorporating the present invention; FIGURE 3 is a more detailed block diagram of the meter unit of the electronic postal meter system; FIGURE 4 is a schematic diagram of a preterred embodiment of a noiserejecting input/output channel linking the meter unit to the controi upb. of the system; FIGURE 5 is a detailed schematic diagram of a preferred circuit for protecting against abnormal variations of a supply voltege; FIGURE 6 is a perspective view of a portion of one embodiment of a postage printer for the meter system; FIGURE 7 is a perspective view of selected parts of the mechanism of FIGURE 6; FIGURE 8 is an elevation view taken along lines 8-8 of FIGURE 7; FIGURE 9 is a top view of position encoder plates for a preferred form of postage printer; FIGURE 10 is a detailed schematic diagram of 2 GB 2 066 735 A 2 the interface between the meter unit electronics and the drive motors for one embodiment of postage printer; FIGURE 11 is a detailed schematic diagram of a postage printer setting detector array, including the input connections to the meter section electronic control section; FIGURE 12 is a detailed schematic diagram of an interrupt generator circuit for the electronic control of the meter section; FIGURE 13 is a detailed schematic diagram of a condition-indicating LED display; FIGURE 14 is a representation of the assignment of memory locations in a nonvolatile memory; FIGURE 15 is a representation of the assignment of memory locations in random access memory unit 38; FIGURE 16 is a more detailed representation of the assignment of memory locations for display 85 indicator bits within unit 38; FIGURE 17 is a representation of the assignment of memory locations in random access memory unit 40; FIGURE 18 is a representation of the assignment of memory locations in random access memory unit 42; FIGURE 19 is a more detailed representation of the assignment of memory locations for status character bits within unit 42; FIGURE 20 is a simplified flow chart of the operation of the postal meter system; FIGURES 21-26, taken collectively, comprise a more detailed flow chart of the main program for the postal meter system; FIGURE 27 is a flow chart of a routine for establishing counter loops or, with slight modification, fixed time delays; FIGURES 28-29, taken collectively, comprise a flow chart of an INITS subroutine which resets 105 the postage printer to zero; FIGURE 30 is a flow chart of a TNVM subroutine which cheeks for the presence of error indicators stored in the nonvolatile memory; FIGURE 31 is a flow chart of a TINT subroutine used to test the operation of interrupt photocells; 110 FIGURE 32 is a flow chart of a TPST subroutine which compares the contents of a meter setting register with the contents of the descending register; FIGURE 33 is a flow chart of a READS subroutine for reading printer setting detectors and for checking for detector failure; FIGURE 34 is a flow chart of a CHKSM subroutine which generates error-detecting checksums for stored information; FIGURE 35 is a flow chart of an ERRR subroutine which retrieves error indications stored in nonvolatile memory for use in deciding whether certain subroutines should be called; FIGURE 36 is a flowchart of a DISP subroutine 125 which outputs condition- indicating data from memory to the LED display; FIGURE 37 is a flow chart of a DSKE subroutine which is used to drive the printer to a disabled position; FIGURE 38 is a flow chart of a READR subroutine for reading selected memory registers; FIGURE 39 is a flow chart of a SETZ subroutine which performs preliminary and final operations during setting of the postage printer; FIGURE 40 is a flow chart of a STER subroutine which handles error messages and calls a disabling routine; 75 FIGURES 41-42, taken collectively, comprise a flow chart of a SETS routine used to set the printer to a desired postage; FIGURE 43 is a flow chart of a STEPS subroutine used to control the bank select motor of the printer; FIGURE 44 is a flow chart of a STEPD subroutine used to control the digit select motor of the printer; FIGURE 45 is a CMP subroutine called during setting of the printer to a desired postage value; FIGURE 46 is a flow chart of an ENABL subroutine which controls enabling of the printer; FIGURE 47 is a flow chart of an ENBLE subroutine for driving the printer to an enabled position when there is sufficient postage; FIGURE 48 is a flow chart of an ERR1 subroutine for incrementing cumulative error indicators associated with the setting of the printer; FIGURE 49 is a flow chart of a DISAB routine for calling a printer disabling subroutine and for generating error indicators; FIGURE 50 is a flow chart of a DESLT subroutine called to disable the meter when problems occur during reading or setting; FIGURE 51 is a flow chart of a LOAD/SEND subroutine which provides restricted access to the nonvolatile memory; FIGURE 52 is a flow chart showing a modification of the TNVM subroutine of FIGURE 30; and FIGURE 53 is a flow chart showing a modification of the CHKSM subroutine of FIGURE 34.
Detailed Description
Referring now to FIGURE 1, the meter section of an electronic postal meter system may be a relatively small unit 10 which, in one embodiment, contains electronic circuitry for performing necessary postal calculations for storing critical accounting data and for controlling a postage printer. Meter unit 10 is controlled by a control unit 12 which preferably has a segmented numeral display, backlighted legend panels and a keyboard for entering data and commands into the meter unit. The meter unit 10 rests on a relatively larger base 11 which will, according to a preferred embodiment of the invention, include a power supply such as an AC to DC converter circuit for converting 110 volt alternating line voltage to a positive or negative DC voltage suitable as power supply voltage for the logic circuitry contained in meter unit 10. The connections between the AC to DC converter in base 11 and the meter unit 10 can 3 GB 2 066 735 A 3 be conventional, detachable connectors which permit the meter to be removed from the base for servicing. Preferably, a monitored mechanical interlock is used to secure the meter to the base.
When such an interlock is released in order to remove the meter from the base, a signal is generated which can disable the meter (i.e., assure preservation of its contents) before the meter is actually separated from its base. This signal is generated within an event-indicating signal 75 generator circuit described in detail later.
Referring to FIGURE 2, circuitry for the meter unit 10 may be linked to the remote control unit 12 through a communications link consisting of input/output channel 14. The meter unit 10 accepts data and instructions sent to it- through channel 14 from the control unit 12. In turn, the meter unit 10 provides signals to the control unit 12 through channel 14 representing the results of calculations, requests for instructions and error messages.
Control unit 12 may include a keyboard for remotely entering data and instructions into the system and a printer or display for presenting the results of calculations, instruction requests and error messages to an operator. While unit 12 is represented as a single device, the input and output sections of unit 12 obviously could be physically independent units. For example, the output section might be a printer or CRT display while the input sections might be a keyboard terminal. Unit 12 might also be a larger host computer which would control meter unit 10 as one component of a more complex mail-handling system.
A central processor unit 16 in the meter communicates with random access memory 18, output ports 19 associated with the random access memory 18 and with a memory interface unit 20 which generally controls the flow of data and instructions between central processor unit 16, read-only memory 22 and a special purpose, non-volatile random access memory 24. A power supply circuit 100, to be described in detail later, provides power for these and other components.
In a preferred embodiment of the invention, the components may be commercially-available solid state devices. For example, central processor unit 16, random access memory 18 and read-only memory 22 maybe, respectively, 4040,4002 and 115 4001 chips available in a MCS-40 Micro Computer Set from Intel Corporation of Santa

Claims (6)

Clara, Claifornia. These particular chips employ negative logic; that is, a binary '1---is represented by a negative voltage such as -15 volts whereas a 120 binary 'V' is represented by a more positive voltage such as zero voltage or ground. Output signals from the central processor unit 16 are transmitted through output ports 19, which share input/output data paths with random access 125 memory 18, to printer setting elements 26, to an input multiplexer 28 which controls a printer setting detector array 30 to the inputloutput channel 14, and to an output multiplexer 11 which controls an LED display array 13. Inputs to the meter unit include both internal and external inputs in a preferred embodiment. The external inputs are provided by control unit 12 through channel 14 to a buffer or input port system 34. Internal inputs representing the status of components of a printer setting device are provided by the printer setting detector array 30 under the control of multiplexer 28. Multiplexer 28 may be a conventional shift register multiplexer device such as a 4003 chip available from Intel Corporation. Additional internal inputs are provided by an event-indicating signal generator circuit 32. The outputs of signal generator circuit 32 are applied to buffer system 34. Outputs from buffer system 34 are applied to the memory interface unit 20. The central processor unit 16 performs calculations using data provided through the input buffer system 34 and instructions stored in read- only memory 22. Read-only memory 22 serves as a program store for the routines and subroutines required within meter unit 10. Random access memory 18 provides a working memory for the central processor unit 16. The random access memory 18 is a volatile device; i.e., data stored in the memory is lost upon loss of power to the meter. To preserve critical accounting data, such as the contents of the ascending and descending registers, the non- volatile random access memory 24 has been provided. Non-volatile memory 24 is powered with a battery back-up unit to permit the contents of the memory 24 to be saved in the event of a loss of power in meter unit 10. Further details as to the organization of the meter unit 10 appear in the description relating to FIGURE 3. The operations ofcentral processor unit 16 are timed by a clock circuit 36 which supplies two trains of non-overlapping clock pulses 01 and 02 and a reset signal. These signals are applied to the central processor unit 16, to memory interface unit 20 and to a number of random access memory units 38,40,42, which collectively comprise random access memory 18. Outputs from an output port 37 associated with random access memory unit 38 are applied to a pair of coil select circuits 44, 46, which are used in setting one type of postage printing device. The coil select circuits 44 and 46 are connected to a motor select circuit 48 which, under the control of outputs from an output port 39 associated with random access memory unit 40, determines which of the two motors will be energized. Details of the coil select circuits 44 and 46 and the motor select circuit 48 are provided in a following section of this specification. Another output from output port 39 controls a test switch 50, which is part of the signal generator circuit 32. The signal generator circuit 32 includes a power level sensing circuit 52, a meter locked detector 54 and a print detector 56. The power level sensing circuit 52 monitors the output of the power supply for the postal meter and generates an interrupt signal whenever the onset of a power failure is detected. This interrupt signal triggers a computer routine in which the contents of the 4 GB 2 066 735 A 4 ascending and descending registers are updated in the non-volatile- random access memory 24 before the meter shuts down. The print detector circult 56 includes a photoelectric device for sensing the start of a mechanical printing operation by the meter. This information is used for updating the ascending and descending registers of the meter by the amount of postage being printed. The meter locked detector 54 includes a photoelectric device 75 which senses whether the meter, itself a relatively small unit, remains attached to its original, relatively large base. If mechanical latches are opened 'n anticipation of removing the meter frorn the base, an output from detector 54 causes a 80 signal to be generated. This signal is employed to disable the meter. The outputs of power level sensing circuit 52, mete., locked detector circuit 54 and print detector circuit 56 are applied to a logic buffer 60. Since the response of the central processor unit 16 will be different for different ones of the event indicating signa;s, the signals must be applied as separate internal inputs to the system through the logic buffer 60. A signal appearing on the output 90 of buffer 60 is applied to memory interface unit 20 which, in response to a command from the central processor unit 16, transfers the signal to the processor for decoding. The memory interface unit 20 provides outputs to a decoder circuit 62. The decoder circuit 62 is used to select whether non-volatile random access memory 24, read-only memory unit 22 or one of a number of input logic buffers 60, 74, 76 is to be enabled. One input to buffer 76 is provided by a switch 75 which can cause either a binary 1 (-1 5v) or a binary 0 (0 volts) to be applied to the buffer 76. Another input to buffer 76 is provided from the input/output channel 14. Outputs to the inputloutput channel 14 are provided by output port 39 associated with random acf-ess memory 40.. Logic buffer 74 receives signals from printer setting ditector array 30. There are more detectors in the detector array than logic buffer 74 110 can accommodate at one time. A shift register input multiplexer 28, operating under the control of signals provided through the output port 41 multiplexes the inputs from detector array 30 to logic buffer 74. MuMplexer 28 may be a 4003 115 device available from intei Corporation. In accordance with the present invention, the entire meter unit disclosed in FIGURE 3 is contained within a secure housing which cannot be entered other than by an authorized representative of the U.S. Postal Service. The meter unit stores and processes only critical accounting data and printer setting information. Since Gther information, such as postage rates or zip-zone conversion tables, are not stored within the mp-tsr unit 10 but rather within the control unit 12, critical financial or printing circuits can be highly secured. A ios.-.-er degree of security may be accorded to irforrnetion which is stored within the control unit 12 since a person who tampers with information other than accounting data or printer setting data cannot bring about improper operation of the meter printer. Moreover, because the information which is stored and processed within the meter uni t is not changed simply because of a change in governmental regulations or rates, the lower degree of security accorded all other information makes it easier for the manufacturer or service technician to -updatepostal rate tables or zip-zone calculations without the inconvenience and problems which attend entry into the high security sections of a meter. Thus, by isolating the accounting data and calculations and the printer setting information in a highly secure unit and by excluding all lesscritical data, the meter security and maintainability are enhanced. The security of the meter unit 10 is enhanced by means of the inputloutput channel used. This input/output channel is described in detail with reference to FIGURE 4. To simplify the drawing, meter unit 10 is shown as including only output port 39 and input buffer 76. Binary signals to be transmitted to the output section of control unit 12 from postal meter 10 are applied in serial fashion to an electrical-to-optical transducer 173. The signals are applied at the base terminal of a transistor 174 having a grounded emitter and a collector connected to the anode of a lightemitting diode 176. The cathode of diode 176 is connected to a -15 volt source 178 through a current-limiting resistor 180. The fight-emitting diode 176 is adjacent one end of a first lighttransmitting fiber 182, the opposite end of which is adjacent a phototransistor 184 in a first optical-to-electrical transducer circuit 183. The emitter of phototransistor 184 is connected to one input of a comparator amplifier 186, the second input to which is provided through a voltage divider 188 connecting a ground terminal to a -15 volt source 192. The input to the comparator amplifier 186 provided through the voltage divider 188 establishes a threshold voltage which the output of phototransistor 184 must exceed before the transistor output voltage will cause a change in the output of comparator amplifier 186. Thresholding reduces the chance that noise voltages generated within meter unit 10 or either of the transducers 173 or 183 will be wrongly interpreted as signal voltages. Binary signals representing data or instructions to be input to the meter unit 10 from the input section of control unit 12 are applied to a second electrical-to-optical transducer circuit 198. The signals are applied at the base terminal of a transistor 194 in circuit with a light-emitting diode 196 adjacent one end of a second light transmitting fiber 200. The opposite end of fiber 200 is adjacent a phototransistor 202 in a second optical-to-electrical transducer 204. Transducer 204, which is identical in construction to transducer 183, converts the optical signals to electrical signals which are applied to one input of buffer circuit 76 of meter unit 10. g, r_ W GB 2 066 735 A 5 Since the input-output information transmitted through the channel 14 is transmitted in the form of optical signals and since extraneous electric fields cannot induce noise voitages in such optical fibers, the channel 14 effectively resists induction 70 of such noise voltages. Of course, light transmitting fibers 182 and 200 must be coated or otherwise shielded from extraneous light. Moreover, because the maximum output of the light emitting diodes is limited, even a normally destructive voltage surge or static electrical discharge at the control unit 12 cannot be transmitted at destructive levels to the meter unit 10. Even a direct short circuit across one of the electrical-to-optical transducers will not be destructive, since the output of the optical-to electrical transducer is also inherently limited regardless of the intensity of the optical input. The information transmitted in either direction over channel 14 is transmitted one bit at a time. In 85 one embodiment, a binary 0 is represented by short light pulse while a binary 1 is represented by a longer light pulse. Successive pulses are separated by periods of time during which the light-emitting diode is de-energized; i.e., produces 90 no light. Data is transmitted to and from the meter over channel 14 in 64 bit sequences consisting of 16 4 bit words. While some messages do not require all 16 words, the fixed message length was preferred over a variable message length because of the greater ease with which messages of fixed length could be handled and stored within the system. Critical accounting data, such as the contents 100 of the ascending and descending registers are updated and stored in the non-volatile random access memory 24. When the power supply voltage falls below a predetermined level, the signal provided by power level sensing circuit in 105 signal generator circuit 32 will ultimately disable the meter while critical accounting data is preserved. While the operation of power level sensing circuit 52 is normally adequate to preserve the critical accounting data in the typical loss of power situation, more complete protection against data loss or damage due to abnormal variations in the supply voltage is provided in the circuit described with reference to FIGURE 5. The 115 protective circuit to be described operates in combination with an AC to DC converter 88 which accepts an alternating current input from a line voltage source 90. A fuse 92, a switch 94 and the primary coil 96 of a step-down transformer 98 are 120 connected in series across the terminals of the line voltage source 90. A secondary coil 102 of transformer 98 provides a stepped down alternating voltage to a full wave rectifier circuit 60 104 having a filter capacitor 106 connected across its output terminals. The AC to DC converter 88 is located in the base 11 of the meter and is connected to the protective circuitry within meter unit 10 through conventional, detachable connectors 108, referred to hereafter as power supply terminals. A circuit interrupter 110, which may be a conventional fuse, is connected in series with one of the leads from the power supply terminals 108. A diode 112, a metal oxide varistor 114 and an overvoltage detector 116 are connected in parallel with one another across the terminals 108; that is, across the output terminals of the full wave rectifier 104 in AC to DC converter 88. Feed- through capacitors 64 and 66 are connected in series with the leads from terminals 108. A pair of inductances 68 and 70 are connected in series with the feed-through capacitors 64 and 66, respectively. A set 72 of filter capacitors is connected across the inductances 68 and 70. A conventional voltage regulator circuit 78 on the output side of inductances 68 and 70 acts on the generated logic level voltage to establish a required, second logic level voltage. For example, the input to voltage regulator 78 may be a minus 24 volts while its output may be a minus 15 volts. Such voltages are commonly required to operate negative logic circuits. The components described above act to block or suppress abnormal variations in the voltage provided at terminals 108. Such abnormal variations may result from variations in the line voltage, from failure of one or more components in the AC to DC converter 88, or from an attempt to operate the postal meter with an unauthorized power source connected across terminals 108. The latter situation might occur where a well meaning user attempts to bypass a temporarily malfunctioning AC to DC converter 88 by attaching his own DC power supply at terminals 108. Potentially, the same situation may be caused by an illegal user who, having stolen a meter from its base, is trying to convert the remaining postage in the meter to his own use. The diode 112 has no effect on the operation of the meter so long as the DC voltage applied across terminals 108 is of the correct polarity. However, if the polarity of the voltage applied across terminals 108 is reversed for any reason, the diode 112 short circuits the protective circuitry, causing a current to be applied through fuse 110 far in excess of the interrupt current required to blow the fuse. When fuse 110 is blown, the meter unit is disabled while contents of the memory 24 are saved. The fuse 110 can be replaced relatively easily by a trained serviceman. However, replacement of the fuse requires that a meter unit seal be broken. Therefore, even successful attempts by unauthorized personnel will be readily detected by the postal Ruthorities. Metal oxide varistor 114 is a conventional circuit component having a voltage-dependent, nonlinear impedance characteristic which tends to suppress voltage spikes. Overvoltage detector 116 is also a conventional circuit component which has a normally high impedance when the voltage applied across it is less than a predetermined value. If the applied voltage exceeds the predetermined value, however, a breakdown effect occurs causing a 6 high current to be applied through device 116 and interrupter 110. Thus, interrupter 110 will be blown whenever normal voltage of the wrong polarity or excessive voltage of the right polarity is 5 applied across terminals 108. The feedthrough capacitors 64 and 66, inductances 68 and 70 and filter capacitor 72 provide quick suppression of rapidly occurring voltage spikes and thus prevent meter damage which might otherwise occur before the varistor 114 and detector 116 can function. Filter capacitors 72 also provide temporary power storage which gives the meter additional time to shut down in an orderly fashion in the event of a power loss. Feed-through capacitors 64 80 and 66 and inductors 68 and 70 also filter any high frequency noise voltages which might be induced in the DC power lines. The meter unit described above controls a postage printer, one embodiment of which is described with reference to FIGURES 6, 7 and 8. The printer is a modified Model 5300 postage meter manufactured by Pitney Bowes, Inc., Stamford, Connecticut. The basic Model 5300 postage meter is a mechanical device with mechanical registers and actuator assemblies. The modified meter contains only a print drum 80 and a set 82 of print wheel driving racks. Since the modified meter is intended to be used in an electronic system, the mechanical registers and actuator assemblies have been removed. The print wheels (not shown) within drum 80 are set by a mechanism driven by first stepping motor 84 and a second stepping motor 86. Signals for controlling the operation of the stepping motors 84 and 86 are provided by the meter unit described above. The stepping motor 84 drives the upper and lower set 82 of postage wheel driving racks (consisting of racks 82a, 82b, 82c, 82d) through a gearing assembly including upper and lower nested shafts 11 8a, 11 8b, 11 8c arid 11 8d, respectively. The angular positions of the upper shafts 11 8a, 11 8b and the lower shafts 11 8c, 11 8d are controlled by a master gear 120 which may be driven in either a clockwise or a counter-clockwise direction by the stepping motor 84. The print drum 80 has four independentlypositioned print wheels (not shown) which provide a postage impression to the maximum sum of $99.99. Each print wheel provides a separate digit o', this sum and can be set from -0- to---9-. The print wheels are sequentially set by the meter setting mechanism by means of the four driving racks 82a, 82b, 82c, 82d. The driving racks are slidable within print drum shaft 122 in the directions indicated by the double-headed arrows 124. The settings of the upper racks, 82a and 82b are controlled by pinion gears 126a and 126b, respectively. The settings of the lower racks 82c and 82d are controlled by a similar set of pinion gears not shown in the drawings. The pinion gear 126a is attached to the inner shaft 11 8a while the pinion gear 126b is attached to the concentric GB 2 066 735 A 6 outer shaft 11 8b. The pinion gears which control the settings of driving racks 82c, 82d are similarly attached to nested shafts 11 8c and 11 8d, shown only in FIGURE 8. The angular positions of the nested shafts 11 8a, 11 8b, 11 8c, 11 8d are controlled by shaft-mounted spur gears 1 28a, 128b, 128c, 128d. The master gear 120 can be shifted laterally along an axis parallel to the axis of the spur gears 128a, 128b, 128c, 128d to intermesh with a single gear at a time. The master gear 120 is rotatably mounted- within a slot 130 in a yoke 132 which slides along a splined shaft 134. The yoke 132 is held away from rotatable engagement with splined shaft 134 by an interposed sleeve bushing 136. The master gear 120 engages the gears 128a, 128b, 128c, 128d in the sequential order: 128b, 128a, 128d, 128c. In this order, gear 128b controls the setting of the -tens of dollars- print wheel, gear 128a controls the -dollars- print wheel, gear 128d controls the -tens of cents- print wheel and gear 12 8c controls the "units centsprint wheel. The yoke 132 includes a pair of upper and lower tooth trough walls 138 and 138' located on the upper and lower surfaces of the yoke 132. As the yoke 132 and master gear 120 slide laterally along the splined shaft 132, the upper and lower laterally-extending walls 138 and 138' slide along either side of one of the teeth in each of the spur gears. The tooth troughs prevent rotational movement of any of the spur gears other than a spur gear meshed with master gear 120. The lateral position of yoke 132 and the master gear 120 is controlled by stepping motor 86, the output shaft of which carries a splined gear 140. The splined gear 140 meshes with a rack 142 attached to yoke 132 at an L-shaped, lower extension 144. The clockwise or counterclockwise rotation of splined gear 140 upon energization of stepping motor 86 is translated into lateral movement of yoke 132 through the rack and pinion arrangement. The splined gear 140 prevents counter-clockwise rotation of yoke 132 about the axis of shaft 146 due to any friction between rotating sleeve bushing 136 and the yoke 132. A roller 148 mounted beneath the L-shaped extension 144 prevents any clockwise movement of the yoke 132 about the axis of shaft 146. When the print wheels within print drum 80 have been set to the correct postage value position, drum 80 is rotated by shaft 122 in a direction indicated by arrow 150 to imprint the postage. The drum 80 is then returned to a home or rest position sensed by a slotted disk 152 mounted on shaft 122. When a slot 154 in disk 152 is interposed between the arms of an optical detector 156, the shaft 122 is at its home position. All optical detectors in the setting mechanism are basically U-shaped structures having a light emitting diode located in one arm and a phototransistor located in the other arm. Light emanating from the light emitting diode is transmitted to the phototransistor only when a v i 7 GB 2 066 735 A 7 slot in an interposed disc is aligned with the arms of the detector. The home or "0" positions of nested shafts 11 8a and 1 18b are similarly sensed by slotted discs and, respectively, in combination with optical detectors 160a and 160b. The home or "0" positions of the lower pair of nested shafts are sensed by similar slotted discs and optical detectors, none of which are shown in the drawing. The shafts and gears are returned to the home position upon startup of the meter system. Subsequent setting is accomplished by stepping the motor 84 through a calculated number of steps using previously-established settings as a reference. The angular movement of the stepping motor shaft (and consequently splined shaft 134 and master gear 120), is monitored through an assembly including gears 162 and 164, slotted monitoring wheel 116 and optical detector 168. When the stepping motor shaft 146 turns, gear 162, which is mounted on shaft 146, must also turn through the same angle. Gear 162 intermeshes with gear 164 carried by the slotted monitoring wheel 166 causing the wheel to rotate in correspondence with rotation of shaft 146. Every fifth slot 170 on monitoring wheel 166 is extra long to provide a check on the monitoring wheel operation. Each slot on wheel 166 corresponds to a change of one unit of postage value. Optical detector 168 has two photosensors. One of the photosensors is mounted near the bight of the U-shaped detector structure; that is, near the periphery of monitoring wheel 166. This photosensor monitors every step of the stepping wheel 166. The other sensor is located near the ends of the arms of detector 168. This photosensor receives light from an associated light source on the opposite side of the monitoring 105 wheel 166 only when the extra long slot 170 is aligned with the detector arms. Thus, this sensor monitors every fifth step of the monitoring wheel 166. The number of slots on wheel 166 which pass through detector 168 during rotation of motor 84 are counted in the electronic section of the meter unit. If the counter does not contain a count of five when the output from the second photosensor in detector 168 is sensed (indicating long slot 170 is aligned in the detector), an error condition exists. The lateral position of yoke 132 and master gear 120 is monitored by a position indicator including a pair of spaced plates 206, 208 attached directly to yoke 132. Plates 206 and 208 120 include slot patterns which are binary-encoded representations of ihe position of the yoke relative to optical detectors 210, 212, 214, all of which are attached to an L-shaped bracket 216 on stepping motor 86. Each different slot pattern 125 identifies a particular position of yoke 132. The slot patterns may be seen more clearly with reference to FIGURE 9, which is a plan view of plate 206. Slots appearing in plate 208, which is vertically aligned with plate 206 and therefore substantially hidden, are shown in dotted outline form. In a preferred embodiment of the invention, plates 206 and 208 have six different binary slot patterns identifying six lateral positions for yoke 132. Each of the slot patterns consists of a unique triplet in which the presence of a slot in either plate 206 or plate 208 is interpreted as a binary one while the absence of a slot in any position where a slot might appear is interpreted as a binary zero. The binary indicia for the two outside positions in each triplet are included on plate 206. The binary indicia for the center position in each triplet is included on plate 208. The binary indicia are distributed between two vertically aligned plates only because optical detectors 210, 212, 214 are too bulky to permit three detectors to be placed side by side on a single plate of reasonable size. From a logic standpoint there is no significance to the fact the indicia are distributed between two plates. The indicia are read and interpreted as if they were contained on a single plate. Position 218, identified by the binary slot pattern---10 1 " is the detected slot pattern when master gear 120 is meshed with the spur gear for the "tens of dollars" bank of the postage meter. Position 220, identified by binary slot pattern '110", is detected when master gear 120 meshes with the spur gear for the -dollars- printing wheel. Position 222, identified by binary pattern---0 11 -, is detected when master gear 120 meshes with the spur gear which sets the---tensof cents- print wheel on the postage meter. The---cents-print 1()o wheel is set by master gear 120 in position 224, identified by the binary pattern---100---. Positions 226 and 228, identified by binary patterns '111---and---0 1 W, respectively, serve security purposes. After each of the print wheels has been set by the master gear 120, yoke 132 is shifted to an "enabled" position 228 which is the only position in which shaft 122 can rotate to imprint the set postage. A conventional mechanical interlock between the yoke 132 and a shutter bar (not shown) is released only in this position to assure the printing cannot occur if the meter is not ready due to any reason or if an error has occurred or if insufficient funds are available in the meter register. Position 226, referred to as a disabled position, is a position wherein each of the spur gears 128a, 128b, 128c, 128d is mechanically locked by the projecting troughs 138 and 138'. In the "disabled" position, which is the position to which the yoke 132 is driven upon loss of power, the printer is mechanically locked and cannot be reset even by external force applied directly to the print wheels in print drum 80. The electrical interconnections of the stepping motors 84 and 86 with the output ports 37 and 39 are described with reference to FIGURE 10. The four parallel output leads from output port 37 are connected to the coil select circuits 44 and 46 for the stepping motors 84 and 86, respectively. Each of the stepping motors is a conventional 8 GB 2 066 735 A 8 eight-phase stepping motor, which is rotated in predetermined angular increments by energizing different combinations of four coils contained within the motor. The coils for stepping motor 84, included within 70 a coil system 230, are identified as coils 230a, 230b, 230c and 230d. Similarly, the coil system 232 for motor 86 includes coils 232a, 232b, 232c, 232d. Each of the individual coils in each motor is connected in series with a Darlington amplifier. For example, coil 230a is connected in series with Darlington amplifier 234a in which th3 base terminal of a first transistor 236 isconnected to a -15 volt source 238 through series resistors 240 and 242. A second transistor 244 has a grounded emitter, a base terminal connection to the emitter of transistor 236 and a collector connected to the collector of transistor 236. Daffington amplifier 234a is off or nonconducting when the associated output 246 from output port 37 is at a binary 0 or ground potential. In this state, the Darlington amplifier prevents current flow from an associated ground terminal 248 through the second transistor 244 and thus through coil 230a. When the output 246 drops to a more negative or binary 1 level, the Darlington amplifier 234a is s..pvitched to an on or conducting state. Darlington amplifiers 234b, 234c and 234d are identical to amplifier 234a except for the connections to different output leads and different motor coils. The coils in coil system 232 are similarly connected in series with Darlington amplifiers 248a, 248b, 248c, 248d. Corresponding coils in 100 each of the coil systems 230 and 232 are connected to the same output terminal of output part 37. For example, coils 230b and 232b are connected through respective Darlington amplifiers 234b and 248b to output 250. A binary 105 1 signal on output 250 switches both Darlington amplifiers 234b and 248b into their on or conducting state. However, coil current will be established in only the motor selected by operation of motor select circuit 48. Motor select circuit 48 is connected to outputs from output port 39 and comprises switching circuits 251 and 252 connected in series with coil systems 230 and 232, respectively. Switching circuit 251 includes an inverter 115 amplifier 254 which provides an increased current at its collector terminal when the input to the amplifier 254 fails to the more-negative binary 1 level. The output of inverter amplifier 254 is applied to a Darlington amplifier 256 which, when conducting, provides a current path from a ground for each of the coils in coil system 230 to a -24 volt source 258. Switching circuit 252 is identical in construction to switching circuit 251 but is 125 energized in an alternative manner. When a binary 1 signal appears at the input to switching circuit 251, a binary 0 signal is applied to switching circuit 252 and vice versa. Thus, depending upon the inputs to the switching circuits 251 and 252, either coil system 230 or coil system 232 will be connected in a closed circuit loop. The other coil system will be open circuited. Since the coil system for only one of the two drive motors is complete at any one time, the output port 37 can be used to control the operation of both motors using the common output connections. Referring to FIGURE 11, the states of the optical detectors which monitor the printer setting mechanism are inputted to the system through printer setting detector array 30 which includes a novel failure detect system. The inputs from the printer setting detector array 30 are applied to logic buffer 74 which may be a conventional 4 bit parallel input buffer circuit. Each of the inputs to buffer 74 is fed by one of four comparator amplifiers 260,262, 264, 266. Each of these comparator amplifiers has one input connected through a voltage divider to a -15 volt reference source. For example, comparator amplifier 266 has an input 268 to which a predetermined negative voltage may be applied by means of a voltage divider 270 and a -15 volt source 272. A second input to each of the comparator amplifiers is connected to a bus from the output side of one or more of the optical detectors. More particularly, input 274 to comparator amplifier 260 is connected to the output side of detectors 276, 278 and 280. Input 282 to comparator amplifier 262 is connected to the output sides of detectors 284,286, 288. Input 290 to comparator amplifier 264 is connected to the output side of a pair of detectors 292 and 294 while input 296 to comparator amplifier 266 is connected to the output side of a single detector 298. Each of the optical detectors is identical to detector 298 which includes a light emitting diode 300 and a phototransist& 302, which conducts only when its base area is illuminated by optical radiation from the light emitting diode 300. It will be recalled from the description of FIGURES 68 that a slotted disc is interposed between the light emitting diode and the phototransistor or light detector. The slotted disc rotates with one of the shafts of the printer setting mechanism. When the slot in the disc rotates into alignment with the light source and the light detector, the phototransistor is gated into conduction to provide a current path between a ground terminal, such as terminal 304 and the amplifier input. The detectors are connected in what might be described as a column and row matrix with the rows consisting of buses 274,282, 290 and 296. Each column consists of a single series circuit including a transistor having its base terminal connected to the shift register input multiplexer 28, a -15 volt source and two or more seriallyconnected light emitting diodes. For example, column 306 consists of transistor 308, -15 volt source 310 and three serially-connected light emitting diodes 312, 314, 316, which are components of optical detector circuits 276, 284 and 292, respectively. Column 318 consists of transistor 320 and serially-connected light T 9 emitting diodes in detector circuits 278, 286, 294 and 298. Column 322 consists of an identical transistor 324 and the light emitting diodes in the detector circuits 280 and 288. The base terminals of the transistors 308, 320 and 324 are connected to the second, third and fourth stages, respectively, of the shift register 28. The first stage of shift register 28 is connected to an error detect circuit to be described in more detail later. Inputs to shift register 28 include a data input and a clock input. In operation, the optical detectors to be monitored are selected by loading a binary 1 into shift register 28. The binary 1 is then shifted upon successive clock pulses to the shift register stage connected to the column containing the detectors to be read. For example, if the detectors 276, 284 and 292 are to be read, the binary 1 is shifted to the second stage of shift register 28 to drive transistor 308 into a conductive state. When transistor 308 conducts, a current path is formed, permitting current to flow from ground terminal 326 through light emitting diodes 312, 314 and 316 to the -15 volt source 3 10. Under these conditions, output signals from comparator amplifiers 260, 262 and 264 are interpreted by the electronics control unit as outputs from optical detectors 276, 284 and 292. Similarly, if the binary 1 has been shifted to the third stage of shift register 28, transistor 320 would have been energized to establish a current path through the light emitting diodes for the detectors in column 318. Changes in the inputs to the comparator amplifiers would have been interpreted as changes in the states of the detectors in column 318. It is evident that shift register 28 and the array of detector connections provide a multiplexing function by which different sets of up to four detectors can be connected to the four parallel inputs to buffer circuit 74 at one time. Thus, while 105 only nine detectors have been shown in columns 306, 318 and 322, up to 12 detectors could have been accommodated if necessary or desirable. The error checking or failure detect feature referred to above simultaneously drives the inputs 110 to all four comparator amplifiers from a binary 1 (-15 volt) level to a binary 0 (0 volts) level each time the printer setting detector array is called in operation. The failure detect circuit includes a transistor 330 having its base terminal connected to the first stage of shift register 28, its emitter terminal connected to a ground terminal and its collector connected through a resistor 332 to a common junction 334 of diodes 336, 338, 340 and 342. The opposite terminals of each of these diodes is connected through a resistor to a -15 volt source. For example, diode 342 is connected to -15 volt source 272 through resistor 344. Before a binary 1 is loaded into the first stage of shift register 28, transistor 330 is non-conducting which means that the inputs 274, 282, 290 and 296 to the comparator amplifiers 260, 262, 264 and 266, respectively, should be at the binary 1 level. When the first stage of the shift register 28 goes negative (i.e., receives a binary 1 signal) 130 GB 2 066 735 A 9 transistor 330 is triggered into conduction to provide a current path from ground through each of the diodes 336, 338, 340 and 343 to the inputs of the respective comparator amplifiers. Thus, the second input to each of the amplifiers will change state immediately, causing the outputs of the amplifiers to simultaneously change stage. Under the control of a routine described in more detail later, the electronics control unit of the meter unit will monitor the outputs of the comparator amplifiers to see whether all outputs have changed states simultareously. If the outputs fail to change states as expected, an error signal is generated to inform a user of the system of a probable failure in one of the comparator amplifiers or associated circuit components. Thus, the operability of the comparator amplifiers is verified at the beginning of each printer setting detector operation. There are a number of conditions under which the operation of the meter unit 10 must be responsive to the occurrence of physical events, in order to preserve critical accounting data, disable the meter from further operation or optimize the meter operation. The necessary signals for triggering this response are provided by signal generator circuit 32 which will now be described in detail with reference to FIGURE 12. As was mentioned briefly with reference to FIGURE 3, signal generator circuit 32 includes a test switch 50, a power sense circuit 52, a meter locked detector 54 and a print detector 56. The power sense circuit 52 is driven by the system -24 volt source. This source is connected to a conventional voltage regulator circuit 344, employed as a voltage level detector circuit. The output of inverter amplifier 346 is applied both to non-volatile random access memory 24 and to the input of a serial ly-con nected inverter amplifier 348. The output of voltage regulator 344 is applied to an inverter amplifier 350 which, together with inverter amplifier 348, provides an input to input buffer 60. The power sense circuit 52 does not affect the operation of the.meter unit as long as the voltage remains at suitable levels. However, if the voltage begins to decrease, indicating an impending power failure, circuit 52 generates a signal which when detected by the central processor 16, causes the processor to enter a routine which cannot be exited other than by a complete shutdown and re-start of the meter. Meter-locked detector circuit 54 includes a light emitting diode 356 adjacent a phototransistor 358. Components 356 and 358 physically located adjacent the base of the meter unit and are normally optically linked. Thus, under normal conditions, phototransistor 3 58 conducts. If the meter unit is unlocked from the base, however, the optical link is broken, driving the lower input to a comparator amplifier 360 to a -15 volt or binary 1 level. When this occurs, the output of comparator amplifier 360 changes state. Comparator amplifier 360 provides an input to buffer circuit 60. GB 2 066 735 A 10 The print detector circuit 56 determines when a print operation has begun; that is, when the print drum 80 actually starts to rotate away from its home position to a printing position. Print detector 56 includes a light emitting diode 364 located on the opposite side of a slotted disk (not shown) on the print drum shaft 122 from a phototransistor 366. When the printer leaves the home position during a print operation, the slot moves out of alignment between diode 364 and phototransistor 75 366. Phototransistor 366 then turns off causing the lower input of a comparator amplifier 368 to be driven to a binary 1 level. The output of comparator amplifier 368 is connected to buffer circuit 60. In order to test the operation of the print detector 56 or the meter locked detector 54, a test interrupt switch 50 consisting of a transistor 372 is included in series with the light emitting diodes 356 and 364. The base terminal of transistor 372 is connected to output port 39, which can be seen in FIGURE 3. Normally, the voltage on the base terminal of transistor 372 is kept at a binary 1 level to provide a current path from a grouna terminal through the light emitting diodes 356 and 364 to a -15 volt source. To simulate an event, the base voltage on transistor 372 is temporarily driven to a binary 0 level to open the current path through the light emitting diodes 356 and 364. The interruption in current to 95 the light emitting diodes has the same effect upon comparator amplifiers 360 and 368 as an event indicating condition. The test condition is readily identified by the central processor since two inputs to buffer circuit 60 will have simultaneously 100 changed state. Light emitting diode or LED display 13 is included to provide a user with a visual display of certain error conditions. Referring to Figure 13, the LED display includes a number of light emitting diodes, such as LED 374 having a common anodic connection to a ground terminal 376. Each of the light emitting diodes has a cathode connection to a different output line from shift register output multiplexer 11. For example, the cathode of light emitting diode 374 is connected to output line 386, and each of the other output lines, is connected to a minus 15 volt source 390 through identical pull-down resistors, such as resistor 388. Depending upon the error conditions to be displayed, binary l's or O's entered one bit at a time into shift register 11 through a data input terminal and are shifted through the register 11 by a series of clock pulses. Both the data and the clock pulses are provided through output port 41. When a binary zero appears at a particular stage of the shift register, both the anode and the cathode of the light emitting diode connected to that stage will be at the same potential; that is, ground. The light emitting diode produces no optical radiation under these conditions. However, when the shift register stage contains a binary 1 (minus 15 volts) the 15 volt potential across the light emitting diode connected to that stage causes the diode to emit light. The particular error condition or status represented by each of the light emitting diodes is described in more detail with reference to a subsequent figure. Specific types of data are assigned to specific locations within the nonvolatile, random access memory 24 and the volatile random access memories 38, 40, 42. Figure 14 illustrates the assignment of memory locations within nonvolatile random access memory 24. Memory 24 is a 256 bit memory divided into four 64 bit registers. Each register contains 16 four bit words. The memory locations and the data handled within the system are expressed in hexadecimal format. That is, the lowest numbered word in a particular register would be word 0 while the highest numbered word would be word /F, which is actually the 1 6th word of the register. Any particular word can be identified by two digits. The first digit represents the register containing the word while the second digit represents a particular level of word in the memory. For example, memory location 00 in nonvolatile memory 24 would be the four bit word located in the extreme upper left hand corner of Figure 14 while memory location 3F would be the word appearing in the lower right hand corner of Figure 14. The first two words of each of the nonvolatile memory registers are used to store the high and low order characters, respectively, of checksums which are used to check for read/write errors which might arise during the transfer of data. The check-sums are generated by subroutines which are described in more detail later. Basically, however, these checksums are simply the summation of all binary digits of data stored in the remaining words of the register. Nonvolatile memory locations 08-OF are assigned to an ascending register which contains a running total of all postage printed by the meter over its entire life cycle. Memory locations 18-1 F contain the descending register, representing the total amount of postage available for metering operations before the meter must be re-funded. Memory locations 28-2F contains a control sum obtained by adding the contents of the ascending register and the descending register. Since the ascending register should be incremented during each printing operation by the same amount by which the descending register is decremented, the control sum should remain a constant until the meter is re-funded. When more postage is added to the meter, the control sum (and the descending register) will be incremented by the amount of the added postage. The control sum will remain constant at the new higher level until a subsequent re-funding operation occurs. Memory locations 12-17 are reserved for a piece count total which represents the total number of metering operations performed by the meter over its lifetime. This information is significant in planning maintenance schedules. Locations 22-26 of the nonvolatile memory are used to store four bit error indicators representing 11 specific types of errors. Location 22 stores indications of error which occur during a RMRS or remote meter resetting routine which may be employed to re-fund the meter from a remote location. The RMRS will be described in general terms later. Location 23 is a storage area for error codes associated with the initialization of the meter. During initialization the meter is reset to 0. Errors occurring during the resetting are represented by l's in the specified memory 75 locations. Location 24 and 25 store error codes associated with the setting of the meter. Memory ldcation 26 stores error codes relating to the operation of the memory units and the photocells of the meter. Most of register 3 of the nonvolatile memory 24 is used to store an RMRS seed number. Referring to Figure 15, random access memory 38 is also preferably a 256 bit memory register. Memory location 02 is used to store a message op code for a data message stored in location 03-OF. Memory locations 1 D-1 F store the information used to control the LED display while the remainder of registers 1 through 3 of random access memory 38 is given over to working memory in which intermediate results, etc. are stored. Each of the registers of memory 38 includes four 4 bit status characters, labeled SCO through SC3. These locations, while physically similar to the data storage locations of the memory, are accessed differently and are used to store status indications rather than data. Status characters SCO-SC3 of register 0 are used to store status indicators associated with the digit select stepping 100 motor of the printer. Status character 0 indicates whether the motor is energized to step up (/F) or step down (1). Status character SC1 indicates whether the master gear of the printer is on a full step (0) or a half step (F). Status character 2 indicates an error condition occurring on a half step (bit 2 = 1), a full step (bit 1 = 1), or a fifth step (bit 0 = 1), while status character 3 indicates the contents of the fifth step counter. SC3 equals 0 indicates the 5th step counter is a multiple of five at the right time. The status characters associated with register 1 provides status indications for the operation of the bank select stepping motor. SCO indicates whether the motor is energized to step up (F) or step down (1). Status character 1 indicates whether the meter is in its disabled position (0) or an enabled position (0). Bit 0 of status character 2 equals 1 when the motor has failed to take one complete step on the specified direction and a bit 1 = 1 when not all O's are observed during the stepping process. Status character 3 indicates the last position of the motor as read by the encoder. Status characters SCO and SC l of register 2 contain information relating to the NVIV1 and interrupt test routines. The individual bits of each of these status characters are described in more detail with reference to Figure 19. Status character 0 contains one NVIV1 test bit for each of the registers. The value of each bit indicates 130 GB 2 066 735 A 11 whether a nonvolatile memory test described in more detail in a description of a TNVM subroutine indicates proper memory operation. The individual bits associated with status character 1 indicate the results of open circuit and short circuit tests of the meter locked detector 54 and the print detector 56. The meaning of these bits is discussed in more detail in a description of a TINT subroutine. The assignment of individual bits in words 1 D-1 F of memory 38 are shown in Figure 16. The first two bits of word 1 D are used to provide an RMRS time out error indication and an initialization time out error indication. A user is given a certain number of opportunities to carry out the tasks needed to perform remote resetting or to initialize the printer. If, for any reason, these tasks are not complete within a given number of attempts, the meter is disabled and these bits are set to 1. With reference to word 1 E, bit 3 is set to 1 when the contents of the ascending and descending register do not equal the control sum, bit 2 is set to 1 when a check sum error is indicated, bit 1 is set to 1 when an error associated with the reading of photocellss detected. Referring to word 1 F, bit 3 is set to 1 when the amount of postage remaining in the descending register is less than the amount of postage to which the meter has been set. Bit 2 is driven to 1 whenever the amount of postage indicated by the descending register fails below $100. This information is useful to a user since it provides notice that the meter will have to be re-funded in the not too distant future. Bit 1 of word 1 F is always on while bit 0 is always off. These two bits simply provide an indication that the meter is on but that no short circuits have occurred which would cause the LEDS to become erroneously energized. With reference to Figure 17, random access memory 40 contains the same seed number for the RMRS routine as is also stored in register 3 of the non-volatile memory. Words 50-5F and 60-6F of random access memory 40 are used to store constants used in the RMRS routine while words 70-7F are reserved for intermediate calculations, temporary storage, etc. Referring to Figure 18, locations 94-97 of random access memory 42 store the current setting of the meter in a meter setting or MSR register. The next postage amount to be set into the meter is stored in an NTBS register comprising words 9C-91F of the memory unit. Status characters are stored at SCO and SC1 of register 8. Status character SCO contains the data currently being read at a specified input port, while status character SC 'I is used to store an error code associated with the test of the printer setting detectors. The generation of these error codes and others are described in somewhat more detail in the discussion of the individual subroutines during which they are generated. In the flow charts of the main program and the subroutines, references often made either 12 GB 2 066 735 A 12 expressly or by implication to a postage meter program printout incorporated into the specification as an Appendium A. The programming language of the printout is an assembly level language developed specifically for the MCS-40 components manufactured by Intel Corporation. While a comprehensive explanation of each of the instructions in this language may be found in the Intel 4004 and 4040 Assembly Language Programming Manual, copyright 1974, by Intel Corporation, 3065 Bowers Avenue, Santa Clara, California 95051, all of the instructions used in the program are listed in Appendium B along with a brief explanation of each of the instructions. In describing the flow charts the following number convention shall be used. Those operations or decision blocks that are identified in a particular routine will be identified by a four digit number. The first two digits identify the figure in which the particular block appears. The last two digits are unique to a particular block within that figure. For example, the first operation in Figure 20 is identified as operation 2002. That figure is a greatly simplified flow chart of the overall operation of the meter. After the meter is powered up, the first step 2002 is to initialize output ports to the motors of the meter, the photocells in the printer setting detector array, the LED display and the event-indicating photocells. The printer is then set to zero (block 2004) and any error flags stored from the previous cycle of operation are written (block 2006) into the LED display. A ready-to receive message or an error message is transmitted (block 2008) to the control unit for the 100 meter. Error cheeks are made after the transmission routine and error messages generated (block 2010). The error messages are written into the nonvolatile memory and out to the LED display. A check is then made as to whether a 105 print command is being received from the control unit (block 2012). If it is, a print routine is executed (block 2014) after which control is returned to block 2008. If a print command is not being received, a cheek is made as to whether a power loss has been detected (block 2016). If a power loss has been detected, a jump is made to a trap routine (2018) from which control cannot be retrieved without completely shutting down and restarting the meter. If no print command has been received, and if a power loss is not sensed, a cheek is then made (block 2020) as to whether a message is pending from the control unit. If no message is pending, control is returned to block 2012. If a message is pending, the input is decoded and made (block 2022) for errors within the message. If errors have occurred, program execution continues at block 2008 which sends a responsive message to the control unit. Error messages are generated and written out to the LED display and into the nonvolatile memory. If the message was error free, the required routine is performed (block 2024) before the program control returns to block 2008. As was mentioned earlier, the messages which130 are transmitted to and from the control unit 12 are organized into sixteen four bit words for reasons of simplicity even though most messages do not require the full 16 words. Preferred formats for the various messages are set out in Appendium D. The first two words of any message, whether transmitted to or from the control unit, is a checksurn obtained by adding the remaining words of the message. The third word of any message is an op code identifying the particular type of operation to be performed or which has been performed in response to the message. Words identified by a D are data words. Words identified by an E are error words while words identified by an S are specifier words. Words identified by R indicate the address of a register to be written into or read. A word identified by a B is a four bit status word. Figures 21-26, taken collectively, illustrate the main program for the postage meter. Interconnections between various blocks of the flow chart are shown either as direct arrow connections wherein the arrowhead indicates the direction of the program flow or as indirect connections linked through encircled alphabet characters. An example of an indirect connection is shown in Figure 21 where an encircled A appears both at the bottom of the left hand column of blocks and at the top of the right hand column. The two points indicated by an encircled character are treated as being directly connected. The particular CPU chip employed in one embodiment of this invention includes an interrupt input terminal which is disabled (block 2102) as the first step in the main program. Each of the output leads from the outputports 37 and 41 are loaded with O's to disable the two stepping motors which drive the printer, to initialize the shift registers which control the photocells in the printer setting detector array and the LED display. A binary 4 is loaded into output port 39 to disable the motor select outputs while energizing the event-indicating photocells. The completion of these steps is followed by writing a predetermined code (block 2104) into random access memory. The code is later transmitted to the control unit. Control of the meter then jumps (block 2106) to an INITS subroutine which sets the printer to 0. This subroutine and all other subroutines called by the main program are described in more detail with reference to later figures. After the INITS subroutine is performed, a check is made for any errors noted during execution of that subroutine. Error codes are written into nonvolatile memory (block 2108), after which a check is made (block 2110) for errors which occured during previous initialization attempts. The initialization subroutine is described as an unconditional routine; that is, regardless of noted errors, it will continue to attempt to reset the meter to zero when called. This continues until a check (block 2112) indicates that the number of unsuccessful initialization attempts has exceeded a predetermined number. If initialization is successfully completed before the predetermined k. 13 GB 2 066 735 A 13 number is reached, an initialization error flag is cleared (block 2114) from nonvolatile memory. Error flags which were generated during previous attempts to set the meter to a specified postage are cleared (block 2116) from nonvolatile memory before control jumps to a TNVM subroutine (2118) which tests NVM memory, generates error flags and writes those flags into a specified index register in the central processor. But if an error had occurred during execution of the INITS subroutine, these intermediate steps would have been skipped with control branching from block 2108 directly to block 2118. Checksum errors and control sum errors are retrieved from nonvolatile memory and written out 8C to the LED display (block 2120) before TINT subroutine (block 2122) is called to test the interrupt input photocells. TINT error codes are written out to the LED display. A checksum generation routine is performed as 85 part of the main program. The first step in this routine is to initialize the registers (block 2202) to be used. One of the last fourteen words from a previously generated 14 word message (which excludes the checksum words of the message) is retrieved from memory and summed with previously retrieved words in the same message. After the addresses are incremented (block 2204), a check (block 2206) is made as to whether the last word in the message register has been read out of memory. If it has not, the cycle is repeated. If it has, the generated checksum is written into memory and the TRAN or transmission routine begins. Registers to be used are initialized (block 2208), the input/output ports for the communication with the control unit 12 are selected (block 2210) and a start bit is written to the output port dedicated to communication with the control unit. After the start bit is written, a check (block 2212) is made whether an acknowledgement is received. The program continues to recycle through the checking step 2212 until an acknowledgement is received. Once a one is received, a 0 is written out to the control unit and a programmatical delay 2114 occurs to establish an intercharacter gap. A four count loop is set up (block 2216) before a memory location is selected and read (block 2218). The first bit of the retrieved word is read in operation 2219. A binary one is written to the output port which communicates with the control unit and a decision made as to whether the data bit retrieved from memory was a 0. If the bit was not a 0 (i.e., was a 1), control branches to a first delay routine 2220/ which is followed in sequence by a second delay routine (block 2222). If however, the check shows that the bit retrieved from memory was a zero, delay routine 2222 is accessed directly. After delay routine 2222 is finished, a zero is written (block 2223) to the output. Thus, where the bit being transmitted is a binary one, the output is maintained at a 1 level (light being generated by the LED) for a longer 0. After a delay for an intercharacter gap, a check is made as to whether the loop count is less than four; that is, whether all bits in the selected word have been read. If it is, the loop count is incremented to select the next bit of the word before control returns to block 2219. If the loop count equals four, a cheek is made (block 2224) as to whether the end of the message register has been reached. If not, control is returned to block 2216 at which a four count loop is again set up to read the next word from the message register. When the last word of the message register is transmitted, the main program continues at block 2302 which is a jump to a TPST subroutine which compares the contents of the meter setting register to the contents of the descending register and to the absolute amount of $100.00. After the TPST subroutine is executed, the TNVM subroutine is called (block 2304) to look for errors bits. Any error bit is stored in the specified register and a jump is made (block 2306) to a READS subroutine which tests the photocells monitoring the printer setting. Error codes generated as a result of the test are stored in the same register as the nonvolatile memory error codes and the jump is made (block 2308) to the TINT subroutine which tests the hardware associated with the interrupt circuitty. Any resulting error code is stored in the same registeras error codes produced by the preceding steps. The contents of this register are written both into a specified random access memory (block 2310) and into nonvolatile memory (block 2312). A CHKSM subroutine is then called (block 2314) to generate new checksums for the altered contents of the nonvolatile memory. An ERRR subroutine is called to retrieve the error flags from nonvolatile memory and to read them into a specified index register in the CPU. Initialization error flags and RMRS time out error flags are read and combined and written into a display area with a DISP subroutine which is called (block 2318) to display the results on LED display 13. A determination (block 2320) is made as to whether a print signal is present. As was mentioned earlier, this signal is generated only when the print drum of the printer has actually begun to move from its home position toward a postage imprinting position. If no print signal is sensed, a check 2322 is made as to whether a shut-down condition is present. A shut-down condition as defined is an underpower condition. If such a condition is sensed, a jump is made to a TRAP loop 2324 which cannot be exited until the meter is completely shut down and powered up again. If a print signal is detected at block 2320, the main program enters a POST routine which updates the ascending and descending registers, the piece counter and the checksums for the nonvolatile memory registers. The contents of the ascending register are modified by adding the contents of the meter setting register and the CHKSM routine is called (block 2404) to update the checksums associated.,. tith those registers. period of time than where the transmitted bit is a 130 The piece counter is incremonted by one and the 14 descending register is decremented by subtracting the contents of the meter setting register. The CHKSM subroutine is again called (block 2404) to update the checksums associated with those 5 registers. A jump is made to the TPST subroutine (block 2406) to compare the contents of the meter setting register both with $100.00 and with the contents of the descending register. Flags indicating whether the meter: setting register exceeds either or both of these levels are written into the message area. If the contents of the descending register are less than the contents of the meter setting register, indicating there is insufficient postage to perform the print operation, a jump is made to a DS13LE routine (block 2408) to disable the meter. A disabled bit is then written (block 2410) into memory. if, however, the amount of postage in the descending register is sufficient, the step 2408 is bypassed, and an enabled bit is written in the memory. The print op code is written into random access memory (block 2412) and the meter setting register contents are transferred to an output register (block 2416). An inquiry 2418 is made as to whether the print signal has terminated. Until the print signal does terminate, program control remains at this inquiry. When the print signal has terminated, control is returned to block 2202. Where no print signal had been sensed at block 95 2320 and no shut-down condition was sensed at block 2322, program control is tranferred directly from block 2322 to a block 2420 at which a check is made as to whether the control unit is ready to send a message. The first step in the message 100 receiving routine (block 2422) is the selection of the input port which receives signals from the control unit 12 and of the random access memory registers into which data messages are written. The processor then waits (2424) until an input bit is received to write out an acknowledgment bit (2426). A check is made (2502) as to whether the input bit has terminated. If it has not, a timer is incremented (block 2504) and a cheek is made (block 2506) as to whether a predetermined period of time has expired. This timing loop is repeated untli the input bit is terminated or until the predetermined time has elapsed. In the latter instance, an error code 1 is loaded in the accumulator to indicate that too much time was required to remove the acknowledgment bit. If the time out period has not expired, program control continues at a block 2508 in which a four count loop is set up. A bit space timer, which checks the interval between incoming bits, is reset in operation 2510 before the input portfrom the communications channel is read in block 2512. A check is then made as to whether the input bit is on. If it is, the input is again read in blocv. 2514. If it is not, the bit spacing timer is incremented (block 2516) and a cheek is made (block 2518) as to whether the maximum allowed space between bits has been exceeded. If the time interial between bits is too great, an error code 2 iswi.itten (block 2520) into GB 2 066 735 A 14 the accumulator. If the input bit is on at the time of operation 2514, a second decision is made as to whether the input bit has returned to zero. If the input bit has not returned to a zero level, a bit duration timer is incremented (block 2522) and a determination 2524 is made as to whether a maximum bit duration has been exceeded. If the maximum bit duration is exceeded an error code -3- is loaded into the accumulator. If the maximum bit duration has not been exceeded, the input read cycle is repeated until it is determined that the input has returned to a zero level. Since the only difference between a binary 1 and a binary 0 in a message being received is the length ot time during which the LED remains energized, it is necessary to decode the length or duration of LED energization (block 2526) to determine whether a 1 or a 0 is being received. The result is stored and a determination (block 2528) is made as to whether the loop count is less than or equal to four. If it is, program control is looped back to block 2510. If the loop count equals four, program control continues with the four bit word being written (block 2602) into random access memory. If the last word in the message has not yet been received (block 2604), program control returns to block 2508 to read the next four bit word in the message. If the last word has been received, an error code 0 is loaded into the accumulator in block 2606. The contents of the accumulator, whether they are a zero from block 2606 or a nonzero error code from one of blocks 2507, 2520, or 2530 are loaded into a temporary register (block 2608) before the acknowledgment bit is ended. The contents of the temporary register are then reloaded into the accumulator (block 2610) and a determination is made as to whether the accumulator content equals zero (block 2612). A zero accdmulator indicates that no errors have occurred during receipt of the message from the control unit. A nonzero accumulator indicates that an error has occurred. Under the latter conditions, a jump 2614 is made to ST5, to write an error op code. If, however, there were no errors, a checksum is generated for the received message and is compared with the message transmitted checksum. A determination is then made (block 2616) as to whether the two checksums are equal. Any inequality indicates that a discrepancy exists between the message as transmitted by the control unit and as received by the meter. An error message indicating a discrepancy is loaded (block 2618) into the accumulator and the error op code is written (block 2614). If the two check sums are equal, the op code (which is the third word of the message) is read and a jump is made (block 2620) to the routine called by the message. Thereafter, program control returns to block 2202 for another complete cycle of the post- initialization portion of the main program. The main program and the subroutines use a number of multi-count loops and fixed time delays for reading words, for writing words, for IF 1 GB 2 066 735 A 15 establishing delays for stepping motor operation, and for similar purposes. The programmatical technique for establishing the multi-count loops and fixed time delays is shown in FIGURE 27. A specified four bit register is loaded with a known value less than the maximum capacity of the register. Where the technique is being used to establish a multi-count loop, the routine into which the loop is incorporated is performed once before the four bit register is incremented. A check is then made as to whether the register contents are equal to 0 (maximum register capacity plus 1). If -the register does not equal 0, the routine is again performed and the register is again incremented. This loop repeats itself until the check reveals that the register contents equal 0. At this point, the loop is exited and the next operation in the sequence performed. The only difference between the use of this technique to establishing multi-count loops and its 85 use to establish a fixed time delays is that no routine is performed within the time delay loop; i.e., the -perform routine- block shown in dotted outlines is completely omitted where only a fixed time delay during program execution is desired. In the instruction set used with the Intel 4040 central processor, a single ISZ instruction performs both the increrienting step and the zero equality check. FIGURES 28 and 29, taken collectively, 95 describe an initialization subroutine INITS which is used in setting the meter to zero as part of the initialization routine. The meter setting register or MSR in memory 42 is set to zero (block 2802). The output ports for controlling the digit select motor are selected. The rest position is written out (block 2804) and the delay loop is entered to give the motor time to reach that position. The digit select motor is then deenergized and a jump is made to READS subroutine (block 2806) to read the current setting of the photocell which senses whether monitorng wheel 166 is on a half or a full step. If the monitoring wheel is on the half step, a jump is made to the STEPD subroutine (block 2808) to drive the wheel to a full step. If the monitoring wheel is already on a full step, the output ports for the bank select motor are selected, the rest position for that motor is written out and a fixed delay occurs to permit motor to reach that setting. A jump has been made to the READB subroutine (block 2810) to determine whether the printer yoke is at the most significant digit. If it is not, the yoke is stepped towards the most significant digit (block 2812) position with a check 120 being made after each step as to whether or not more than five steps have occurred. If less than five steps have cccurred and the yoke has not yet arrived at the most significant digit position, this loop is reiterated. If more than five steps have occurred, an error condition exists since a maximum of five steps should have been required to move the yoke from one extreme to the other. Under these conditions, control is returned to the main program (block 2814) and an error code 1 is130 loaded into the accumulator. If the yoke reaches the most significant position without exceeding the maximum number of permissible steps, the digit select and bank select motor directions are set (block 2816), after which the zero digit position photocell for the selected bank is read. The first bank to be read is, of course, the most significant digit bank. If the selected bank is not at zero, a jump is made (block 2902) to the STEP1) subroutine to drive the print wheel towards zero. If an error occurs during the execution of the STEPD subroutine, an error code is stored (block 2904) in a predetermined index register, control is returned to the main program and an error code 7 (block 2906) is loaded into the accumulator. If no error occurs during the execution of the STEPD subroutine but more than nine steps are required to zero the selected print wheel, the identification of the bank being reset to zero is loaded into the index register before control is returned (block 2908) to the main program with an error code 2 being loaded into the accumulator. In the absence of errors, the loop including blocks 2910,2912, 2902, 2914 and 2916 is repeated as the wheel is stepped digit by digit toward the zero position. Once the reading of the photocell indicates that the selected bank is at zero, the print wheel is stepped from zero (block 2918) and a reading made to determine whether the photocell output reflects this. If the photocell output does not change when the print wheel is stepped past zero, there is clearly a malfunction in the system. The identification of the bank being set is loaded into the selected index register (block 2920) before control is returned to the main program. Under these conditions, an error code 5 is loaded into the accumulator. If the photocell output does change when the print wheel is stepped from zero, the print wheel is stepped back to zero (block 2922) and a second check is made (block 2924) as to whether the photocell again shows the wheel at its zero position. If the photocell does not correctly show the wheel at the zero position, the bank identification is loaded into the specified index register (block 2926). Control is returned to the main program (block 2928) and an error code 6 is loaded into the accumulator. If the photocells are operating properly during this step-past, step-back error check, a jump (block 2930) is made to the STEPS subroutine to select the next lower bank. Any errors occurring during execution of the STEPS subroutine are identified and the proper error code is loaded into the specified index register (block 2932). Control is returned to the main program (block 2934) with an error code 4 being loaded into the accumulator. If no errors occurred during the execution of the STEPS subroutine, a check (block 2936) is made as to whether the last bank has been set to zero. If it has not, program operation continues at block 2910 which repeats the same bank setting steps and error checking steps for each of the banks. When the last bank has been set to zero, the fifth step photocell adjacent the monitoring wheel 16 GB 2 066 735 A 16 166 is read and a check is made as to whether there is a match between the contents of the fifth step counter and the location of the extra long slot on the monitoring wheel. If a match is detected, the fifth step counter is reset (block 2938), after which control branches back to the main program (block 2940). If the cheek does not indicate a match between the position of the monitoring wheel and the contents of the fifth step counter, a jump (block 2942) is made to a STEPD subroutine to step the monitoring wheel down one step. A check (block 2944) is made as to whether or not four such steps have occurred. If they have not, control is returned to the block in which the fifth step photocell is read. In summary, the INITS subroutine resets the print wheel associated with each bank from its last setting to a zero setting while simultaneously checking to make sure the photocell associated with that bank is providing proper zero position reading. The INITS subroutine also zeros the fifth step counter when the extra long slot on the monitoring wheel is lined up with the photocell which detects the slot. Figure 30 is a flow chart of a TNVM subroutine which checks for correspondence between chocksums and data stored in the nonvolatile memory. The subroutine also checks whether the sum of the contents of the ascending and descending registers equal the control sum. 95 The first step (block 3002) of the subroutine is to initialize registers to select the first register in the nonvolatile memory, to select a status character location into which an error code can be written and to set up a four count loop. Data stored in the selected register of the nonvolatile memory, excluding stored checksum words, is summed to generate a checksum for the register contents in an operation 3004. The checksum already stored in the register is retrieved and the generated checksurn subtracted therefrom (block 3006). If the difference between the stored checksurn and the generated checksum are not equal to zero, indicating that errors have occurred either in writing data into or reading data from the nonvolatile memory, an error message is generated (block 3008) for that particular register. If the stored checksum does equal the generated checksum, a determination (block 3010) is made as to whether the last nonvolatile memory register has been tested. If the last register has yet to be tested, the next register is selected (block 3012) and control is looped back to block 3004, to repeat the checksum generation and comparison process. When the last nonvolatile register has been tested, any resulting error bits are written (block 3014) into status character 0 (OSCO) of register two in random access memory 38. Referring again briefly to Figure 19, a status character is a four bit memory location. A 1 in any 125 bit of that word indicates a checksum error in the particular register associated with that bit. The TNVM subroutine retrieves and adds the contents of the ascending register and descending register (block 3016) after which the sum is 130 subtracted from the retrieved control sum. If a difference other than zero is noted, as it should be during proper operation, the accumulator carry bit is cleared. The last step in the subroutine (block 3018) is a branch back to the main program. Figure 31 is a flow chart of a TINT subroutine called to test the photocells in the event-indicating signal generator circuit 32. One photocell indicates whether the meter has been removed from its base. The other photocell indicates whether a print operation has begun. The first step in the subroutine (block 3 102) is to select the output port which controls the test switch 50 in the signal generator circuit. A zero is written (block 3104) at this output port to turn off the light emitting diodes 356, 364. The inputs from the meter locked detector 54 and print detector 56, which include the referenced LED's, are read to input buffer 60 (block 3106) and temporarily stored. A binary 1 is then written at the selected output port to switch 50 to turn on the LED's. The detector inputs are again read (block 3108) and the two readings combined (block 3110). If the circuits are operating properly, the accumulator should equal zero. If an error has occurred, the accumulator contents will not be equal to zero. The accumulator are stored in status character 1 of register two of random access 38 (block 3112). Control is returned to the main program (block 3 114). Figure 32 is a flow chart of a TPST subroutine called to compare the contents of the descending register to the contents of the meter setting register and to an absolute amount of $100.00. The higher order digits of the descending register are read (block 3202) and a determination is made (block 3204) as to whether the contents of the descending register are greater than or equal to $100.00. Whenever the contents of the descending register fall below this arbitrarily selected $100.00 limit, an LED display lamp reminds the user that the postal meter will need to be recharged soon. The accumulator carry bit is set to 1 if the amount stored in the descending register is less than $100.00 but is reset to zero where the contents of the descending register exceed or are equal to $100.00. A hexadecimal representation (1000) of the number eight is loaded (block 3206) into the accumulator and shifted right. The accumulator contents are then stored in the temporary register. The contents of the meter setting register are retrieved and subtracted (block 3208) from the contents of the descending register. If the descending register contents are greater than the meter setting register contents, the accumulator carry bit is reset to 0. Otherwise it is set to 1. The accumulator contents are then combined with the contents of the temporary register and the result is written (block 3210) into a display register. A zero is written into the accumulator (block 3212) upon return to the main program. The end result of the TPST subroutine is a four bit word which is stored in random access memory location 1 F which is the last register for 0 p 17 GB 2 066 735 A 17 the LED display bit. The leftmost bit of this word is a one if the contents of the descending register are less than the contents of the meter setting register. The next less significant bit is a one if the contents of the descending register are less than $100.00. The next bit is an unconditional "on" bit which gives the user an indication that the meter is on. The least significant bit of the four bit word should always be a zero. Referring to Figure 33, the illustrated READS subroutine is used in controlling the printer setting detector array 30.
1 The subroutine includes preliminary steps (not shown) for selecting which of the three detector- containing columns of the printer setting detector array are to be selected. After the preliminary steps have been carried out the error indicator for the array output is cleared (block 3302) and all inputs from the array are read (block 3304) before any data is shifted into the shift register 28. At this point, the detector array should produce all zeros. If it does not, an error condition is indicated and stored. Then, under the control of the electronic control unit, a binary 1 is shifted (block 3306) to the first stage of the shift register multiplexer. The signals on the outputs of the comparator amplifiers are again read. At this point, the amplifiers should have binary 1 outputs for the reasons stated in the description of Figure 11. If not, all of the signals are binary 1's, an error indication is stored (block 3308) and the shift register 28 is clocked by the single clock pulse. A check is then made at decision block 3310 as to whether the binary 1 is at the preselected stage of the shift register. The clock pulses are repeatedly 100 applied to the shift register until the binary 1 is shifted into the desired stage.
When the binary 1 has been shifted into the desired multiplexer stage, the inputs from the associated detectors are read and stored. After the 105 read operation is complete, the shift register 28 is again clocked and a check made at decision block 3312 to see whether the binary 1 has cleared the last stage of the shift register. The shifting operation is repeated until the shift register is 110 clear, after which the control is returned to the main meter program.
Figure 34 is a full chart of a CHKSM subroutine which is called togenerate new checksums for selected registers in the nonvolatile memory when the contents of those registers have been changed. The starting address of the NVIV1 register to be accessed is set in the calling routine. Once that register hae been selected, a pair of temporary registers are initialized (block 3402) by loading them with zeros. A four bit word from the selected nonvolatile memory register is then read and added to the contents of one of these registers, arbitrarily designated as register R,, Carry bits are accumulated in an adjacent register 125 Ra. During the first cycle of the CHKSM subroutine, there is of course no carry bit. The address register which indicates the nonvolatile memory word being read is incremented and a determination (block 3404) is made as to whether 130 the last word in the register has been read. The decision 3404 is made using a count loop of the type previously discussed. The count loop ir, not expressly illustrated in the CHKSM flow chart.
If the end of the selected NVIV! register has not been reached, the cycle is repeated with a new four bit word being read from memory and added to the previously accumulated words in register Rb. The carry (if any) which results from this step is added to the contents of register R, When the end of the loop is reached, the contents of registers R,, and Rb are written into the checksum locations for the selected NVIV1 register. The high order or carry is written into word 0 of the register while the low order is written into word 1. Control is returned to the main program.
Figure 35 is a flow chart of an ERFIR subroutine called to read error registers in the nonvolatile memory and to set up error indications in an index register of the central processor in a form which permits determination as to whether certain operations or subroutines should be performed or aborted. Error indications are stored in Register 2, words 2-6 of the nonvolatile memory. The first step in the ERRR is to set up the address of the first of these error registers; i.e., the error register containing error codes for the RMRS subroutines. Any error code stored at this location is read (block 3502) and a check is made (block 3504) as to whether the RMRS error exceeds a fixed limit. As was mentioned earlier, the user is given a certain number of opportunities to carry out required steps at the beginning of the RMRS subroutine. If he does enter the correct combination within a certain number of attempts, a zero is written to the most significant bit or bit 8 of a specified index register. If the user fails to enter the correct combination M8n the allowed number of attempts, a 1 is written into the same location. The central processor is instructed (block 3506) to clear the accumulator carry bit as a precaution, since the bit might have been set during the performance of earlier subroutines.
The nonvolatile memory location containing the error flags associated with the initialization process is read and a determination (block 3508) is made as to whether any initialization errors are indicated. If such errors are indicated, the accumulator carry bit is set to 1. If no errors are indicated, the carry bit remains at the zero level. The nonvolatile memory register containing error flags associated with the meter setting subroutine is read and another determination (block 3510) is made as to whether setting errors have been recorded. If so, the carry bit of the accumulator is set to 1. The value of the carry bit is stored (block 3512) in the second most significant bit of the specified index register.
A binary 1 loaded into this location in the specified index register will indicate that an initialization error and/or a setting error has occurred but will not specify exactly which kind of error has occurred. A binary 0 loaded into this location in the specified index register indicates that no errors have been recorded during the 18 execution of either the initialization or meter setting subroutines.
The nonvolatile memory register which stores error codes related to the cumulative number of sequentially occurring setting errors is read (block 3514) and a determination is made (block 3516) as to whether the cumulative number exceeds a predetermined limit. If it has, a binary 1 is written into the second least significant bit of the specified index register. Otherwise, a binary 0 is written into that location in the register. The accumulator carry bit is cleared (block 3518) assuming it was set during the reading of the initialization error flags and setting error flags. The nonvolatile memory register which stores error flags relating to 80 memory or photocell errors is read and a determination made (block 3520) as to whether any errors are indicated. If errors are indicated, the accumulator carry bit is set to one. The carry bit value, whether a 1 or a 0 is stored (block 3522) in the least significant bit position of the index register. Meter control branches back to the main program at this point.
The error-indicating bits which are loaded into the specified index register remain there after the ERRR subroutine is exited. The contents of this register are accessed during the execution of other subroutines.
Figure 36 is a flow chart of a DISP subroutine used to retrieve LED display indicator bits from random access memory 38 and to write those indicators to the outputs of the shift register multiplexer 11, which drives the LED display 13. A specified index register is loaded with the address of the first word (word 1 D) of the display area in random access memory 38. The output port connected to the shift register multiplexer 11 is specified (block 3602) and a four count loop counter is set up.
The first four bit word is read from memory into 105 the accumulator. One bit of this word is written out (block 3604) to shift register multiplexer 11, after which a cheek (block 3606) is made as to whether the count in the loop counter is less than or equal to four. If it is, the count is incremented by one and another bit from the same word is written out to the shift register multiplexer. When the loop count exceeds four, the program branches to block 3608 which determines whether another word in the display area registers and random access memory remains to be read. If another word is to be read, the memory address is incremented before program control returns to block 3602 to repeat the read/write cycle for the newly addressed word. When all three words in the display area of the random access memory have been read out, control is returned to the main program.
Figure 37 is a flow chart of a DS13LE subroutine 60,pjhich is used to disable the printer; i.e., to drive the yoke to a position in which all of the print wheels are mechanically locked up by the troughs on the yoke surface. When control of the meter jumps to the DSBLE subroutine, a disable flag is initially written (block 3702) into SC 1 of register 1 GB 2 066 735 A 18 in random access memory 38.
The last bank setting of the printer is read from SC3 of the same register and a determination is made (block 3704) whether the printer was already sitting in the disabled position when the DS13LE subroutine was called. If the printer was already disabled, a 0 is loaded into a specified index register and control returns to the main program. But, if the printer is not disabled, a jump is made (block 3706) to the STEPS subroutine to drive the printer to the disabled position. Any errors which are noted during the execution of the STEPS subroutine are written (block 3708) into nonvolatile memory before a jump is made to a DESLT subroutine.
The DESLT subroutine is called only when setting problems or photocell reading problems occur. This subroutine is described in more detail with reference to a later figure. If the DESLT subroutine is called, the contents of the error flag index register are loaded into the index register specified earlier in the DS13LE subroutine (block 3710) before control is returned to the main program.
If, however, the STEPS subroutine is called and executed without errors, only a 0 is loaded (block 3712) into the specified index register before control is returned to the main program.
Figure 38 is a flow chart of a READR subroutine which gives a user unrestricted access to certain registers in the nonvolatile and volatile memories. The register to be read is specified in the data message block in register 0 of memory 38. The first data word (word 03) in this register is read (block 3802) to specify the memory location to be accessed by the user. A check is made (block 3804) to determine whether the user has specified a location within the nonvolatile memory. If a memory location other than the nonvolatile memory is specified, a further check (block 3806) is made as to whether the specified register is undefined; i.e., whether it is a register other than the meter setting register. If the block 3806 indicates the meter setting register is specified, that register is read and the contents written into an output area from which they can be sent to the control unit. After the register is read and written out, control is returned to the main program. But if the check 3806 determines that the register sought to be accessed is undefined, control is returned immediately to the main program.
If the earlier check 3804 shows that a register within nonvolatile memory has been specified, the first location in the specified area is read (block 3808) before a counter loop is set up. The specified register is read (block 3810) and written into a specified output area. The addresses for the registers to be read and for the output area into which the data is to be written are incremented and a check 3812 is made as to whether the end of the specified register has been reached. If it has not, program control is returned to block 3810. If it has, control is returned to the main program.
Figure 39 is a flow chart of a SETZ subroutine X i 19 GB 2 066 735 A 19 which is used to set the printer to a specified postage amount. The first operation in the subroutine (block 3902) is a jump to the ERFIR subroutine described previously to permit any error flags stored in nonvolatile memory to be retrieved and loaded into a specified index register. If any flags are detected after the return from the ERRR subroutine, a "70" error message is generated (block 3904) and a direct jump is made (block 3906) to an error writing STER subroutine. But if no error flags are detected, a cheek is made as to whether the BCD ropresentations of the postage to be set are within limits; i.e. 0-9. If a postage value is found to fall outside the limits, a -60- error message is generated (block 3908) and a direct jump made to the STER subroutine. If the postage values are within limits, the NT13S register is read (block 3910). The SETS subroutine, described in more detail later, is called in operation 3912 to set the printer mechanism to the postage values specified in the NTBS register. If any errors are noted during the execution of the SETS subroutine, a direct jump is made to the STER subroutine. If no errors are noted, a decision (block 3914) is made as to whether the message has an enable bit. If the message lacks an enable bit, a jump is made to an ERR3 subroutine (block 3916) zo reset the cumulative set error indicator and to generate a new NVIV1 checksum. After that, control is 95 returned to the main program.
If, however, the message has the enable bit, a jump is made (block 3918) to an ENBLE subroutine to enable the meter, assuming there is sufficient postage remaining in the descending 100 register to actually print the specified postage.
After execution of the ENBL subroutine, a decision 3920 is made as to whether the meter was actually enabled. If it was not, a disabled flag is written (block 3922) into random access memory. 105 The status of the descending register (whether less than $100.00 and/or less than the meter setting register) is loaded into memory (block 3924) before a jump is made to block 3916. 45 If the decision block 3920 shows the meter was actually enabled as requested, a check 3926 is made as to whether any errors occurred in the enabling process. If they did, a "50" error message is generated before control is jumped to the STER subroutine. If there were no errors during the enabling, control branches to the block 3916 which ultimately returns control to the main program.
Figure 40 is a flow chart of the STER subroutine which can be called at several points during the execution of the meter setting or SETZ subroutine.
When the STER subroutine is called, a specific error message has already been loaded into the accumulator. The first operation in the STER subroutine (block 4002) is to write this error 125 message into a specified word of the data message register of memory 38. A hexadecimal A is loaded into the accumulator (block 4004) and the generated error code is added to the accumulator contents. If a decision 4006 shows that the carry bit has been set to 1, this means either that error flags were originally read from the nonvolatile memory at the start of the SETZ subroutine or that the postage values are not within BCD limits. In the event of either type of error, a jump (block 4008) is made to the DSILT subroutine to disable the ' meter. Thereafter, control is jumped (block 4010) to ERR 1 to cause an error message to be written in the nonvolatile memory.
If decision block 4006 shows that no error or that an error code other than a "60- or '70- error code was generated during the execution of the SETZ subroutine, control is returned immediately to the main program.
Figures 41 and 42, taken collectively are a flow chart of the SETS subroutine which is called during execution of the SETZ subroutine to actually set the printer to the postage values specified in the NT13S register.
The first operation in the SETS subroutine is a jump to the DSBLE subroutine described previously to initially disable the printer. Any error code associated with the execution of the DSBLE subroutine is loaded into the accumulator and a decision 4102 is made as to whether the accumulator contents are equal to zero. A nonzero accumulator indicates that an error has occurred during the execution of the DSBLE subroutine. Under such conditions, control is returned to the main program with a 1 being loaded into the accumulator. If no errors occur during execution of the DS13LE subroutine, the addresses of the NTBS register and MSR register are loaded (block 4104) into a specified index register and jump block 4106 is made to a CMP subroutine, to be described in more detail later. Basically, the CMP subroutine compares the contents of the two registers and provide the data which indicates how far and in which direction each of the print wheels of the printer must be moved. If the CMP subroutine shows that no setting is required at a particular bank, a determination is made (block 4108) as to whether all banks have been checked. The digit-by-digit comparisons of the contents of the NT13S register and Meter Setting Register continue through the loop including blocks 4106 and 4108 as long as no setting is required, at least until the end of the loop is reached. If the end of the loop is reached without any setting being required, control is returned to the main program (block 4202) with a 0 being loaded into the accumulator.
If the comparison of the NTBS and MSR registers for particular banks show that setting is required, control jumps to the STEPS subroutine (block 4110) to drive the main gear into engagement with the spur gear for the particular bank. The STEPS subroutine is described in more detail with reference to a later figure. After execution of the STEPS subroutine, a decision 4112 is made as to whether any errors have occurred. If errors have occurred, an error code is loaded into a specified index register, control is returned to the main program (block 4114) and a GB 2 066 735 A 20 2 is loaded into the accumulator. If no errors occur during the execution of the STEP subroutine, another decision 4116 is made as to whether the printer yoke has been driven to the last bank to be set. If it has not, the loop beginning with block 4110 and ending with block 4116 is repeated until the printer reaches the last bank to be set.
At that point, the motor direction indicator for the banks select motor is reversed (block 4118) and control jumps to the STEPD subroutine (block 4204) to actually set the print wheels to the desired digit. This subroutine is described in more detail later. Errors, if any, occurring during execution of the STEP subroutine are loaded into a specified index register before control returns (block 4206) to the main program. When control is returned to the main program under these conditions, a 3 is loaded into the accumulator.
Each execution of the STEPID subroutine causes 20. the print wheel to be moved from one digit to the adjacent digit. Therefore, the STEP subroutine must be repeated as many times as is necessary to alter the print wheel position from the original position to the position specified in the NTBS register. When the STEPID subroutine has been repeated the necessary number of times, program control branches to the STEPS subroutine (block 4208) which drives the printer yoke to the next less significant digit position. Errors, if any, occurring during the execution of the STEPS 95 subroutine are loaded (block 4210) into a specified index register. Program control returns to the main program (block 4212) with a 4 being loaded into the accumulator.
If no errors occur during the execution of the STEPS subroutine, a decision 4216 is made as to whether all banks of the printer have been set. If not all banks of the printer have been set, program control jumps (block 4218) to the CMP subroutine to determine whether the currently selected bank needs setting. If it does, the subroutine is repeated beginning with block 4204. If the currently selected bank does not need setting, control is returned to block 4208 to select the next lower bank. When the decision block 4216 shows that the last bank has been set or at least has been checked to determine whether setting is required, program control is returned to the main program with a zero being loaded into the accumulator.
When the SETS subroutine is exited, the contents of the specified index register identify any error which has occurred.
FIGURE 43 is a flow chart of the STEPS subroutine for controlling the bank select motor in the printer. The first step 4302 in this subroutine is energization of the bank select motor, which drives the yoke and main gear between the enabled position, the disabled position and the various banks of print wheels. Error indicators are cleared and the bank bit pattern for an adjacent bank to which the yoke is to be driven is written out in a step 4304. To give the motor time to respond, a delay loop 4306 is incorporated into the routine. A check 4308 is then made to determine whether against the force of a spring or other resilient member which normally tends to bias the yoke out of that position. If the bank select motor is acting against the force of the spring, an extra delay 4310 is built into the program.
The first of two error checks is then made. In a preferred embodiment of the invention, the yoke position encoder consisting of the parallel plates 206 and 208 and associated optical detectors described with reference to FIGURE 6-8 should read all binary zeros at any intermediate position of the yoke. If a check 4312 inaicates otherwise, an error message is written into an error register in operation 4814. If the readings are zeros, the program goes directly to an end of loop decision 4316. The loop, which begins with block 4304 and ends with block 4316, is repeated for as many motor steps as are necessary to drive the yoke from one bank position to the next. When the necessary number of motor stepping operations have been completed, the yoke position detectors are again read in an operation 4318 to obtain an updated bank reading 4320 which is compared with the anticipated reading for the selected bank in an operation 4322. Any mismatch between the anticipated bank reading and the detected bank reading causes an error message to be written in an operation 4324. At this point, a check 4326 is made as to whether the motor has driven the yoke into the enabled position in which it must be maintained against the force of a biasing spring. If the yoke has been driven into the enabled position, the motor remains energized. If the yoke has been driven to any other position, the bank select motor is turned off in step 4328. Control is then returned to the main program.
The STEPS routine is executed each time the yoke is driven from one bank position to an adjacent bank position.
The routine which controls the print wheel setting motors is the STEP1) routine referred in several places above and described now in detail with reference to FIGURE 44. The print wheel or digit select motor 84 is energized in the initial step 4402 and the error indicators are cleared. A count loop (block 4404) is initialized. This count loop provides an indication of the number of different motor coil energization patterns required in order to drive the print wheel through a half step or halfway to the adjacent digit position. After the count loop is initialized, the signals required to energize the motor coils employing each pattern in sequence are generated in an operation 4406. A programmatic delay 4408 permits the motor time to respond.
After the motor coil pattern has been changed, a check 4410 is made as to whether the necessary number of counts have occurred in the count loop. If less than the anticipated number have occurred, the bit pattern for the next coil energization pattern in the sequence is written in an iterated operation 4406 and the motor driven through another angular increment. The process involving operations 4406,4408 and 4410 is the yoke is being driven into the enabling position 130 repeated until the end of the loop count is sensed.
Y f p 21 An indicator is updated in an operation 4412 to indicate that the print wheel has advanced from a full step or digit position through a half step or midway position. The optical detectors associated with the print wheel setting gears are read (block 4414) and an error check is made to determine whether a gear slot or a gear tooth can be seen. In the half step or midway position, a gear tooth - should always be interposed between the light source and the phototransistor of an optical detec',or. Therefore, the presence of a gear slot in what is believed to be a half step position will cause a half/full step error message to be written (block 4416) into random access memory. A check 4418 is made as to whether the motor is on 80 a full step. If not, the program returns to block 4404 in which the count loop needed to move the motor through a half step is again initialized. If necessary, the motor is driven to another half step by means of the operations 4404 through 4418.
If check 4418 reveals that the motor has been driven to a full step position, the fifth step counter referred to in the description of FIGURES 6-8 is updated by one digit. A check is then made as to whether the extra deep slot on the monitoring wheel 166 is detected when the count in the fifth step counter is other than a multiple of 5. If the extra long slot is aligned with the optical detector 168 while the fifth step counter is other than a multiple of 5, an error condition exists. Conversely, if the extra long slot is not aligned with the optical detector when the fifth step counter does contain a multiple of 5, an error condition also exists. Under either of these conditions, a "fifth step error- bit is written into an error indicator in the operation 4420. The print wheel motor is turned off in an operation 4422 and control is returned to the main program. The main program responds to the error indications generated when the STEPID routine has been called.
The CIVIP subroutine, which is used to determine the number of steps through which a print wheel must be driven from its previous setting to a new setting, is now described in more detail with reference to FIGURE 45. The first step 110 (block 4502) is to read the MSR or Meter Setting Register digit which is the current setting of the print wheel. The NTBS of Next To Be Set digit is subtracted and the accumulator carry is set or cleared to indicate a positive or negative difference. The difference must then be adjusted (block 4505) to indicate the number of actual motor energization changes.
The energization pattern for the coils of the stepping motor which drives the print wheels 120 must be changed more than once in order to span one digit difference. For example, to provide a one digit change in the position of the print wheel might require 16 changes in the motor energization pattern. If the number of pattern changes per digit is 16, and the difference between the previous wheel setting and the desired setting is two digits, the adjustment referred to in block would be 16 X 2 or 32 sequential pattern changes; appendum C may be 130 GB 2 066 735,A 21 consulted for more details.
After the number of required pattern changes is calculated, the meter setting register must be updated (block 4506) to reflect the new setting of the print wheel before control is returned to the main program.
Figure 46 is a flow chart for an ENABL subroutine which provides an entry into and an exit from the subroutine which drives the printer yoke to the enabled position. The first operation of the ENABL subroutine (block 4602) is a jump to the ERRR subroutine which retrieves any error flags stored in nonvolatile memory and writes those flags into index register 6. The accumulator carry bit is set to 1 in operation 4604 befoie the contents of register R6 are read. if R6 equals zero, indicating there are no error flags stored in nonvolatile memory, the accumulated carry bit is reset or cleared to zero in operation 4608. If R6 is not equal to zero, indicating that error flags do exist, operation 4608 is bypassed. In either event, the next operation in the sequence (block 4610) is te load in 8 into the accumulator, followed by a check 4612 as to whether the carry bit equals zero. If it does equal zero, indicating no error flags, a jump is made (block 4614) to an ENBLE subroutine actually emoloyed to drive the printer to its enabled position.
Whether or not check 4612 shows that the carry equals zero, a further check 4616 is made as to whether any errors have arisen either during the execution of the ENBLE subroutine or otherwise. If no errors have occurred, the contents of the error code- containing index register R6 are loaded into the accumulator. If errors have occurred, the accumulator will already be set to 8 because of operation 4610. The accumulator contents are written into an error message location in the data message block of register zero in random access memory 38. Control is returned to tho main program after the write operation.
Figure 47 is a flow chart of the ENBLE subroutine called by the previously described ENABL subroutine to actually drive the printer into its enabled position. The TIPST subroutine is called (block 4702) to determine whether the descending register is less than $100 or less than the meter setting register. Step down and enabled flags are then written into SCO and SC l respectively of register one in random access memory 38. The third status character in that register is read to determine whether the printer is sitting in the enabled position. If it is, index register 6 is loaded with a zero and control is returned (block 4706) to the main program. If the printer is not sitting in the enabled position at the time of check 4704, another decision 4708 is made as to whether the contents of the descending register are greater than or equal to the meter setting register. If the meter setting register shows the greater amount, indicating that there is insufficient postage to print the requested amount, a zero is loaded into index register 6 in operation 47 10. Then, control is returned to the mainprogram with a hexadecimal F being loaded 22 (block 4712) into the accumulator.
If decision block 4708 indicates that the descending register contains sufficient postage, the STEPS subroutine is called (block 4714) to drive the printer into its enabled position. If any errors occur during the execution of the STEPS subroutine, the ERR1 subroutine is called (block 4716) to write error codes into nonvolatile memory. A DESLT subroutine, to be described in more detail later, is called (block 4718) to disable 75 the printer. Control is then returned to the main program. If no errors are detected during the enabling step, control is returned immediately.
The ERR1 subroutine flowcharted in Figure 48 is used to write error messages into nonvolatile memory. The SETZ error word NVIV1 location 24 for the memory assignment shown in Figure 14) is first selected in an operation 4802. A 1 is written into that location. The cumulative SETZ error word, or NVM location 25, is selected and read into central processor. The value is incremented by 1 in operation 4804 and the result written back into nonvolatile memory. A jump 4806 is made to the CHKSM subroutine to generate a new check sum for nonvolatile memory register No. 2. Control is then returned to the main program.
A DISAB subroutine, which is the calling routine for the DS13LE subroutine, is shown in flow chart form in Figure 49. Nonvolatile memory error flags are first read into iridex register 6 by jumping to the ERRR subroutine in operation 4902. A predetermined error code or value is loaded into a specified index register, after which a cheek 4904 is made as to whether index register 6 is equal to 0, meaning there are no error flags stored in nonvolatile memory, the predetermined error code stored in index register 2 is written (block 4906) into the data message block of random access memory 38. But if the contents of index register 6 are not equal to 0, indicating that error flags were 105 stored in the nonvolatile memory, a jump is first made (block 4908) to the DSBLE subroutine to disable the printer. After the predetermined error code has been loaded into memory, control is returned to the main program.
A special subroutine DESLT is called to disable the meter when problems occur during setting or reading of photocells. This subroutine is flowcharted in Figure 50. When the DSLT subroutine is called, register 0 of random access memory 38 is selected (block 5002) and a predetermined error code (hexadecimal/F) is written into SCO of that register. A jump is then made to the STEPS subroutine (block 5004) to step the printer away from the enabled position and control is returned to the main program.
Since meter security requires that the user be kept unaware of the RMRS seed number stored in nonvolatile memory, it is necessary to provide restricted access to that register. The switch 75 at one input to input buffer 76 can be connected by the manufacturer or an authorized serviceman to a minus 15 volt source. When the switch is set this way, the nonvolatile memory registers can be read out or written into using a LOAD/SEND subroutine GB 2 066 735 A 22 described in flow chart form in FIGURE 5 1.
If the LOAD (or write) subroutine is called, the accumulator carry bit is set (block 5102) to 1. If the SEND (or read) subroutine is called, the accumulator carry bit is cleared (block 5104) to 0. The input port connected to switch 75 is read and a decision (block 5106) is made whether the switch is at binary 1; i.e., connected to the minus 15 volt source. If the switch is not at binary 1 when either the LOAD or SEND subroutine is called, an error code/F is loaded (block 5108) into word 5 of register 0 and random access memory 38. In consequent operation 5110, zeros are loaded into the remaining words of the register, after which control is returned to the main program.
If decision block 5106 shows that switch 75 was set to a binary 1 level, the data message register in random access memory 38 is read (block 5112) to determine which NVIV1 locations are to be accessed. An eight count loop is set up and a decision 5114 is made as to whether the LOAD subroutine or the SEND subroutine was called. If the LOAD subroutine was called, the data characters to be loaded into the specified nonvolatile memory location are read from the data message register in operation 5116 and then written into the specified NVIV1 location. The addresses between which data is being transferred and the loop count are incremented in operation 5118 and a check 5120 is made as to whether the end of the count loop has been reached. If it has not, program control returns to block 5114.
When block 5114 indicates that the SEND subroutine, rather than the LOAD subroutine was called, the specified nonvolatile memory registers are read in operation 5122 and then written into the data message registdr of random access memory 38. The addresses and loop counter are incremented in operation 5118 whether the LOAD subroutine or the SEND subroutine was called.
When decision block 5120 shows that the end of the count loop has been reached, control branches back to the main program.
The system described above was developed specifically to control a mechanical postage printer since such a printer already has received the necessary Governmental approvals to permit commercial use. A considerable amount of hardware and software is required to service this mechanical printer. For example, the printer setting elements 26 and the printer setting detector array 30 are needed in the hardware primarily to service the mechanical printer. Similarly, subroutines such as [NITS, DSBLE, SETZ, SETS, STEPS, STEPD, and others are dedicated almost exclusively to servicing the mechanical aspects of the printer operation. It is certainly considered to be within the scope of the present invention to use the hardware and software to control nonmechanical printers such as inkjet printers, dot-matrix printers and other such printers.
Although the RMRS subroutine has been ip J 23 GB 2 066 735 A 23 referred to in a number of places throughout the specification and drawings, the details of the subroutine and supporting subroutines have not been included herewith as these are auxiliary to the present invention. Moreover, the security of postal meters manufactured by the present applicant would be unnecessarily jeopardized by providing detailed flow charts and descriptions of the RMRS subroutine.
In general terms, a RMRS subroutine permits a user to re-fund the meter himself while his account at a funding center is debited by the proper amount. U.S. patent 3,792,446 McFiggans et al. described one such system. in accordance with that patent, a user establishes communications with a funding center computer and identifies himself and the meter to be funded. After the funding center verifies the identity of the user, a stored seed number is operated on in accordance with a predetermined algorithm to generate a pseudo-random number. The pseudorandom number is furnished to the user, preferably via a voice answer-back unit.
When the user receives the generated pseudo- random number, he enters it into the meter, which has already operated on a stored seed number in accordance with the same algorithm employed by the funding center computer to generate what should be the same pseudo- random number. If the meter-generated number matches the number entered by the user, indicating the user has properly accessed the funding center computer, the descending register and control sum register of the meter are incremented by a fixed amount.
The user's account at the funding center computer will have already been debited by the fixed amount.
The seed numbers which are stored in the meter and in the funding center computer are altered in the same manner during each funding operation to 105 provide new, pseudo-random seed numbers for the next funding operation.
In the TNVM subroutine of FIGURE 30, a direct comparison was made between the stored checksum and data stored in the nonvolatile memory. In the event that all data have been lost during a shut-down period, then this checking operation would proceed normally. In order to avoid this, in accordance with a modification of the invention, the complement of the checksum may be stored in rows zero and one of the NVIV1 register. This modification is illustrated in the subroutine of FIGURE 52, wherein the generator checksum derived from the register contents is complemented and subtracted from the complemented stored checksum in rows zero and one of the register. If the data in the register has 120 been lost during the shut-down period, this comparison of the complements of the checksum will reveal the error.
The routine in accordance with FIGURE 52 therefore overcomes an additional source of possible error in the system.
In order to implement the routine of FIGURE 52, it is, of course, necessary to complement the stored checksum. This may be effected by the routine illustrated in FIGURE 53, which shows the necessary modification of the routine of FIGURE 34. Thus, before writing R,, and Rb in the NVIV1 checksum location, these values must be complemented. While-FIGURES 52 and 53 illustrate this modification as being software modification, it is, of course, apparent that they may also constitute a part of the hardware of the system in accordance with the invention.
The modification of the routine illustrated in FIGURES 52 and 53 may also be indicated in the attached program printout by the insertion of CMA instructions between program steps 1512 and 1513; 151 A and 151 B; 15E2 and 15E3; and 15E7 and 15E8.
This modification, in accordance with the invention, assures that logic ones and zeros are in each register, so that in the event of total loss of stored data wherein all locations would appear as either zeros or ones, the complemented checksum routine will ensure recognition of the error.
While there has been described what is considered to be a preferred embodiment of the present invention, variations and modifications therein will occur to those skilled in the art once they become acquainted with the basic concepts of the invention. Therefore, it is intended that the, appended claims shall be construed to include the disclosed embodiment and obvious variations and modifications thereof.
- In our co-pending Patent Application No.
42183/78 (Publication Serial No. 2008030), filed 27th October 197 8, from which this application is divided, there is included as Appendia A, B, C and D respectively a program printout, an Instruction Set, a Description of Setting Motor Operation, and a Format of messages sent to and from Control Unit 12, all appropriate to one particular central processor unit 16 employed in a meter according to the present invention. This material is not repeated herein, in the interest of brevity.
CLAIMS 1. An electronic postal meter having an electronic accounting system connected to control a postage printing device, and means for applying data and control signals to the electronic accounting system, in which the electronic accounting system includes a memory, means responsive to determined errors in said signals for storing in said memory the number of said determined errors that have occurred in said signals, and means responsive to the accumulation of a count of a predetermined number of said errors in said memory and operative to disable further operation of said postal meter.
2. The meter of claim 1 wherein said memory is a non-volatile memory.
*
3. The meter of claim 1 or 2 wherein said means applying data and control signals comprises a plurality of manually operable keys on said postal meter for applying signals to said 24 GB 2 066 735 A 24 electronic accounting system related to an amount of postage to be printed.
4. The meter of claim 1, 2 or 3 further comprising means responsive to determined error conditions for disabling said postal meter even in the absence of the storage of said predetermined number of errors in said memory.
5. A method for controlling an electronic postal meter having an electronic accounting system, a postage printing device and a source of data and control signals coupled to said accounting system, comprising the steps of: detecting error conditions in said signals, storing the number of said detected error conditions that have occurred, and disabling said postal meter when said number reaches a determined value.
6. The method of claim 5 further comprising detecting determined further error conditions in said postal meter, and disabling said postal meter in response thereto in the absence of the occurrence of said determined number of first mentioned error conditions.
Printed for Her Majesty's Stationery Office by the Courier Press, Leamington Spa, 1981. Published by the Patent Office. 25 Southampton Buildings, London, WC2A IlAY, from which copies may be obtained.
4
GB8039253A 1977-10-28 1978-10-27 Electronic postal meter Expired GB2066735B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US84652677A 1977-10-28 1977-10-28
US05/950,302 US4251874A (en) 1978-10-16 1978-10-16 Electronic postal meter system

Publications (2)

Publication Number Publication Date
GB2066735A true GB2066735A (en) 1981-07-15
GB2066735B GB2066735B (en) 1983-07-13

Family

ID=27126644

Family Applications (4)

Application Number Title Priority Date Filing Date
GB8039253A Expired GB2066735B (en) 1977-10-28 1978-10-27 Electronic postal meter
GB7940874A Expired GB2033627B (en) 1977-10-28 1978-10-27 Method of error checking contents of a register
GB8039108A Expired GB2066734B (en) 1977-10-28 1978-10-27 Electronic postal meter
GB7842183A Expired GB2008030B (en) 1977-10-28 1978-10-27 Electronic postal meter system

Family Applications After (3)

Application Number Title Priority Date Filing Date
GB7940874A Expired GB2033627B (en) 1977-10-28 1978-10-27 Method of error checking contents of a register
GB8039108A Expired GB2066734B (en) 1977-10-28 1978-10-27 Electronic postal meter
GB7842183A Expired GB2008030B (en) 1977-10-28 1978-10-27 Electronic postal meter system

Country Status (2)

Country Link
FR (1) FR2407536B1 (en)
GB (4) GB2066735B (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4500083A (en) * 1983-12-08 1985-02-19 R. R. Donnelley & Sons Company Collating and binding system and method with postage indication
US4506329A (en) * 1982-03-08 1985-03-19 Pitney Bowes Inc. Non-volatile memory serial number lock for electronic postage meter
US4674052A (en) * 1983-12-08 1987-06-16 R. R. Donnelley & Sons Company Collating and binding system and method with postage indication
USRE32690E (en) * 1983-12-08 1988-06-07 R. R. Donnelley & Sons Company Collating and binding system and method with postage indication
EP0516403A2 (en) * 1991-05-29 1992-12-02 Neopost Limited Method of remote diagnostics for franking machines

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2063160B (en) * 1979-10-30 1984-01-11 Pitney Bowes Inc Electronic postage meter
US4301507A (en) * 1979-10-30 1981-11-17 Pitney Bowes Inc. Electronic postage meter having plural computing systems
US4302821A (en) * 1979-10-30 1981-11-24 Pitney-Bowes, Inc. Interposer control for electronic postage meter
AT398649B (en) * 1979-10-30 1995-01-25 Pitney Bowes Inc Franking machine control device
US4310755A (en) * 1979-12-26 1982-01-12 Pitney Bowes Inc. Electronic postage meter radiant energy device circuit
IN161526B (en) * 1983-07-29 1987-12-19 Westinghouse Brake & Signal
GB2153165A (en) * 1984-01-20 1985-08-14 Avx Corp Connector assembly
US4760532A (en) * 1985-12-26 1988-07-26 Pitney Bowes Inc. Mailing system with postage value transfer and accounting capability
FR2702068B1 (en) * 1993-02-26 1995-06-30 Secap Franking machine with additional displays.
EP0675463B1 (en) * 1994-03-31 2004-09-29 Secap Franking machine with additional displays

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL293950A (en) * 1962-06-14
US3820068A (en) * 1972-06-29 1974-06-25 Westinghouse Learning Corp Background reference level system and method for document scanners
GB1476338A (en) * 1974-06-07 1977-06-10 Pitney Bowes Inc Flat bed printer and apparatus including same
US3978457A (en) * 1974-12-23 1976-08-31 Pitney-Bowes, Inc. Microcomputerized electronic postage meter system
CA1077171A (en) * 1976-07-14 1980-05-06 Frank T. Check (Jr.) Electronic postal meter having noise-rejecting input/output channel
FR2375670A1 (en) * 1976-12-21 1978-07-21 Vickers Ltd Electronic franking machine with digital registers - has print unit, postage paid value selector and tote register containing accumulated value and summing device

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4506329A (en) * 1982-03-08 1985-03-19 Pitney Bowes Inc. Non-volatile memory serial number lock for electronic postage meter
US4500083A (en) * 1983-12-08 1985-02-19 R. R. Donnelley & Sons Company Collating and binding system and method with postage indication
US4674052A (en) * 1983-12-08 1987-06-16 R. R. Donnelley & Sons Company Collating and binding system and method with postage indication
USRE32690E (en) * 1983-12-08 1988-06-07 R. R. Donnelley & Sons Company Collating and binding system and method with postage indication
EP0516403A2 (en) * 1991-05-29 1992-12-02 Neopost Limited Method of remote diagnostics for franking machines
GB2256396A (en) * 1991-05-29 1992-12-09 Alcatel Business Machines Limi Monitoring faults in postage meter systems.
EP0516403A3 (en) * 1991-05-29 1993-10-13 Neopost Limited Method of remote diagnostics for franking machines
GB2256396B (en) * 1991-05-29 1995-03-29 Alcatel Business Systems Method of remote diagnostics for franking machines

Also Published As

Publication number Publication date
GB2033627B (en) 1982-08-11
GB2066734B (en) 1982-12-01
GB2066734A (en) 1981-07-15
FR2407536B1 (en) 1989-04-28
GB2008030A (en) 1979-05-31
FR2407536A1 (en) 1979-05-25
GB2033627A (en) 1980-05-21
GB2008030B (en) 1982-06-09
GB2066735B (en) 1983-07-13

Similar Documents

Publication Publication Date Title
US4251874A (en) Electronic postal meter system
GB2066735A (en) Electronic postal meter
US4310754A (en) Communication means with transducer physically spaced from interior wall of secure housing
US4484307A (en) Electronic postage meter having improved security and fault tolerance features
NL193476C (en) Electronic postage meter.
EP0019515B1 (en) Electronic postage meter having improved security and fault tolerance features
US4481604A (en) Postal meter using microcomputer scanning of encoding switches for simultaneous setting of electronic accounting & mechanical printing systems
US4302821A (en) Interposer control for electronic postage meter
JPH0670807B2 (en) Electronic postage meter with field resettable control value
US3938095A (en) Computer responsive postage meter
US4347506A (en) Electronic postage meter having check date warning with control for overriding the check date warning
AU550975B2 (en) Programmable vending machine accountability apparatus
US4442501A (en) Electronic postage meter with weak memory indication
US4837714A (en) Methods and apparatus for customizing and testing fully assembled postage meters
GB2063162A (en) Postage meter having interactive arithmetic operation capability
US4283721A (en) Electronic postage meter having check date warning
CA1267222A (en) Electronic postage meter system having arrangement for rapid storage of critical postage accounting data in plural nonvolatile memories
CA1150840A (en) Postage meter having interactive arithmetic operation capability
US5124926A (en) Carrier management system having accounting registers
US4525786A (en) Electronic postage meter having a one time actuable operating program to enable setting of critical accounting registers to predetermined values
EP0180978B1 (en) Electronic cash register
CA1244134A (en) Diagnostic control keyboard for a mailing machine
EP0219577B1 (en) Device for controlling delivery of a utility
USRE31875E (en) Computer responsive postage meter
CA1077171A (en) Electronic postal meter having noise-rejecting input/output channel

Legal Events

Date Code Title Description
PE20 Patent expired after termination of 20 years

Effective date: 19981026