An appvar is like an array of bytes; the offset is your "cursor".
The type of data you get when you read it from the appvar depends on the pointer you are storing the data in.
To your question about hexadecimal numbers: The number is the same, you just display it differently.
I'll give you an example:
Code: iB
sum(0) //close all slots
sum(1,"appvar","w+")→S //opens appvar for writing and reading and stores the slot number into S
//lets kreate a few variables to store them into the appvar
5→A
56263→***{L1+5}
"Hello"→Str1
sum(7,A,S) //stores only one byte into the appvar at the position of the offset
sum(4,L1+5,3,1,S) //stores 3 bytes beginning from *{L1+5} into the appvar
sum(4,Str1,5,1,S) //stores 5 bytes (chars) from Str1 into the appvar
// lets read sth. (position of L1 was 1)
sum(10,1,0,S) //puts the offset to 1; for orgin I always use 0
sum(5,L1,3,1,S) //reads 3 bytes into L1
// to get the offset use sum(14
// use sum(15 to put the offset to 0
see https://www.cemetech.net/forum/viewtopic.php?t=14587 for more information about opening appvars
I think the best way to learn this is to try it out: you can download Hexaedit to look into an appvar and see what you have changed
(WARNING: There are some bugs that sometimes your calculator will reset, but if you are using cesium this shouldn't be a problem)
Hexaedit: https://www.cemetech.net/downloads/files/2010/x2232
Cesium: https://www.cemetech.net/downloads/files/1372/x2100
this could also be helpful: https://www.cemetech.net/downloads/files/1908/x1908
Sorry if my English is not very well, but I hope it can help you