HPLOCK31.DOC NOTICE: Program HPLOCK.LIB and documentation HPLOCK31.DOC are copyright (C) 1995-96 Ludvik Krulik, all rights reserved. This version of HPLOCK is NOT public domain or free software, but is being distributed as SHAREWARE. You are granted a limited license to use this shareware for a two week evaluation period. If after the two week evaluation period you determine that HPLOCK meets your needs, you are required to register HPLOCK. If you distribute this software to others, you are required to distribute the entire unmodified package (ZIP file). Commercial use of this material is not allowed without prior permission from the author. WARRANTY: Following library works ONLY on G/GX series HP48 calculators. It contains unsupported code. Even though it has been extensively tested on various ROM revisions, USE AT YOUR OWN RISK. THIS SOFTWARE IS PROVIDED WITHOUT ANY WARRANTY. AUTHOR SHALL NOT BE LIABLE FOR ANY DAMAGES RESULTING FROM THE USE OF THIS SOFTWARE, INCLUDING BUT NOT LIMITED TO, LOSS OF PROFIT, DATA OR USE OF THE SOFTWARE, OR INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR OTHER SIMILAR CLAIMS. NOTE TO HACKERS: This program is shareware. If you can take it apart and remove shareware pause, keep this to yourself. If you have any questions, suggestions or bug reports, e-mail me at Ludvik.Krulik@snet.fer.uni-lj.si WARNING: ********************************************************* * DO NOT DISTRIBUTE THIS LIBRARY WITH PASSWORD ALREADY * * SET SINCE IT WILL !!!!IMMEDIATELY!!!! LOCK HP48 IT IS * * INSTALLED IN. THERE IS NO WAY TO BREAK THE LOCK * * WITHOUT LOOSING ALL YOUR MAIN MEMORY (UNLESS YOU HAVE * * A PASSWORD) * ********************************************************* 1. Overview HPLOCK v3.1 = HP48 LOCKing program. HPLOCK consists of four commands: - HPLOCK, locks your HP48 with password, - SECURE, encrypts and stores away HOME with sub directories, - SETPASSWD, sets/changes password, - ABOUT. Note: HPLOCK is a bit tricky to install so please follow instructions carefully if you're not experienced HP48 user. Password is written directly into HPLOCK library. 2. Revision history - Version 1.1: * Fixed bug: During turn on period, key scanning was enabled so ON+A+F with Recover Memory unlocked HP48. - Version 3.0: * Fixed bug: If you ran DBASE and few other programs after SECURE, HP48 crashed. * Added customizable display. * Added code to prevent keyboard autorepeat when entering password. * Fixed bug: SETPASSWD accepted empty password. * Fixed bug: you could execute SECURE even without password. * Added handling of 'Recover Memory?' + [YES]. - Version 3.1: * SECURE doesn't require password anymore to encrypt HOME. 3. Using HPLOCK library 3.1 How to install HPLOCK and set password 3.1.1 For HPPORT v3.1 (binary or library - ID 1505) users: - Send library from PC via XModem, run HPPORT, (set I/O to wire and select source port) and press [A. 'V]. Wait until transfer has finished. I suggest storing library it in port 0 since RAM cards can easily be removed. - Press CANCEL or ENTER. - Run HPPORT again, select HPLOCK, press [RCL] and ENTER. - Press [SETPA]. - Enter password twice. ! Password can be up to 10 keystrokes long. ! Shift keys are treated as keystrokes. ! You can't use ON as keystroke. ! After entering password you have to press ENTER. ! If everything was OK, you should see message: "Password Set". It means that password was written into library on the stack. Therefore, library has been modified. - Store library from the stack into a dummy variable. - Warmstart HP48 (ON+C). - Run HPPORT, select HPLOCK library and press [PURG]. - Press [->PRT], select dummy variable and press ENTER. - Optional: Make a backup copy of modified library on your PC and clearly mark it as modified: Press LeftShift+[A. 'V] and issue XModem receive on PC. Wait until transfer has finished. - Press CANCEL or ENTER. - Purge dummy variable. 3.1.2 Standard Note: << ... >> is user RPL program. Put in on stack and press EVAL to execute it. Example assumes port 0. - Download library in one of HP48's ports. I suggest storing it in port 0 since RAM cards can easily be removed. << 'DUMMY' XRECV 'DUMMY' RCL 0 STO 'DUMMY' PURGE >> - Warmstart HP48 (press ON+C). - Recall HPLOCK library on stack level 1. << :0:1503 RCL >> - Run SETPASSWD. << SETPASSWD >> - Enter password twice. ! Password can be up to 10 keystrokes long. ! Shift keys are treated as keystrokes. ! You can't use ON as keystroke. ! After entering password you have to press ENTER. ! If everything was OK, you should see message: "Password Set". It means that password was written into library on the stack. Therefore, library has been modified. - Store library from the stack into a dummy variable. << 'DUMMY' STO >> - Optional: Make a backup copy of modified library on your PC and clearly mark it as modified. - Warmstart HP48. - Purge original library. << :0:1503 DUP DETACH PURGE >> - Install modified library from a dummy variable into one of the ports and purge dummy variable. << 'DUMMY' RCL 0 STO 'DUMMY' PURGE >> - Reset HP48. 3.2 How to lock your HP48 - Press LOCK from HPLOCK menu. This also turns HP48 off. Notes: - While HP48 is locked, all activated alarms are prevented from executing. They are not deleted though. If alarm turns HP48 on, it is immediately turned off. - HP48 timeout is set to 10 seconds. - If someone has been tampering with your HP48, you should see a note on the bottom of the screen saying: "Wrong Password". - If alarm went off while HP48 was locked, you should see a note on the bottom of the screen saying: "Alarm went off". You should check your alarm list. - You can't break the lock by pressing ON+XX combinations or by resetting through a hole under the rubber foot. HPLOCK even handles 'Recover Memory' + [YES] situations. - If a thief wants to steal your HP48, there is no library in the world that could prevent him from using it. There is no cure against removing batteries or RAM cards :( However, there is a shorter way to get in than to wait half a day for the capacitor to discharge after removing batteries. - HPLOCK creates 'HPLOCKpar' in hidden directory. If you delete it, HP48 will lock up on next warm start (ON+C). - For 'optimum performance' assign LOCK to a key (I suggest CONT if you have no use for it). If you are using HPSTACK library (1502), you can take advantage of it's entry mode sensitive user keys. 3.3 How to change password - Procedure is the same as with 2.1 except that you have to enter old password first. 3.4 Customizing display * Put you message in form of a string in 'HPLOCK.USR' variable in HOME directory. (you can use newline characters to separate lines of text) * LOCK displays only first six lines of a string. 3.5 SECURE program If you have a lot of personal information in your HP48, it's difficult to lend your calculator to a friend, especially if he (she) is an experienced HP48 user. This command solves the problem: - Running SECURE first time: * HOME, it's sub directories and hidden directory are copied into a single object and encrypted. * The rest of the memory is CLEARED and HP48 issues warm start. - Running SECURE second time: * After entering password, all your variables should be back and ready. Note: While your HOME is secured, your friend is free to run programs and create variables. Of course, they will be wiped out after you restore HOME to it's previous state. Note: This command hasn't been extensively tested, so be warned. 4. Credits Thanks to the following people for suggestions and beta testing: Francois Vignon (100333.700@compuserve.com) Andrej Sila (asil@ltk6.fer.uni-lj.si) Erik Wever (ew@p20.wharfrat.fido.de) Makoto Miyamoto (Makoto.Miyamoto@rz.ruhr-uni-bochum.de) 5. Information about library - Version: 3.1 - Library ID: 1503 - Size: 1977.0 bytes - Checksum (with empty password): #9C5Eh 6. Registering information If you decide to register this program, you will * receive the latest version without "SHAREWARE PAUSE" message via Internet e-mail, uuencoded. * receive future upgrades free of charge via Internet e-mail, uuencoded. You can register more than one program. If you decide to register three or more, registration fee is for three programs only. Payment method: In cash, US$ only. Registration form: ===================================================================== TO: Date: _____________________ Ludvik Krulik Sela 49a, 8257 DOBOVA SLOVENIA Ludvik.Krulik@snet.fer.uni-lj.si FROM: Name: _______________________________________________________ Address: _______________________________________________________ Country: _______________________________________________________ Internet E-mail address (obligatory) : ________________________________________________________________ ORDER: HPTODO v3.1 ........................................ (5 US$) [ ] HPAPPA v3.0 ........................................ (5 US$) [ ] HPCALENDAR v3.1 .................................... (5 US$) [ ] HPLOCK v3.1 ........................................ (5 US$) [ ] HPPORT v3.1 ........................................ (5 US$) [ ] ================================================================ TOTAL (three if more than three checked)..............__ x 5 US$ =====================================================================