`U8005537608A
`5,537,608
`[11] Patent Number:
`[19]
`Unlted States Patent
`
`Beatty et a1.
`[45] Dateof Patent:
`Jul. 16, 1996
`
`[54] PERSONAL COMMUNICATOR APPARATUS
`
`[75]
`
`Inventors: Brent A. Beatty, Boca Raton; Francis
`-
`.
`1- Cam J" 39““ Beach;
`séflzslfvtfifig gigiéggfifhbebm
`A. G. Johnson, Ft.’ Lauderdale, ’all of
`Fla.
`
`[73] Assignee:
`
`International Business Machines
`Corporation, Armonk, NY.
`
`[21] Appl. No.. 459’552
`[22]
`Filed:
`Jun. 2, 1995
`
`Related U.S. Application Data
`
`[63] Continuation of Ser. No. 976,127, Nov. 13, 1992, aban—
`doned.
`Int. Cl.6
`[51]
`[52] U.S. Cl.
`
`................................. G06F 13/00
`
`. 395/800; 364/DIG. 1;
`364/232.91; 364/231.1; 364/243
`[58] Field of Search ..................................... 395/200, 800,
`395/650 700 375 425-, 37959 58 98
`’
`’
`’
`’
`’
`’ 5.;
`
`.,
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`179/2 EA
`4 481 382 11/1984 “11me
`4,825,448
`4/1989 Critchlow eta-l.""""""""""""""""" 375/8
`4:916:441
`4,1990 Gombrich _____
`0 235/380
`4,949,248
`3,1990 Cam et al.
`.. 395/725
`5,008,925
`4/1991 Pireh .........
`3579/60
`5,008,927
`4/1991 Weiss et al.
`379/98
`5,020,093
`5/1991 Pireh
`379/59
`5,029,233
`7/1991 M51I°ka
`455/11
`5,050,207
`9/1991 Hitchcock .
`.. 379/96
`5,063,600
`11/1991 Norwood ......
`382/13
`
`6/1992 Takahashi et a1.
`.
`.. 379/428
`5,127,050
`
`........ 379/56
`5,138,649
`8/1992 Krisbergh et al.
`
`
`
`
`5,189,593
`5,195,130
`5,201,067
`,
`,
`2’33???
`5,260,697
`5,347,632
`
`2/1993 Ooi ....................................... 455/195.1
`3/1993 Weiss et a1.
`.
`..... 379/98
`
`----- 455/39
`4/1993 Gmbe 6t 211-
`
`
`am on .................
`32333 3916““ a a"
`233323
`
`11/1993 Barrett et a1.
`345/173
`9/1994 Fllepp et a]. ............................ 395/200
`OTHER PUBLICATIONS
`
`9075 PCradio Hardware Interface Technical Reference,
`IBM, 1992 pp. 171 1° 6‘63-
`9075 PCradio Guide to Operations, IBM, 1992, pp. 1—1 to
`D—5.
`Danny Goodman, “The Hyber Card 2.2 Handbook”, Ran—
`dom House, Fourth Edition, No Date.
`Data sheet, VG—230 Single—Chip PC Platform VADEM,
`Sep. 1992.
`
`Primary Examiner—Mehmet 13- Geck11
`Attorney, Agent, or Finn—George E. Grosser; Andrew J.
`D1110“
`[57]
`
`ABSTRACT
`.
`.
`.
`.
`.
`A ”“0““ commumca‘m apparatus mdudes a mg!“
`processor, a memory coupled to the processor, an operatmg
`system, stored 1n the memory and executable by the pro-
`cessor, a touch-screen user interface coupled to the proces—
`sor and the memory and responsive to file execution com—
`mands from the user, and a navigation utility file, executable
`by the processor, for initiating execution of files and for
`monitoring the sequence in which file executions occur. The
`Nav1gation ut1l1ty maintams a stack in the memory into
`which the calling sequences of files are stored according to
`the order in which files were executed. In one embodiment,
`the apparatus further complises a modem and RF transceiver
`coupled to the processor for receiving and transmitting data.
`In another embodiment, the communicator further includes
`a port for receiving an external memory medium containing
`a plurality of executable files,
`
`4 Claims, 10 Drawing Sheets
`
`
`
`APPLE 1010
`
`1
`
`APPLE 1010
`
`
`
`US. Patent
`
`Jul. 16,1996
`
`Sheet 1 of 10
`
`5,537,608
`
`' FIG. 1
`
`12
`
`42
`
`14
`
`POWER CONTFiO
`
`000-
`
`50
`
`52
`
`54
`
`34
`
`/
`
`10
`
`40
`
` CONTROLLER
`
`2
`
`
`
`US. Patent
`
`Jul. 16, 1996
`
`Sheet 2 of 10
`
`5,537,608
`
`FIG. 2
`
`
`
`3
`
`
`
`US. Patent
`
`Jul. 16, 1996
`
`Sheet 3 of 10
`
`5,537,608
`
`FIG. 3A
`
`FIG. 3E
`
`PHONE
`
`CALCULATOR
`
`5551212
`
`3"857'4
`
`BA'ITERY
`SIGNAL
`
`BEE
`III
`III
`EDI
`
`IIEBBIIEBEEI—IEE
`
`II
`II
`
`n
`
`HELP PHONE TOOLS BACK
`
`4
`
`
`
`US. Patent
`
`Jul. 16, 1996
`
`Sheet 4 of 10
`
`5,537,608
`
`FIG. SB
`
`FIG. 3C
`
`ACCESS MAIL LISTS:
`
`0 INCOMING MESSAGES
`
`IUUI
`
`CREATE NEW MAIL
`
`CHECK POST OFFICE
`
`SEND OUTGOING MAIL
`
`RECEIVE INCOMING MAIL
`
`SEND AND RECEIVE MAIL
`
`CHANGE CONFIGURATION
`
`STATUS
`
`SUCCESS. NEXT OPTION
`
`
`
`
`
`
`
`
`
`
`
`
`
`ALVAREZ
`4481879
`
`WILSON
`8820354
`
`8828080
`
`88251 82
`
`DEUSER MA ‘
`
`
`
`
`
`
`
`
`
`
`
`C1"
`
`
`5
`
`
`
`U.S. Patent
`
`Jul. 16, 1996
`
`Sheet 5 of 10
`
`5,537,608
`
`FIG. 3D
`
`CALENDAR
`
`OCTOBER 19,1992
`
`1‘
`
`0
`
`4
`
`II
`
`18
`
`0
`
`5
`
`12
`
`I9
`
`o
`
`6
`
`T3
`
`20
`
`o
`
`7
`
`14
`
`2]
`
`25 .27 28
`
`I
`
`8
`
`15
`
`22
`
`29
`
`2
`
`9
`
`16
`
`23
`
`30
`
`10
`
`I7
`
`24
`
`31
`
`1:00PM - 3:00PM
`STATUS MTG. 014/C9I4
`
`2:00PM WEEKLY TELECON
`W/ MAN @
`
`3:30PM MULTI-IMAGE GROUP
`MEETING
`
`5:45PM SIGN OUT II!
`
`1:00PM ~ 3:00PM
`STATUS MTG, 014/0914
`
`2:00PM WEEKLY TELECON
`WITH MAN @
`
`3:30PM MULTI-IMAGE GROUP
`MEETING
`
`5:45PM SIGN OUT!!!
`
`1:00PM - 3:00PM COMDEX
`
`A
`
`+
`
`EDIT
`
`ADD
`
`4
`
`UP
`
`V
`
`DOWN
`
`? @ x K)
`HELP
`PHONE
`TOOLS
`BACK
`
`6
`
`
`
`US. Patent
`
`Jul. 16, 1996
`
`Sheet 6 of 10
`
`5,537,608
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE4
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE2
`
`PHONE4
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`FK3.4A.
`
`FK3.4B
`
`FK3.4C3
`
`PHONE3
`
`PHONE2
`
`PHONE4
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE4
`
`PHONE3
`
`PHONE2
`
`PHONE4
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE4
`
`PHONE3
`
`PHONE2
`
`PHONE4
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`FK3.4[)
`
`FK3.4E
`
`FK3.4F
`
`7
`
`
`
`US. Patent
`
`Jul. 16, 1996
`
`Sheet 7 of 10
`
`5,537,608
`
`PHONE4
`
`PHONE3
`
`PHONE2
`
`PHONE4
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE3
`
`PHONE2
`
`PHONE4
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE4
`
`PHONE3
`
`PHONE2
`
`PHONE4
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE4
`
`FIG. 5A
`
`FIG. SB
`
`FIG. SC
`
`PHONE4
`
`PHONE1
`
`PHONE2
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE4
`
`PHONE3
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE4
`
`PHONE4
`
`PHONE3
`
`PHONE2
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE1
`
`PHONE4
`
`PHONE3
`
`PHONE2
`
`PHONE4
`
`FIG. 5D
`
`FIG. 5E
`
`FIG. 5F
`
`8
`
`
`
`US. Patent
`
`Jul. 16, 1996
`
`Sheet 8 of 10
`
`5,537,608
`
`FIG. 6A
`
`START
`
`lNITlALIZE
`
`SPAWN TEMP
`
`124
`
`COPY STACK__TOP
`TO TEMP'
`
`SUSPEND
`NAVIGATOR
`
`1 22
`
`ROTATE STACK
`
`EXECUTE
`SPAWNED APL
`
`1 10
`
`112
`
`1 1 4
`v
`
`116
`
`118
`
`ACCESS CODE
`
`120
`
`YES 9
`
`NO 126
`
`YES
`
`6
`
`NO
`
`134
`
`COPY CMD_L|NE
`TO TEMP
`
`128
`
`130
`
`PUSH DOWN
`STACK
`
`COPY CMD_L|NE
`TO TEMP
`
`‘32
`
`COPY TEMP T0
`STACK_TOP
`
`9
`
`
`
`US. Patent
`
`Jul. 16, 1996
`
`Sheet 9 of 10
`
`5,537,608
`
`FIG. GB
`
`SPAWNED APL
`EXECUTING
`
`13B
`
`1’38
`
`LEAVE = 7
`
`YES
`
`140
`
`N0
`
`144
`
`YES
`
`142
`
`CODE =1
`
`ACCESS CMD_LINE
`ADDR
`
` 146
`
`COPY NEXT
`CALLING SEQ.
`
`
`
`
`
`
`
`TO CMD_LINE
`
`
`
`154
`
`'
`
`SUPPLY CODE
`TO NAVIGATOR
`
`6
`
`10
`
`10
`
`
`
`US. Patent
`
`Jul. 16, 1996
`
`Sheet 10 of 10
`
`5,537,608
`
`34
`
`BATTERY
`
`FIG. 7
`
`74
`
`/
`
`20
`
`PROCESSOR
`
`11
`
`
`
`5,537,608
`
`1
`PERSONAL COMIVIUNICATOR APPARATUS
`
`This is a continuation of application Ser. No. 07/976,127,
`filed Nov. 13, 1992, now abandoned.
`
`BACKGROUND OF THE INVENTION
`
`Cellular telephones have gained widespread popularity in
`recent years. These telephones allow users to communicate
`over a cellular network via a radio frequency (RF) trans—
`ceiver present within the telephone. Many cellular tele-
`phones contain digital microprocessors which control opera-
`tion of the RF transceiver and provide limited telephone
`type functions to the user, such as autodialing and/or
`displaying stored telephone numbers. Such cellular tele-
`phones, however, lack the memory, display and user inter-
`face facilities necessary to execute many of the personal
`organizer applications found on personal computers.
`More recently, a lap-top computer which contains an RF
`transceiver as a means for data input/output has become
`commercially available. This product, the PC Radio, avail-
`able from International Business Machines Corporation,
`Boca Raton, Fla, provides the fimctionality of a personal
`computer with the capability of receiving and sending data
`over a cellular phone. However, a need still exists for a
`personal communication apparatus which can execute the
`personal organizer available on a personal computer, such as
`electronic mail, calculator, address book, and calendar, and
`which can further provide the functionality of a cellular
`telephone.
`A portable communication apparatus is proposed herein
`that integrates the functionality of a personal computer with
`the communication possibilities of a cellular telephone to
`provide an apparatus with sophisticated computing as well
`as communication functions.
`
`SUMMARY OF THE lNVENTION
`
`The foregoing and other objects of the present invention
`are achieved with a personal communication apparatus
`comprising a digital processor, a memory coupled to the
`processor, an operating system program stored in the
`memory and executable by the processor, a touch-sensitive
`user interface, coupled to the processor and the memory, and
`responsive to file execution commands from the user, and, a
`navigation file executable by the processor, in tandem with
`an executable file, initiates execution of files and monitors
`the sequence in which file executions occur.
`In one embodiment, the user interface facility comprises
`a liquid crystal display in combination with a touch-sensitive
`overlay to provide a touch—sensitive virtual user interface. In
`another embodiment, the apparatus further comprises an RF
`transceiver to allow for communication via a cellular net-
`work with other communication systems.
`The invention will be more fully understood from the
`detailed descriptions set forth below which should be read in
`conjunction with the accompanying drawings. The invention
`is defined in the claims appended at the end of the detailed
`description, which is ofi'ered by way of example only.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`In the drawings:
`FIG. 1 is a schematic block diagram of a personal
`communication apparatus in accordance with the present
`invention;
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`12
`
`2
`FIG. 2 is a front plan View of the personal communication
`apparatus of FIG. 1;
`FIGS. 3A—E illustrate various virtual user interfaces in
`accordance with exemplary applications executable on the
`personal communication apparatus of FIG. 1;
`FIGS. 4A—F and SA—F are conceptual representations of
`the memory stack maintained by the navigation file utility
`during execution of a sequence of files;
`FIG. 6A illustrates the algorithmic steps executed by the
`navigation utility in accordance with present invention; and
`FIG. 6B illustrates the algorithmic steps executed by an
`application in accordance with present invention;
`FIG. 7 is a schematic representation of an early warning
`circuit implemented within the personal communication
`apparatus of FIG. 1.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`In the various Figures, the same designations are used for
`similar elements. Referring to the drawings, and, in particu-
`lar to FIG. 1 thereof, a schematic block diagram of a
`personal communicator 10, according to an illustrative
`embodiment of the present invention is shown. Communi-
`cator 10 comprises, in a simple embodiment, a transceiver
`12, modem 14, and central controller 16 in conjunction with
`other elements, as described hereinafter in greater detail.
`Transceiver 12 comprises RF logic 42, audio logic 44,
`power logic 46 and control logic 48. RF logic 42 contains the
`elements for the transmission and reception of radio fre-
`quency signals. Audio logic 44 contains the elements nec—
`essary for the generation and reception of audio signals such
`as amplifiers, digital-to-analog converters, etc. Power logic
`46 interfaces with main battery 34, as indicated, and supplies
`power to the elements of transceiver 12. Control logic 48
`supplies control signals to RF logic 42, audio logic 44 and
`power logic 46 to control their respective functions within
`transceiver 12. The construction and function of transceiver
`12 is within the scope of those reasonably skilled in the art.
`A transceiver 12, suitable for use in the present invention is
`commercially
`available
`from Motorola Corporation,
`Schlumberg, 111., and is similar to that used in the Digital
`Personal Communicator Telephone from Motorola. A
`speaker 52 and microphone 54 are coupled to audio logic 44
`to allow audio data to be received and transmitted, respec-
`tively by the user. In addition, a ringer 50, is coupled to
`audio logic 44 to alert the user of an incoming call. The
`construction and function of ringer 50, speaker 52 and
`microphone 54, as well as their interconnections and con-
`nections with audio logic 44 are likewise within a scope of
`one reasonable skilled in the arts. Transceiver 12 is coupled
`to central controller 16 by modem 14.
`Modern 14 comprises a modem controller 36 and a
`modem digital signal processor (DSP) 38. In the illustrative
`embodiment, modern controller 36 and modem DSP 38
`coact to provide a command driven modern with 2400 baud
`full duplex data transfer capabilities. The construction and
`function of modem controller 36 and modem DSP 38, as
`well as their interconnection, are within a scope of those
`reasonably skilled in the arts. The construction and operation
`of controller 36 and modem DSP 38 and the functionality
`provided by these devices are well-known and are found in
`a number of commercially available chip sets for providing
`modern capabilities to computer systems. Examples of such
`chip sets which are suitable for use in the present invention
`are Data/Fax/Voice Modem Device Sets Model Nos.
`
`12
`
`
`
`5,537,608
`
`3
`CL-MD9624ECT and CL—MD9624AT/EC2 commercially
`available from Cirrus Logic,
`Inc., 3100 West Warren
`Avenue, Fremont, Calif. 94538. Modern 14 interacts with
`transceiver 12 via a number of audio, control and power
`signals collectively illustrated in FIG. 1 as bus 15. An
`external connector 40, such as an 8~Pin connector, is coupled
`to modem 14, as illustrated, to allow for coupling modem 14
`to external devices, such as another modem, a computer, etc.
`Modern 14 is coupled to central controller 16 via a number
`of power, control and audio signal lines collectively illus-
`trated in FIG. 1 as bus 25.
`
`Central controller 16 comprises microprocessor 20, power
`control logic 18, backlight circuitry 22, liquid crystal display
`(LCD) 24, and touch overlay 26. Backlight circuitry 22,
`LCD 24 and touch overlay 26 collectively define user
`interface 35 on which virtual keyboard configuration may be
`displayed, as explained hereinafter. Central controller 16
`further comprises a RAM memory 27 and a ROM memory
`29 coupled to processor 20. Main battery 34 and backup
`battery 30 are coupled to power control logic 18, as illus~
`trated. Backup battery 30 maintains all volatile memory
`upon removal of main battery 34. In addition, a number of
`pushbuttons 32, such as power, and volume/contrast controls
`are coupled to controller 16.
`Processor 20, in the illustrative embodiment, embodies
`the complete architecture of an IBM PC/XT computer on a
`single chip. Processor 20 includes a CGA LCD interface
`through which it communicates with LCD 24, and a matrix
`interface through which it communicates with touch overlay
`26 in a manner similar to a conventional alpha-numeric
`keyboard. Processor 20 communicates with modern control-
`ler 36 through a serial interface, and further communicates
`with power control logic 18 through a number of signals
`which supply power to the processor and further alert the
`processor of low power in the battery. A processor suitable
`for use in the present invention as processor 20 is commer-
`cially available from Vadem, Inc., San Jose, Calif; Model
`No. VG230.
`Controller 16 does not contain a disk drive but instead
`includes a Personal Computer Memory Card International
`Association (PCMCIA) option port 31 for receiving an
`optional card 28. Card 28 is designed to interface with port
`31 according to the PCMCIA standard. In the illustrative
`embodiment card 28 is a memory card containing a plurality
`of addressable, executable files. Processor 20 interfaces with
`Port 31 through a number of buffers upon insertion into port
`31. Processor 20 controls power to the card.
`FIG. 2 illustrates the front exterior of personal commu—
`nicator 10. A housing 56 encases the elements of personal
`communicator 10. The front of housing 56 contains aper-
`tures in the upper and lower portions thereof for access to
`speaker 52 and microphone 54, respectfully. User interface
`35 extends through the housing 56 so that touch overlay 26
`is exposed and accessible to the user. A retractable antenna
`58 protrudes from the upper portion of the housing to
`facilitate reception of radio frequency signals. Not shown in
`FIG. 2 are pushbuttons 32, a slot for reception of PCMCIA
`Card 28 external connector 40, and a cavity in the rear of
`housing 56 into which main battery 34 is insertable. As
`described above, personal communicator 10 integrates the
`architecture of a complete personal computer with a modem
`and an RF transceiver into a portable, lightweight package
`which fits in the user’s hand or pocket.
`Having described the physical architecture of communi—
`cator 10, a description of some exemplary applications and
`their respective graphical user interfaces, as well as a
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`navigation utility for moving between applications, is set
`forth below in detail. Processor 20 of central controller 16 is
`based on the architecture of the Intel 8086 processor. An
`operating system, stored either in ROM 29 or on processor
`20 is executed by the processor 20. In the illustrative
`embodiment, the IBM-PC DOS Operating System is uti-
`lized, however, other compatible operating systems may be
`used. Aplurality of applications or executable files are stored
`in PCMCIA card 28. Upon insertion of card 28 into port 31
`processor 20 can access these stored applications.
`In the contemplated invention, each application stored in
`card 28 is directed to different functionality and, upon
`execution, generates a different graphical user interface, as
`illustrated in FIGS. 3A—E. FIG. 3A illustrates the graphical
`user interface generated upon execution of a phone emula-
`tion application by controller 16. The ll-digit keyboard is
`displayed graphically on interface 35. When the user touches
`overlay 26 above the desired key, the processor 20 registers
`the selected digit and displays it accordingly. FIG. 3B
`illustrates the graphical user interface generated by execu—
`tion of an electronic mail application by controller 16. Here,
`the user may use the touch-screen capability to select any of
`the displayed options. FIG. 3C illustrates the graphical user
`interface created by execution of an address book simulation
`application. FIG. 3D illustrates the graphical user interface
`generated by execution of a calendar application. FIG. 3E
`illustrates the graphical user interface generated by execu-
`tion of a calculator application. From FIGS. 3A—E it can be
`appreciated that
`the graphical user
`interface changes
`depending on the application currently selected and execut—
`ing. The screens, keyboards and keypads illustrated in FIG.
`3A—E are virtual and can be programmed in the application
`itself to have numerous configurations, increasing flexibility
`in the graphical user interface. Each of the graphical user
`interfaces generated by the exemplary applications includes
`four option keys at the bottom of interface 35. These option
`keys are entitled “HELP”, “PHONE”, “TOOLS”, AND
`“BACK.” By selecting any one of these four keys alone or
`in combination with other virtual keys, the user may select
`an application for execution different from the currently
`executing application. To allow users to move quickly and
`easily from one application to another without having to
`return to a main menu, a special utility application, herein-
`after referred to as the Navigator, executes in tandem with
`the selected application as described hereafter.
`The Navigator is a utility application which allows the
`user to move quickly'and easily from one application to
`another. The history of file selections made by the user is
`stored in memory in a queue or internal stack maintained by
`the Navigator. The basic function of the Navigator is to start
`execution of the next queued application, a process herein—
`after referred to as “spawning”. Not counting the operating
`system, there are only two applications residing in processor
`20 at any time, the Navigator utility and a spawned program.
`The Navigator and spawned program application execute in
`tandem.
`
`The Navigator maintains an internal memory stack which
`serves as a queue. The order of entries in the queue corre-
`spond to the order in which applications are executed. Each
`entry in the queue represents the calling sequence for an
`application. The calling sequence of an application com—
`prises the name of the executable file, the access path, and
`a number of parameters being passed to that file from
`another application. These parameters are passed from the
`currently executing application to the next selected applica-
`tion. For example, if the currently executing job is an
`address book-type application, such application can call a
`
`13
`
`13
`
`
`
`5,537,608
`
`5
`telephone-type application and pass to it, as a parameter, the
`character string representing the phone number selected
`during execution of the address book application. The Navi-
`gator sets no limits to the number of parameters that can be
`associated with the calling sequence of an application.
`However, the content and format of the calling sequence
`must be understood by the Operating system.
`As described previously, the option keys present at the
`bottom of each virtual screen display, provide the user with
`a means for moving quickly between frequently used appli—
`cations. Each of the option keys, except Back, will cause a
`specific calling sequence to be initiated, causing the asso-
`ciated application to be executed. The Back option key
`causes the most recently executed application to be executed
`as explained below.
`To conceptually illustrate the management of the internal
`stack by the Navigator, an example is provided wherein a
`number of generic applications or files entitled Phone 1—4
`are selected in the sequence indicated in FIGS. 4A—F and
`SA—F. Upon initialization, the internal stack, indicated gen-
`erally by reference numeral 60, contains default calling
`sequences, here indicated by Phone 1 in each stack entry.
`From the graphical user interface of Phone 1 if the user
`selects the Phone 4 application, the calling sequence for
`Phone 4 is added to the top entry of stack 60, as indicated
`in FIG. 4B. From the graphical user interface of Phone 4, if
`the user selects the Phone 2 application, the calling sequence
`of Phone 2 is added to the top entry of the stack as indicated
`in FIG. 4C. In a similar manner, if the user then selects, in
`sequence, applications Phone 3, Phone 4 and Phone 1, stack
`60 will assume the configurations illustrated in FIG. 4D, 4E
`and 4F respectively. It can be seen that with each new
`application selected by the user, the calling sequence for that
`application is placed on the top entry of stack 60. Next, if,
`from the currently executing application, Phone 1, the user
`decides to select the previous application, by selection of the
`BACK option key, the calling sequence of Phone 1 will be
`popped from the top entry of stack 60 and placed at the
`bottom entry thereof, as indicated in FIG. 5A. The calling
`sequence for Phone 4 is now at the top entry of stack 60.
`Similarly, if the user selects the Back option key again, the
`calling sequence of Phone 4 will be placed at the bottom
`entry of stack 60 and the calling sequence for Phone 3 will
`be present at the top entry of stack 60, as indicated in FIG.
`5B. If, in a similar manner, using the BACK option key, the
`user sequentially moves backward through the calling
`sequence, selecting applications Phone 2, Phone 4, and
`Phone 1, the internal stack 60 will assume the configurations
`illustrated in FIGS. 5C, 5D and 5E, respectively. In each
`instance of selecting the BACK key, the calling sequence at
`the top of the stack is placed at the bottom of the stack and
`the next entry moved to the top entry of stack 60. FIG. 5F
`illustrates the configuration of stack 60 after the scenario in
`which the user has selected new files Phone 4, Phone 2,
`Phone 3, Phone 4 and Phone 1 and then, using the BACK
`key, hack tracks and reexecuted these files in reverse order.
`The specific algorithmic steps executed by the Navigator
`as well as its interaction with a selected application will be
`described hereafter with reference to FIGS. 6A and B. To
`assist in the explanation of the algorithmic steps executed by
`the Navigator application, several variables are defined.
`STACK is a memory area, such as that illustrated by item 60
`in FIGS. 4—5. The STACK may be implemented in software
`in a manner within the scope of one skilled in the arts.
`STACKwTOP represents
`the
`top entry of STACK.
`STACK_BOTTOM represents the bottom entry of the
`STACK. TEMP and CMD_LINE are variables which hold
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`14
`
`6
`an ASCII character string representing the calling sequence
`of an application to be executed. CMDiLlNE#ADDR
`represents the address of the CMD_LINE variable in
`memory. NAVSTAK represents a location within the DOS
`environment where an application can find the value of
`CMD_L1NE_ADDR. CODE is a value returned from a
`currently executing application to the Navigator application,
`as defined hereinafter.
`
`Referring now to FIG. 6A, upon power up of communi-
`cator 10, the Navigator goes through a number of initial—
`izan'on steps, indicated by procedural block 110. These steps
`include initializing all entries of STACK to a default calling
`sequence, and placing the same default calling sequence in
`the TEMP variable. The CMD_LINE variable is defined
`and the address of CMD_LINE, CMD_LINE_ADDR, is
`written to the DOS environment, i.e. NAVSTACK. Next, the
`Navigator executes or spawns the calling sequence of the
`application present in the TEMP variable, as indicated by
`procedural block 112. At this point, execution of Navigator
`suspends, as indicated by block 114. Next, the spawned
`application executes creating a graphical user interface and
`providing functionality to the user, as previously defined.
`Execution of the spawned application is indicated by block
`116 and is defined in greater detail in the flow chart of FIG.
`6B.
`
`Referring to FIG. (B, the algorithmic steps executed by
`the currently spawned application are illustrated. The
`spawned application providing functionality and a graphical
`user interface to the user, as indicated in procedural block
`136. If the user has not selected one of the option keys,
`execution of the spawned application continues, as indicated
`by the NO branch of decisional step 138. If the user has
`selected one of the option keys, as indicated by the YES
`branch of decisional block 138, a determination is made as
`to which option key has been selected, as indicated in
`decisional block 140. If the user has selected the BACK
`option key, the spawned program sets the CODE variable
`equal to “1”, as indicated by procedural block 142. If the
`user selects other than the BACK option key, a new appli—
`cation is to be selected, and the calling sequence thereof is
`to be written to the STACK_TOP. The currently executing
`application retrieves CMD_L1NE_ADDR variable from
`the operating system environment, as indicated by block
`144. Next, a copy of the calling sequence for the next
`selected application is written into the CMD_LINE vari-
`able, as indicated by block 146. Next, the currently spawned
`application determines if the calling sequence of the next
`selected application should be written to STACK_TOP, as
`indicated in decisional block 148. If so, the currently execut-
`ing application then sets the CODE variable equal to “2”, as
`indicated by block 150. In the event that the next selected
`application should not be written to STACK_TDP,
`the
`spawned program sets the code variable to “3”, as indicated
`in block 152. The determination of whether or not the newly
`selected application should be written to STACK_TOP is
`programmed into the code of the actual application by the
`designer. Accordingly, all spawned applications prior to their
`termination will set the value of the CODE variable appro-
`priately. The spawned application will then terminate, leav—
`ing the CODE variable in an address accessible by the
`Navigator utility, as indicated in step 154.
`The spawned application having terminated, the Naviga-
`tor program accesses the value of CODE variable, as indi—
`cated by block 118 in FIG. 6A. If the value of code is equal
`to “1”, as determined in decisional block 120, the Navigator
`rotates the STACK, as indicated by procedural block 122.
`Rotation of the STACK occurs by setting the current value
`
`14
`
`
`
`5,537,608
`
`7
`of STACK_TOP to a temporary variable, and shifting
`content of each of the STACK locations to the next higher
`STACK location. The value of STACK_BOTTOM is then
`set to the value of STACK_TOP in a manner within the '
`scope of those reasonably skilled in the art. Next,
`the
`Navigator copies the value from STACK_TOP to the TEMP
`variable, as indicated in procedural block 124. The TEMP
`variable contains the calling sequence of the next application
`to be spawned, which in this instance, is the previously
`executed application since the user selected the BACK
`option key.
`If the value of the CODE variable equals “2", indicating
`a new application which should be written to STACKiTOP,
`the Stack is pushed down, as indicated by procedural block
`128. In pushing down the STACK, each STACK location is
`written to the next lower STACK location, with the content
`of the lowest Stack location disappearing. Next, the contents
`of the CMD_LINE variable are copied to the TEMP vari-
`able, as indicated by procedural block 130. The contents of
`the TEMP variable are then copied to the Staek_Top vari—
`able, as indieated by procedural block 132. In this manner,
`procedural steps 128—132 ensure that the calling sequence of
`the next application to be spawned is recorded in the STACK
`for later retrieval.
`
`indicating that the
`If the CODE variable equals “3",
`calling sequence of the next application to be spawned
`should not be recorded in the STACK, the content of the
`CMD_LINE variable is copied to the TEMP variable, as
`indicated in procedural block 134. However, the value of
`TEMP is not subsequently copied to the STACKiTOP
`variable,
`therefore,
`the occurrence of the next spawned
`application will not be recorded into the sequence of file
`executions maintained by the Navigator. Next, returning to
`the top of the flow diagram,
`the Navigator spawns the
`application whose calling string can be found in the TEMP
`variable, as indicated in procedural block 112.
`As can be appreciated, the Navigator utility executes in a
`continuous 100p and suspends execution only once another
`application has been spawned. Upon termination of the
`spawned application, the Navigator determines the calling
`sequence of the next application to be spawned and modifies
`the STACK as necessary.
`In the contemplated invention, even after loss of power by
`personal communicator 10,
`the Navigator will continue
`execution from the state at which power was lost. To assist
`in an orderly shutdown of communicator 10 by processor 20
`upon the loss of power or the voltage from main battery 34
`falling below acceptable logic levels, a special early warning
`circuit 70 is implemented within a communicator 10, as
`indicated in FIG. 7. Circuit 70 comprises resistors 74 and 76,
`capacitor 78 and logic buffer 80. Resistors 74 and 76 are
`configured as illustrated to function as a voltage divider,
`with capacitor 78 performing a filter function. Logic buffer
`80 further conditions the signal from the power supply to a
`level which is acceptable to processor 20. By selecting
`appropriate values for resistors 74 and 76, and capacitor 78,
`the output of battery 34 appears to processor 20, not as a
`power signal but as a logic signal. Power is supplied to
`processor 20 and the other elements of communicator 10 via
`Q1 and Q2, as controlled by power supply logic 18. In this
`manner, battery 34 is coupled to processor 20 through both
`a power connection and an early warning logic signal. Upon
`removal of battery 34 from communicator 10 or power
`levels from the battery falling below an unacceptable level,
`the level of the signal present at the output of bufler 80 will
`change. This change will cause a non-maskable interrupt in
`processor 20. Upon receiving the non-maskable interrupt,
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`8
`processor 20 will execute a shutdown algorithm in which the
`PC counter, working registers, etc., are stored in an orderly
`manner in anticipation of power loss. Simultaneously ,upon
`removal of the battery or loss of power, capacitor C1 and C2
`discharge, with the time for discharge defining the window
`in which processor 20 can perform an orderly shutdown
`routine. The volatile memory in communicator 10 is main—
`tained by backup battery 30 as indicated.
`Upon inserting a new battery into communicator 10,
`proce