From: kskalb@immd1.informatik.uni-erlangen.de (Klaus Kalb)
Subject: Local key assignments
Organization: CSD., University of Erlangen
Date: Fri, 14 Aug 1992 16:34:13 GMT

Hello !

Playing around with the ParOuterLoop, I came up with a way to make
local user key assignments. 

Please try this piece of software and mail any comments, especially
bug reports to me.

Hey, that's what people call a beta-release, isn't it ? ;-)

I didn't post the source code to save bandwidth.
If there's interest in the source, drop me a line.

Since I don't consider this piece of software finished, I didn't
post it to comp.sources.hp48 yet. I want to here your opinion before
doing so.

BEGIN_DOC lusr.doc

THIS LIBRARY ISN'T TESTED THOROUGHLY YET, SO BE PREPARED TO LOOSE
YOUR MEMORY. BACKUP YOUR HP48 BEFORE RUNNING THIS PROGRAM.

This library (id 1674) provides key assignments local to the
current directory. 

It has 4 visible commands:

	AboutLUSR: 	-->
			have a guess

	LUSR:		-->
			Starts the LUSER-Mode if USER mode is off.
			Terminates LUSER-Mode if LUSER mode is on.
			Terminates USER-Mode if USER mode is on.

	LASN:		Object Keycode -->
			Makes a key assignment local to the current dir.

	LDELKEY:	KeyCode -->
			Removes a local key assignment.


How it works:

	The local assigments are stored in a global variable named
	'KEYS'. The format of this list is
		{ Object1 KeyCode1 ... ObjectN KeyCodeN .... }
	where KeyCodeN is the keycode (as used by ASN) of the key
	and ObjectN is the object bound to that key.
	If there is such a variable in the path, it overrides the
	standard interpretation of the key.

	As long as LUSER-mode is on, there will be LUSER instead of
	USER in the top row of the display.

	LUSER-mode is terminated as soon as the normal USER-mode
	is terminated.

Known Bugs:

	--- Assigning real numbers of the form rc.p will
	    cause confusion, maybe even crashes.

 	--- Doesn't work with MSTK, HSTACK and friends.
	    (Well, I just tried and it seems to work with MSTK,
	     but I won't guarentee anything ;-)

	--- The small L in front of USER will flash.

	--- It will get slow if there are lots of assignments.

	--- KEYS isn't just recalled, it is evaluated.
	    Well, actually this is not a bug, it's a feature.

							-KK

END_DOC 

BEGIN_ASC
%%HP: T(3)A(R)F(.);
"04B204F40091C45535250213E2032302C6F63616C6025737562702B656973791
A86BF300000009C30050000D9D2011920A860090770B2130D9D2084E2040B454
953511226B3A16442309E550B2130D9D203A446881306AC3039916C0126E0E30
18A30B21308A86300D9D20ECE819FF30D9D202AC1429D1429E20A8650032230C
A13029E20A8640048916B9F0632230FA450881308131688130D2E3098F26FED3
098F26E4E309545079E6084E2040B454953531581B2130B21308A86200D9D20F
DE819FF30D9D202AC1429D148813029E20A8630029E20A86500FA450D2E30954
5079E6084E2040B454953531581B2130B21308A86100D9D20D8A1439916D9D20
11920E300016735B213011920E30001373579E60D9D20CAD8339916D9D20C209
31A683B21301A68311920D4000FEF30E1B20B100060000400001010101070000
B821B213079E60D9D2029D1429E20A865001BF2629E20A86400DA916C01266B6
50B213018A300CA300CA309FF3018A3079E60D9D20D8A142FA30B213079E60D9
D20827835409314F8358B93B213058983B21308A86000D9D20E1632C2A207300
0C45535250213E2032302C6F63616C6025737562702B6569737858A13F2A2485
A1C2A2013000642594021343E20383E2932302021373A34353A35393D13A2485
A1C2A201300025F4D494440213637343020202020202269702D2B4B4233A2485
A1ED2A24A5A193632B2130E4A2032000D0FFF7CDFF05DFF2ACFF96CFF73CFFE4
A202B0000000000000000006400000000000001500000000A500000000000000
0000000000000000000000009400040C455352510040C41435E420070C44454C
4B45495300901426F65747C455352500071000940001400093000E8A04D19"
END_ASC

BEGIN_UU lusr.uu
begin 644 lusr.lib
M2%!(4#0X+45 *T!/ !E,55-2(#$N,#(@;&]C86P@=7-E<B!K97ES&8JV/P  
M ) \  4 T-D"$2F@:  )=[ 2 YTM@.0"!$M%65,1(K:C840RD%X%*S'0V0*C
M1(88 Z8\,)EA#"'FX .!.K 2 ZAH ]#9 LZ.D?\#G2T@RD&2'23I HI6 ",R
MP!H#DBZ@: 1 F&&;#S8B Z]4@!@#&!.&& ,M/I#X8N\]D/AB3CZ01067;H#D
M @1+15E3$X6Q$@,K,8"*)@"=+?#M&/D_T-D"HAPDV4&(,2#I HHV )(NH&@%
M\$H%+3Z01067;H#D @1+15E3$X6Q$@,K,8"*%@"=+="H09,9UMD"$2G@ P!A
M-[42 Q$IX , ,3=UZ0:=+<#:.),9UMD"+) 3:C@K,1!J.!$IT 0 [S_@L0(;
M &    0 $! 0$'   (L2*S%PZ0:=+2#909(NH&@%$/MBDBZ@: 30FF$,(69K
M!2LQ$*@#P#H K /Y/Q"H Y=NT-D"C1HDKP,K,7#I!ITM@'(X19 3]#B%F[,2
M X6)LQ(#J&@ T-D"'C;"H@(W ,!4-24%$N,"(P/"]C86Q@92-U<F![)6EC>'
MA1KSHD)8&BPJ$ , 1E))(#$T+C X+CDR(" Q-SHT-3HU.1VC0E@:+"H0 P!2
M3TU)1" Q-C<T(" @(" @8GD@+4M+,J-"6!K>HD):&CDVLA(#3BHP @ -_W_<
M_U#]+\K_:?Q_P_].*B +          !@!        %$     6@          
M              !) $# 5#4E%0 $3$%33@)PP$14Q+14E#4 "4%B;W5T3%53
/4@!P 0!) ! $ #D X*@ 
 
end
END_UU
  

---
------------------------------------------------------------------------------
    Klaus Kalb     | mail :  IMMD1 / Martenstr. 3 / W-8520 Erlangen / Germany 
 Werch ein Illtum  | email:  kskalb@immd1.informatik.uni-erlangen.de   
------------------------------------------------------------------------------