
Contributing
This webpage cannot succeed without volunteer effort. Your help in improving existing or adding new apps is very welcome. Simply contact via e-mail any apps you think we should add.
Learning from Open Source
This webpage cannot succeed without volunteer effort. Your help in improving existing or adding new apps is very welcome. Simply contact via e-mail any apps you think we should add.
For HP Prime calculator users who are interested in adding functionality to their device, writing their own apps can be a valuable option.
This project template for starting your next project for the HP Prime calculator.
embed aliases.pp
embed common.pp
embed about.pp
SETUP()
@begin
if Theme(1) == 1 then
// Light Mode
else
// Dark Mode
endif;
@end
LOOP()
@begin
@ppl
RECT();
DRAWMENU("ABOUT","","","","","EXIT");
TEXTOUT_P("Copyright © 2023 Insoft. All rights reserved.", 0, 0, 4);
@pp
while 1 {
var ?:keycode = WAIT(-1); // Halts execution until the user presses a key.
var ?:type = TYPE([keycode]);
if [type] == ObjectType_Real { // Key Pressed
if [keycode] == KeyCode_Esc {
break;
}
if [keycode] == KeyCode_App {
STARTVIEW(-4);
KILL;
}
}
if [type] == ObjectType_List { // Mouse Input
if [keycode](1) == Type_MouseClick {
var x:xAxis = [keycode](2);
var y:yAxis = [keycode](3);
var ?:menuItemSelected = MENUITEM([xAxis], [yAxis]);
if [menuItemSelected] == MenuItem_Exit {
break;
}
if [menuItemSelected] == MenuItem_About {
@ppl
ABOUT();
RECT();
DRAWMENU("ABOUT","","","","","EXIT");
@pp
}
}
}
}
@end
@ppl
EXPORT START()
BEGIN
SETUP();
LOOP();
STARTVIEW(-1);
END;
alias MouseType_New 0
alias MouseType_Complete 1
alias MouseType_Drag 2
alias MouseType_Stretch 3
alias MouseType_Rotate 4
alias MouseType_LongCick 5
alias ObjectType_Real 0
alias ObjectType_Integer 1
alias ObjectType_String 2
alias ObjectType_Complex 3
alias ObjectType_Matrix 4
alias ObjectType_Error 5
alias ObjectType_List 6
alias ObjectType_Function 8
alias ObjectType_Unit 9
alias ObjectType_Cas 14
alias Type_MouseDown 0
alias Type_MouseMove 1
alias Type_MouseUp 2
alias Type_MouseClick 3
alias Type_MouseStretch 5
alias Type_MouseRotate 6
alias Type_MouseLongClick 7
alias KeyCode_App 0
alias KeyCode_Symb 1
alias KeyCode_Up 2
alias KeyCode_Help 3
alias KeyCode_Esc 4
alias KeyCode_Plot 5
alias KeyCode_Left 6
alias KeyCode_Right 7
alias KeyCode_View 8
alias KeyCode_Home 9
alias KeyCode_Num 10
alias KeyCode_Down 11
alias KeyCode_Menu 12
alias KeyCode_Cas 13
alias KeyCode_A 14
alias KeyCode_B 15
alias KeyCode_C 16
alias KeyCode_D 17
alias KeyCode_E 18
alias KeyCode_Del 19
alias KeyCode_F 20
alias KeyCode_G 21
alias KeyCode_H 22
alias KeyCode_I 23
alias KeyCode_J 24
alias KeyCode_K 25
alias KeyCode_L 26
alias KeyCode_M 27
alias KeyCode_N 28
alias KeyCode_O 29
alias KeyCode_Enter 30
alias KeyCode_P 31
alias KeyCode_7 32
alias KeyCode_Q 32
alias KeyCode_8 33
alias KeyCode_R 33
alias KeyCode_9 34
alias KeyCode_S 34
alias KeyCode_Div 35
alias KeyCode_T 35
alias KeyCode_Alpha 36
alias KeyCode_4 37
alias KeyCode_U 37
alias KeyCode_5 38
alias KeyCode_V 38
alias KeyCode_6 39
alias KeyCode_W 39
alias KeyCode_Mult 40
alias KeyCode_X 40
alias KeyCode_Shift 41
alias KeyCode_1 42
alias KeyCode_Y 42
alias KeyCode_2 43
alias KeyCode_Z 43
alias KeyCode_3 44
alias KeyCode_Sub 45
alias KeyCode_On 46
alias KeyCode_Off 46
alias KeyCode_Notes 47
alias KeyCode_Equals 48
alias KeyCode_Minus 49
alias KeyCode_Add 50
alias KeyCode_Ans 50
alias Base_Bin 1
alias Base_Oct 2
alias Base_Hex 3
alias StartView_Symbolic 0
alias StartView_Plot 1
alias StartView_Numeric 2
alias StartView_SymbolicSetup 3
alias StartView_PlotSetup 4
alias StartView_NumericSetup 5
alias StartView_AppInfo 6
alias StartView_ViewsMenu 7
alias StartView_SplitScrPlotDetail 8
alias StartView_SplitScrPlotTable 9
alias StartView_AutoScale 10
alias StartView_Decimal 11
alias StartView_Integer 12
alias StartView_Trig 13
alias StartView_HomeScr -1
alias StartView_HomeModes -2
alias StartView_MemoryManager -3
alias StartView_AppLibrary -4
alias StartView_MatrixCatalog -5
alias StartView_ListCatalog -6
alias StartView_ProgramCatalog -7
alias StartView_NotesCatalog -8
alias Color_Black 0
alias Color_DarkGray 1
alias Color_LightGray 2
alias Color_White 3
alias MenuItem_About 1
alias MenuItem_Exit 6
alias MenuItem_Ok 6
DEBOUNCE_MOUSE()
@begin
var ?:mouse;
repeat
MOUSE() => [mouse];
until SIZE([mouse][1]) == 0;
@end
MENUITEM(x:xAxis,y:yAxis)
@begin
if [yAxis] < 220 {
return -1;
}
DEBOUNCE_MOUSE();
if 0 <= [xAxis] <= 51 {
return 1;
}
if 53 <= [xAxis] <= 104 {
return 2;
}
if 106 <= [xAxis] <= 157 {
return 3;
}
if 159 <= [xAxis] <= 210 {
return 4;
}
if 212 <= [xAxis] <= 263 {
return 5;
}
if 265 <= [xAxis] <= 319 {
return 6;
}
return -1;
@end
ABOUT()
@begin
@ppl
RECT();
TEXTOUT_P("HP Prime Application.", 0, 0, 4);
DRAWMENU("","","","","","OK");
@pp
while 1 {
var ?:keycode = WAIT(-1); // Halts execution until the user presses a key.
var ?:type = TYPE([keycode]);
if [type] == ObjectType_Real && [keycode] == KeyCode_Esc {
break;
}
if [type] == ObjectType_List && [keycode](1) == Type_MouseClick {
var x:xAxis = [keycode](2);
var y:yAxis = [keycode](3);
if MENUITEM([xAxis], [yAxis]) == MenuItem_Ok {
break;
}
}
}
@end