Subject:  HP48 G Series CODELOCK, Library 873, version 1.3
   

   This new version is meant to correct a problem associated with 
DISP.CODE customization. When turned on in the protected mode, the CANCEL 
( ON ) key could abort the CODELOCK procedure. The problem occurred
when the user program DISP.CODE executed the System RPL command
CK0ATTNABORT, which aborts program execution if a CANCEL is detected.
Note that key presses for the entry code are not valid until the busy 
annunciator is turned off.


VERSION HISTORY:
    
    1.2  Allowed the user to customize the display during the turn on 
         procedure ( See OFFLOCK description ).

    1.3  Disabled abort by means of CANCEL ( ON ) key during turn on
         procedure for DISP.CODE customization. Used busy annunciator to 
         indicate readiness for code entry during turn on procedure.


DESCRIPTION   

   This library for preventing unauthorized entry into your HP48 G
Series calculator is based on the CODELOCK Library written by
Scotty Thompson for the S Series. The library will also set the
flags to the user's preferences upon a system restart. The entry
code is five ( 5 ) keypresses. If an alarm wakes the HP48 while in a
protected mode, the calculator will be turned off and remain in a
protected mode. The protected mode will not be entered upon a
normal time-out. The entry code and flag settings are written
into the library itself. Thus at first, CODELOCK is installed in
order to customize a CODELOCK library with the user's entry code
and flag preferences. The original is purged and the customized copy
is installed.


INSTALLATION/SETUP:
 
Back up memory.
Store original library into port 0.
Turn off calculator, then turn it back on.
Set flags to your preferences.
:0:873 RCL
873 MENU
SETLOCK
SETFLAG
HOME :0:873 DUP DETACH PURGE
Store customized library into port 0, 1, or 2.
CODELOCK may be stored in a RAM card so that the card becomes 
code-locked.
 
 
COMMANDS:
 
   OFFLOCK   ( no_arguments -> no_outputs )
 
     Turns off the calculator in a protected mode if an entry code
     has been set using SETLOCK. Assign to the OFF key with: 
     << OFFLOCK >> 91.3 ASSIGN. OFFLOCK looks for the variable 
     DISP.CODE. If not found, then the standard message "Key Entry Code:"
     is displayed. If found, then the standard message is not 
     displayed, and DISP.CODE can be used to customize the display. 
     DISP.CODE must be completely responsible for the display.
     It can use graphic objects and/or strings as the user sees
     fit. A simple program stored in DISP.CODE ( typically in the HOME 
     directory ) would be,

        << "This calculator belongs
            to Juan A. Keepit" 
            1 DISP  >>

     When turned on in the protected mode, the HP48 takes a moment
     to initialize itself. Key strokes for the entry code are not 
     valid until the busy ( hour glass ) annunciator has been turned 
     off.


   SETLOCK   ( Library_873 -> Customized_Library_873 )
 
     Writes Entry Code into CODELOCK Library. Takes a sequence
     of five (5) keypresses excluding the ON key. Combination
     keypresses are allowed. For example, holding down the 
     RIGHT-SHIFT, pressing and releasing ENTER, then releasing 
     RIGHT-SHIFT would count as three key entries: 
     ( RIGHT-SHIFT, RIGHT-SHIFT+ENTER, and RIGHT-SHIFT ).
 
   SETFLAG   ( Library_873 -> Customized_Library_873 )
 
     Writes flag configuration into CODELOCK Library. These flags
     are set upon a system restart or by the cfg command.
 
   cfg    ( no_arguments -> no_outputs )
 
     Configures flags as set by SETFLAG. If SETLOCK has not been 
     used, then the default settings are used.
 
 
CODELOCK SECURITY

   When turned on in the protected mode, it is possible for a brief 
moment to do a Memory Reset ( ON+A+F ). 


WARNING
 
   This library contains XLIB's whose location within the library
should not be changed. This library was tested on an HP48 GX rev P.

   Occasionally, problems have been encountered when trying to remove
this library using normal procedures. If this occurs, do a system halt
(ON+C) and then try purging the library again.
 
Thanks to Scotty Thompson for the original version of CODELOCK.
Thanks to Detlef Mueller for his CONFIG Library.
 
 
         Todd Eckrich  (mte@delphi.com)
         1428 Oaklanding Road
         Mount Pleasant, SC 29464
         803 881-8781


