The following warnings occurred:
Warning [2] Undefined array key 229032 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 229037 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 229040 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 229043 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 229046 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 229052 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 229053 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 229066 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 229067 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $thread - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $fid - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 229046 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 229067 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $theme - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $theme - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $lang - Line: 5 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 5 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Attempt to read property "messages_in_thread" on null - Line: 5 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 5 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks





HP39GII GETKEY command



#10

I am struggling with the HP39GII GETKEY command.

This crude bit of code works under the emulator, although with a few glitches and false returns:

EXPORT TRY1()
BEGIN
0->A;
REPEAT
RECT();
GETKEY->A;
TEXTOUT_P(String(A),10,10);
WAIT(1);
UNTIL A=5;
END;

i.e. it reads and displays key press codes until key 5 (F6) is pressed.

-1 is displayed when no key is depressed.

When I USB it across to the actual HP39GII, it doesn't work at all. Zero is returned whatever the state of the keyboard.

I tried a similar program on my HP39GS and this behaved as expected. On this earlier model, a call of GETKEY actually suspends processing until a key is pressed. On the HP39GII it just runs through but throws up the code number for the last key pressed.

Has anybody else successfully used GETKEY on their hardware HP39GII?


Edited: 11 Aug 2012, 10:58 a.m.


#11

Thanks for the information. Will investigate. Send me an email at timwessman at hp.com.

I believe the change to not pause was made since it seemed most of the time people wanted to use this is a loop and continue processing (for example, a game or moving an object). Pausing meant that was pretty much impossible. We could probably investigate having an optional "time" value from 0 on up that would specific the amount of wait time. Thoughts?

TW


#12

The 50G is fine for this...

1/ Wait Command: Suspends program execution for specified time, or until a key is pressed.
The function of WAIT depends on the argument, as follows:
• Argument x interrupts program execution for x seconds.
• Argument 0 suspends program execution until a valid key is pressed. WAIT then
returns xkey, which defines where the pressed key is on the keyboard, and resumes program execution.

(see AUR)

If i'm not wrong, i remember also that the 0 WAIT on the 50G use very few power (on the the contrary of a loop with a key test)

On my 39gII Rev 16633 GETKEY don't work
On the emulator (Rev 17565), the result seems curious (not always the same number for the same key !)

EXPORT Test
BEGIN
LOCAL a;
REPEAT
a:=GETKEY;
IF a<>-1 THEN RECT(); TEXTOUT_P(string(a),10,10); END;
UNTIL a==5;
END;

Tim, a question : why many functions are in CAPS but few not (for example why 'string' and not 'STRING' ?

Edited: 11 Aug 2012, 7:15 p.m.


#13

Generally, it means they came from XCAS, or started in XCAS and then later a strictly numeric version was made.

TW

#14

Hi Charles,

Please state the version/date of your emulator and rom.

A bug in GETKEY have been reported (by me) in beta-test forum some time ago, and as far as I know, the correction is done, but I am not sure it makes its way to public releases already.

As for GETKEY not suspending execution, it is a behavior which match the manual. I don't like it as any program which use it will drain the batteries while waiting for the keyboard.

Patrice


#15

Version string on the emulator is 2012 07 10 17565.

It behaves as Gilles reports in his post above.

The physical calculator's ROM is 09/May/2012 Revision 16633.

Edited: 12 Aug 2012, 1:28 a.m.


#16

This should explain.

The bug was here in May and was corrected before your emulator release.

Check for ROM update.


#17

I will re-flash as soon as a newer ROM download becomes available.

I have a work-around for the "GETKEY" problem that uses the "ISKEYDOWN" function, which works properly. Code like this could be re-jigged as a function in any given program:

EXPORT TRY1()
BEGIN
REPEAT
0->A;
-1->B;
REPEAT
B+1->B;
ISKEYDOWN(B)->A;
UNTIL A=1 OR B=50;
RECT();
IF A=1 THEN
TEXTOUT_P(string(B),10,10);
END;
UNTIL B=0;
END;

Keys are polled sequentially until one is found to be down or key 50 has been reached. If a key was down its id is reported. Key 0 (F1) exits the program.

This works like the wait-until-a-key-is-pressed style "GETKEY" command on the HP39GS.


#18

Hi Charles

Interesting. It works fine. I think there is differences between your program and GETKEY :

- if you call 2 times TRY1 and a key is pushed (and not released) , it will returs 2 times the code key. I imagine GETKEY would only returns the key for the first call (if you don't release the key and push again)as it uses the keyboard buffer.

- The buffer is not cleared with ISKEYDOWN (you can can clear it with a call of GETKEY if ISKEYDOWN)

To manage the keyboard, we need 3 functions :

1/ GETKEY (to read the last key in the buffer)

2/ ISKEYDOWN (to scan the keyboard in real time)- Perfect for games ;)

3/ WAIT(0) like the 50G : stop the program, and wait until a key is down and then return the key number - low power consumption)

PS : I've not tried yet, but it will be interesting to see if ISKEYDOWN can manage multiple keys down in the same time

EDIT : Yes you can, with the real calc (not with 17565 rev emulator (perhaps because of the PC keyboard ? You can't push 2 keys only with the mouse ;) ) :

 EXPORT MyFirstGame
BEGIN
LOCAL k;
REPEAT
k:="";
IF ISKEYDOWN(10) THEN k:=k+" Right"; END;
IF ISKEYDOWN(14) THEN k:=k+" Left"; END;
IF ISKEYDOWN(9) THEN k:=k+" Up"; END;
IF ISKEYDOWN(15) THEN k:=k+" Down"; END;
IF ISKEYDOWN(6) THEN k:=k+" FIRE"; END;
GETKEY;RECT(); TEXTOUT_P(k,10,10);WAIT(0.05);
UNTIL 0;
END;

So you can handle FIRE and Left/Right keys pressed in the same time

Another example :

EXPORT MyFirstGame
BEGIN
LOCAL k,m,t,n;
k:={
{32," seven "},{33," eight "},{34," nine "},
{37," four "} ,{38," five "} ,{39," six "},
{42," one "} ,{43," two "} ,{44," three "},
}
REPEAT
t:="";
FOR n FROM 1 TO 9 DO
m:=k(n);
IF ISKEYDOWN(m(1)) THEN t:=t+m(2); END;
END;
RECT(); TEXTOUT_P(t,10,10);
WAIT(0.05);
UNTIL 0;
END;

Is it possible to access to one item of a sublist to avoid use of temporary variable (m in this exemple) ?

For example here :(i want to get "nine")

k(3,2) -> Number of argument error

k(3)(2) -> k(3)*(2)

The only way i have found is : m:=k(3); ....m(2)...


Edited: 12 Aug 2012, 9:41 a.m.


Possibly Related Threads…
Thread Author Replies Views Last Post
  [HP-Prime CAS] "Warning, ^ (Command) Is ambiguous on non square matrices"?? CompSystems 1 2,141 12-07-2013, 07:15 PM
Last Post: CompSystems
  getkey() Tony Gallo 3 1,628 11-23-2013, 10:51 PM
Last Post: Tony Gallo
  HP Prime - most favorite command bluesun08 2 1,442 11-12-2013, 11:29 AM
Last Post: bluesun08
  hp prime - command syntax bluesun08 6 2,335 11-10-2013, 11:57 AM
Last Post: bluesun08
  HP Prime Programming Tutorial #3: WHILE, INPUT, KILL, REPEAT, GETKEY Eddie W. Shore 5 2,304 11-07-2013, 12:25 AM
Last Post: Han
  HP PRIME: command to read the SERIAL ? Joseph Ec 9 5,703 11-01-2013, 12:43 AM
Last Post: Joe Horn
  Connectivty Kit for HP Prime needs an "Import Program" Command Eddie W. Shore 3 1,873 10-23-2013, 03:37 PM
Last Post: Eddie W. Shore
  HP39gii Richard Berler 1 1,318 10-23-2013, 12:10 AM
Last Post: WALTER B
  HP Prime MOUSE command SanS 3 1,646 10-15-2013, 12:15 PM
Last Post: Han
  [HP-Prime] randPoly command CompSystems 0 999 09-26-2013, 08:49 AM
Last Post: CompSystems

Forum Jump: