Re: Linking a single Glue API in the midlle of a C file

2008-07-10 Thread Aaron Ardiri
On Wed, Jul 9, 2008 at 10:18 PM, Luc Le Blanc wrote:
 Wow! That's too extreme for me. I link the Glue library anyway for various
 other APIs, so I'll let the linker do its smart linking and only pick what's 
 needed.
 And best reason to go no further: it works!

it was a suggestion if you got stuck and had no other choice.

you should be thankful that the glue libraries are built from each function in
their own .c file or you would not be able to selectively link the function
used (specifically on a compiler like gcc - codewarrior might be smarter)

On Wed, Jul 9, 2008 at 3:33 AM, Lionscribe wrote:
 Welcome back Aaron!
 You were very much missed.
 I see your humor has stayed with you. :-)

i'm still lurking - still doing some work with Palm OS :)

I wasn't seeing it as humor. You dont want to know some of the things
we've had to do over the years to make certain things possible :)
hacking assembly into your C code to get around bugs is very common.

I'm sure Dmitiry can also comment on this :)

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Linking a single Glue API in the midlle of a C file

2008-07-09 Thread Aaron Ardiri
On Tue, Jul 8, 2008 at 2:06 PM, Luc Le Blanc [EMAIL PROTECTED] wrote:
 My first app segment contains a single C file that embeds all procs
 that must be in the first segment in order to be able to properly handle
 Global Find and beamed data when the app is not running (i.e.
 global-less mode). Now, if I try to link the Glue Library to this in
 order to have access to LstGlueSetIncrementalSearch, I get out-of-reach
 references to this API. Can I link that single API in the middle of my C
 file? Otherwise, I tried splitting my C file in two and link the Glue Library
 between the two, but that causes lots of 16-bit jump problems.

 Ideas welcome,

why not create a very simple program that calls the LstGlueSetIncrementalSearch
function; then you can diassemble it using a combination of par, and pilotdis
(par e code 1; pilotdis code0001.bin)

then, you'll get a file called code0001.bin.s - which, has the assembly of the
small demo program you wrote (that only calls the glue). the glue function
will be appended at the end; and you should be able to cut and paste the
assembler code into a C function declaration, embedded within asm tags.

:) thats what i would do.

its also a reason why the glue library code should be open source; so one
could just use the function that they need (ie: c+p the code where they need)

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Any free XML parser for Palm OS?

2008-02-20 Thread Aaron Ardiri
your not looking hard enough...

  http://www.llamagraphics.com/LlamaXML/index.php

On Wed, Feb 20, 2008 at 7:20 PM, Hudo Rodrigues de Almeida
[EMAIL PROTECTED] wrote:
 Hi, Aaron and all the others…

 The links mentioned by Aaron at Google did not serve to me, because my code
 is C++. If it were Java, things would be easier.

this was announced on the list quite some time ago, its released under a
dual license, GPL for open source projects, and a paid license for
commercial projects.. just dont go stealing the work, because a little
bit of work has gone into that library.

free as in beer.

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Official PAR location?

2008-02-02 Thread Aaron Ardiri
http://www.djw.org/product/palm/par/

david williams home page :)

On Feb 2, 2008 3:52 PM, Luc Le Blanc [EMAIL PROTECTED] wrote:
 I want to recommend PAR to my users to strip the PDB header off a HotSynced 
 file stream.
 But where is the official source? I don't see it referenced in PalmSource's 
 Dveloper pages anymore.

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Palm OS Plumbing: Key and Pen flushes don't flush

2008-01-31 Thread Aaron Ardiri
On Jan 31, 2008 12:50 AM, Jonathan Carse [EMAIL PROTECTED] wrote:
 Using the progress manager is the right way to go - definitely.

 But if anyone wants a quick solution to a situation like this, just use
 Aaron's FIX#2: Put these lines in whenever you want to throw away your pen
 events (best placed, as mentioned by Aaron, in the beginning of a for loop).

 do
 {
 EvtGetEvent(evt, 0);
 } while(evt.eType != nilEvent);

 That will throw away all the pen and key events that occur during your
 operation.

you will find that:

 EvtFlushKeyQueue();
 EvtFlushPenQueue();

also work if you put them there. you were putting them outside your while
loop - so, they were just being enqueued when the user tapped away and
the event queue overflowed.

good that you found a solution that works; albeit, its not a good design
as i mentioned earlier; the progress manager does what i suggested
but in a more elegant manner (vs the nilEvent processing)

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Palm OS Plumbing: Key and Pen flushes don't flush

2008-01-30 Thread Aaron Ardiri
On Jan 29, 2008 1:14 AM, Jonathan Carse [EMAIL PROTECTED] wrote:
 I thought I won't have to deal with plumbing issues if I chose to be a
 software engineer... :)

:) actually - your issue is not a plumbing issue, its more a design flaw.

 I am performing a long operation in one of my functions, which takes about
 30 seconds.

see; thats your problem. palm is not a multi-threaded operating system
so what happens is your routine takes over the device and when the
user taps on keys or pens, the interrupts for those input devices are
called which is eventually overflowing your buffer.

FIX #1:

the simple fix is to keep what you have; and, ensure the event queue
does not get full. instead of calling EvtFlushXXXQueue() after your
process; do it within in; after every iteration.

you need to prevent the event queue from getting full.

the problem with this approach is that there may be enqueued
events which you are going to lose/zap by calling flush()

FIX #2:

turn your for-loop into a series of nilEvent processing. ie: make the
processing event driven. when the process is running; simply ignore
all key and pen events - your busy :)

you can also do some form of animation/user interfaction every time
a nilEvent comes; like, show a percentage bar etc.. just locking up the
device is not acceptable; and, i'm not surprised the users clicking
around like crazy - your app locks up :) (in their eyes)

 // Iterate through all the databases (while there were no errors)
  for(u_wCurrentDB = 0; u_wCurrentDB  TOTAL_DATABASES  returnValue ==
 PERFORM_BACKUP_SUCCESS; u_wCurrentDB++)
  {
 // Long operation (backing up to memory card)

  // Flush all user input out of the queues
  EvtFlushKeyQueue();
  EvtFlushPenQueue();

  }

instead.. if your looking for the lazy fix. i mean lazy when i say it;
as you should really restructure your code. lockups are expected
on windows mobile :) not on palm.

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: API to extract VFS filename from full path

2008-01-30 Thread Aaron Ardiri
On Jan 29, 2008 10:46 PM, Luc Le Blanc [EMAIL PROTECTED] wrote:
  On Jan 29, 2008 6:00 PM, Luc Le Blanc [EMAIL PROTECTED] wrote:
   Is there an API to extract the VFS filename from a fully
   qualified name that includes the path?

  filename = StrRChr(path, '/');
  if (filename != NULL) filename++;

  basic string routines? not sure if thats what your looking for;
  but thats how i would do something like that.

 Yep. From scratch. I just thought VFS had such things.
 BTW, StrRchr doesn't exist. I have to write it too ;)

strrchr? :) stdlib? anyhow. i think you've solved the problem now anyhow.
now that i think about it; i knew i wrote my own string routines for a reason;
there are a bunch of routines missing from the standard SDK that should
be in a standard C library.

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: API to extract VFS filename from full path

2008-01-30 Thread Aaron Ardiri
FYI: here are my routines; (try to re-use what i can) :P



// look for a specific character in the memory buffer, starting at end
char *
_MemRChr(void *p, char chr, uint32 count)
{
  char *pos;
  char *x;
  int   i;

  // default return value
  pos = NULL;

  // pre-condition (cannot have null pointer)
  if ((p != NULL)  (count != 0))
  {
// use temporary variables for processing
x = (char *)p;
x += count;

// lets scan the memory buffer
i = count;
do
{
  if (*x == chr) { pos = x; break; }
  x--;
} while (--i);
  }

  return pos;
}

and...

char *
_StrRChr(char *s, char chr)
{
  return (char *)_StrNRChr((void *)s, chr, _StrLen(s));
}

char *
_StrNRChr(char *s, char chr, uint32 count)
{
  return (char *)_MemRChr((void *)s, chr, (uint32)(MIN(count, _StrLen(s;
}

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: API to extract VFS filename from full path

2008-01-29 Thread Aaron Ardiri
On Jan 29, 2008 6:00 PM, Luc Le Blanc [EMAIL PROTECTED] wrote:
 Is there an API to extract the VFS filename from a fully qualified name that 
 includes the path?

filename = StrRChr(path, '/');
if (filename != NULL) filename++;

basic string routines? not sure if thats what your looking for; but thats how i
would do something like that.

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Obfuscation

2008-01-29 Thread Aaron Ardiri
On Jan 28, 2008 11:12 PM, Jonathan Carse [EMAIL PROTECTED] wrote:
 Does anyone have any reading material on the subject of security by
 obfuscation with Palm binaries?

yes.

an old post on the topic (discussion a concept)
http://www.mail-archive.com/palm-dev-forum@news.palmos.com/msg05201.html

a link to the paper discussed in that mail post
http://www.ardiri.com/publications/palmsource2000.pdf

keep in mind these documents are almost 7 years old - but, you asked :)

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: autorun for palm OS

2008-01-08 Thread Aaron Ardiri
On Jan 8, 2008 3:45 PM, Brown, Steve [EMAIL PROTECTED] wrote:
 I am looking for any information on creating an autorun solution for palm
 OS.  What I need is to basically insert an SD card and have the handheld
 automatically copy files to the a specified location on the handheld (which
 may include a different SD card).  Any help would be much appreciated.

start.prc

http://www.developer.com/ws/palm/article.php/10946_3514986_2

please. please, please. implement it correctly; not like TomTom.
i have had so many customer complains when TomTom create the
biggest mess with autorun capabilities of memory cards.

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Optimizing math operations

2008-01-05 Thread Aaron Ardiri
 If I have

 float y;
 UInt16 x;

 y = x / 100;

 will the division take place in FP because of y?

no.

the compiler will recognise 'x' as being an integer and 100 as
an integer and do the division using integer division. your
value for y will always be 0.

if you want to force it to be floats, you have many options

y = (float)x / 100;
y = x / (float)100;
y = x / 100.0;

etc.. this is a standard C language issue; nothing related to palm

http://drpaulcarter.com/cs/common-c-errors.php#2.5

a nice page with a list of very common C programming errors

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Zire 22 screen turns like plaid - memory bug?

2007-12-17 Thread Aaron Ardiri
 I could see this either being a write beyond the the of an array into
 video memory (your bug) or a problem where the refresh logic in the OS
 doesn't get to execute often enough (device problem).  Device problems
 won't get fixed.

i think what ben means is that there are no resources at palm to
address issues like this - which are most likely within the ROM
on the device in question..

 Luc Le Blanc, could you send me a description of how to
 duplicate this? If it's a device problem it can be fixed :)

dmitry :)

everything can be fixed if your prepared to hack into the rom :)

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Alternate platforms

2007-11-30 Thread Aaron Ardiri
  I've noticed less activity around here lately. So I'm wondering, are
  some of you moving on to another platform?

there is still a demand for palmos applications - i am currently working
on a specification for a palmos only application right now.

most developers have, over the past few years done the necessary
changes to support multiple platforms; with as much common/shared
code as possible.

i, myself have been toying with 11 platforms; including the iphone
(using the hacked SDK) - and depending on what the client wants;
i use whatever i need.

unfortunately, to cover 11 platforms; you need a mac osx intel machine -
with vmware to have windows/linux images. then you can do everything
from a single machine :)

vmware rules - if you dont know about it, check it out www.vmware.com

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Creating hires forms

2007-11-30 Thread Aaron Ardiri
On Nov 30, 2007 3:33 PM, James Screech [EMAIL PROTECTED] wrote:
 I've had a break of a few years from developing PalmOS applications and
 now want to update some of my old apps. I've got the new IDE installed and
 working, however I have a few questions about developing applications for
 newer hires (over 160 x 160) devices.

 I can see in the resource editor that it's possible to select the screen size 
 for a
 form, however when going to 320 x 320 this just seems to double up the pixels
 is the correct?

simple answer. you dont.

you can hack around it by messing with the screen density; but you can get
some very unexpected results :) officially, higher resolution meant better
quality, not more room to play.

 Also if I select 320x480 I can't place controls on the bottom part of the 
 form,
 how do you get them there?

dynamic user intefaces. CtlSet to set locations etc.. based on a resize
event; but, if you have started to look at DIA, you would know most of this
already :) the examples for 320x480 support cover everything you need
to know.

 What do other developers do about different screen resolutions? Do you
 just develope for 160x160 or do you dynamically select and display
 different forms depending on the resolution of the device that is running
 your applications?

thats one way to do it.

or, you could have a bunch of UI objects and dynamically set their
position, size and visibility based on the screen resolution. kinda like
how you program HTML with CSS for layout.

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Forum error

2007-11-12 Thread Aaron Ardiri
seems that numbers are ignored.

On Nov 12, 2007 11:07 AM, Jonathan Carse [EMAIL PROTECTED] wrote:
 For example, I encountered an error on the Palm with the code Sys 0505 (it's
 not relevant what the error was exactly).
 This problem was posted on the forum, but for some reason the search for
 0505 brings up nothing.

http://news.access-company.com/read/search/results?forum=palm-dev-forumwords=Sys+0505sb=1

i searched for Sys 0505 and i got plenty of hits. definately an
issue. amy riha
was responsible for the developer forums; not sure if she still works
there - has
been a while since i have seen her at any event/show.

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: text_64k linker script and 16-bit relative addressing problem

2007-11-02 Thread Aaron Ardiri
On Nov 1, 2007 9:36 PM, Dmitry Grinberg [EMAIL PROTECTED] wrote:
 to find the order, try random things.
 There is a better solution, however: CodeWarrior.

or multi-section prc-tools :) just define what functions go into what section.

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Creating a data file without a SD slot

2007-11-02 Thread Aaron Ardiri
On 11/2/07, Luc Le Blanc [EMAIL PROTECTED] wrote:
 Is there an alternative format I can use to produce a non-database data file 
 in the
 absence of a SD slot? Installable file system library?

check out the file streaming API.

it stores a basic file stream in a .PDB file, in chunks of 4096 bytes. you
can convert to and from using utilizies (par for example) on the desktop.
you simply install via hotsync.

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: What 'counts' as a global?

2007-10-25 Thread Aaron Ardiri
On 10/25/07, Rob [EMAIL PROTECTED] wrote:
 I was surprised to find that

 ChartimeString[timeStringLength]=;

 was being treated as a global...

that is because you have effectively allocated a buffer of length
timeStringLength with NULLs. if you are to use it, it is natural
that you are going to change the string, so, it has to be in a
read-write memory location, hence the use of globals.

pc-relative information is for constant data.

ie:

const Char timeString[10] = my string;

can be assumed read-ony.

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: What 'counts' as a global? - how to work around it...

2007-10-25 Thread Aaron Ardiri
On 10/25/07, Rob [EMAIL PROTECTED] wrote:
 ok - a followup.

 having found that:

 {
 const UInt32 bitRate[15] = { 0, 32000, 4, 48000,  56000,  64000,
 8,  96000, 112000, 128000, 16, 192000, 224000, 256000, 32 };
 return bitRate[bits];
 }

 Is triggering an A5 warning, I need to do the same job without globals
 (I have turned on PC-Relative strings and PC-Relative constants in the
 project options, but they don't seem to fix this)

 can anyone suggest an efficient way to do this that won't end up using the
 A5 register?

a) global const

put it outside of the function, not as a variable inside.

b) use a resource

resources are simply memory pointers when locked. not that slow at all.
what do you expect  pc-relative data is? it is data inside a 'code' resource.

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Setting/testing a float/double with NAN

2007-09-29 Thread Aaron Ardiri
On 9/29/07, Luc Le Blanc [EMAIL PROTECTED] wrote:
 I do float and double computations and I sometimes need to
 set them as NAN (Not A Number) to signal something could
 not be computed. Conversely, I must be able to test for NAN equality.

 A float NAN is 0x7FC0 while a double NAN is 0x7FF8.
 But how can I define these constants so that I can do

 float = fNAN;
 and
 if ( f == fNAN )

 I tried:

 const Int64 dNAN = 0x7FF8;
 const Int32 fNAN = 0x7FC0;

 but when I do

 float f = fNAN, it ends up with 0x4EFF8000 instead. I tried various casts,
 as well as #defines, to no avail. What is the trick?

*((Int32 *)f) = fNAN;
*((Int64 *)d) = dNAN;

you need to tell the compiler to assign the int32/int64 direct as
bits, not try and convert them into float/double. its ugly, but, thats
how it works.

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Setting/testing a float/double with NAN

2007-09-29 Thread Aaron Ardiri
  float f = fNAN, it ends up with 0x4EFF8000 instead. I tried various casts,
  as well as #defines, to no avail. What is the trick?

 *((Int32 *)f) = fNAN;
 *((Int64 *)d) = dNAN;

..

  if ( f == fNAN )

needs to be:

if (*((Int32 *)f) == fNAN)

as well. you could also use a union, as philip sheard mentioned; but
it wont be as elegant. what i would do, is write macros.

#define SET_NAN(f) *((Int32 *)(f)) = fNAN
#define IS_NAN(f) (*((Int32 *)(f)) == fNAN)

this assumes that f is a variable, not a constant - as  will get ugly :P

then you simply call as:

SET_NAN(f);
if (IS_NAN(f))
{
}

you can play with it to get it looking more elegant. idea remains.

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Setting/testing a float/double with NAN

2007-09-29 Thread Aaron Ardiri
On 9/29/07, Harald Schlangmann [EMAIL PROTECTED] wrote:
 Do you have complete code for PalmOS? There is no Int64...
 Kind regards, Harald

typedef long long Int64;

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Clie, OS 5, High-Density Display Feature Set

2007-09-16 Thread Aaron Ardiri
On 9/16/07, Terry [EMAIL PROTECTED] wrote:
 Do Sony Clie models that come with Palm OS 5.x include the High-Density
 Display Feature Set?

yes. it was defined in Palm OS 5.x - sony still had their own things for
certain things like the DIA support - as that was officially introduced in
palmos 5.3

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Problem regarding Unicode....

2007-08-03 Thread Aaron Ardiri
On 8/3/07, Shruti Wadhwa [EMAIL PROTECTED] wrote:
 Hi All,
 I need to display unicode on various forms. I am able to display the unicode
 on forms but have problem in scrolling text area.

unicode is not officially supported by palmos.

only latin-1 is officially supported, software solutions exist that remap
the basic character set into other sets as well. if you are looking for
a true unicode solution, specifically dealing with something like utf8
then you need to roll your own solution.

-- 
// Aaron Ardiri

-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Palm and Strings

2007-07-02 Thread Aaron Ardiri

On 7/2/07, James [EMAIL PROTECTED] wrote:

Hello all,
I am having a brain cramp or something. I try the following on the palmm and
I get an error of reading from an invalid memory.

I have the following:

char *name[] = { tom, dick, harry };
char **names = name;

Then I have a function that does a cast onto the pointer ( UInt8 *)
Now I tried this on GCC (PC compiler) and it works fine, it gives me back the
right string I ask for?

Am I missing something here??


yes.

you need to know and understand how strings are stored in palmos code.
typically, they are either stored in your .data segment or, depending on
computer settings, they can be stored within your .text segment. its a
funky setup, and its best solved by redesigning for the palmos environment.

strings in text segments are read-only, as dynamic memory is limited.

if you want to store strings, consider using a string list as a resource, and
then locking that down and using it. not everything you do on the pc will
work the same way on the handheld, in some cases, major design changes
are needed.

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Capturing screen shots

2007-07-02 Thread Aaron Ardiri

On 7/2/07, Tam Hanna [EMAIL PROTECTED] wrote:

Hi,
there is a way:

a) Enregister for alarm
b) When alarm comes, save display window bits
c) Register next alarm

goto a

or, try some freeware

http://www.codejedi.com/shadowplan/zgrab.html

something that only takes a few minutes to write up yourself.

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Is there a max heap allocation size?

2007-06-21 Thread Aaron Ardiri

On 6/21/07, Jeff Loucks [EMAIL PROTECTED] wrote:

It's not an unpublished API.
I said earlier, it's MemGluePtrNew().
Google turned up at least a dozen hits on MemPtrNew() vs MemGluePtrNew().


xxxGluexxx API's are not officiall API's - they are published as a library which
you must link against, someone else effectively has written a wrapper for
what you are needing

http://www.access-company.com/developers/documents/docs/palmos/PalmOSReference/PalmOSGlueLib.html

MemGluePtrNew is effectively MemChunkNew with the AllowLarge flag.

i never use Glue, because either i am using a compiler that does not
support it, or if there is a version out there.. its too old for my needs. i
have my own glue code :)

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Is there a max heap allocation size?

2007-06-21 Thread Aaron Ardiri

On 6/21/07, Jeff Loucks [EMAIL PROTECTED] wrote:

Beg to differ.

Glue APIs have been a part of the Palm OS offering since at least OS
3.5. They are neither unsupported nor undocumented. You'll find them
documented right along with the other APIs. Yes, they require you to
include a static library in your link, but there's nothing difficult
or unsupported about that.

They aren't your standard trap based API, but they are still APIs.
They are routines that you call that wrap earlier APIs in a way that
makes them more useful, updated with new or extended features and
usually backward compatible.


you are a newbie. :)

some of us still remember programming the original palm os 1.0
with monochrome screens and a 32k dynamic heap.

Glue was introduced because all of us had our own glue hacks.
it was also common that Glue API's would be released too late,
so we all still had to have our own versions.

palmsource also only provided Glue libraries for 68K.

my current palm applications are written in ARM natively, there
is no MemGluePtrNew available for me in ARM - so in order to
reproduce the API, its important to know how it is defined and
what the basic concepts are behind it.

#define memNewChunkFlagAllowLarge 0x1000

it was an internal use flag, you wont find it in any headers.

we were using it is 2001+
http://news.palmos.com/read/messages?id=93048#93048

MemGluePtrNew was introduced very late
http://www.mail-archive.com/palm-dev-forum@news.palmos.com/msg75924.html

i have PalmOSGlue.h from Palm OS SDK 5.0 (111823) and
MemGluePtrNew is not defined there.  so now you know why
we had to write our own.. i think it was added 5.x+

granted, all new developers.. they are being handed all our
problems in a nice little package to make life easier for them :)

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Is there a max heap allocation size?

2007-06-21 Thread Aaron Ardiri

On 6/21/07, Jeff Loucks [EMAIL PROTECTED] wrote:

You are correct that glue has matured through the years, and
MemGluePtrNew is a more recent addition (2002). But, PalmOSGlue has
been around since before 2000.


MemGluePtrNew was added with SDK 5.0 R2. may 6, 2003 :)

PalmOSGlue has been around much longer than 2000, in fact if
i remember right Ken Kruger wrote some of the first headers, back
in 1998 :)

is we are doing history lessons :)

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Is there a max heap allocation size?

2007-06-20 Thread Aaron Ardiri

On 6/21/07, Jagat Nibas Mahapatra [EMAIL PROTECTED] wrote:

What is the unpublished API ?


try searching for it :) it has been discussed a lot in the archives.

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: type of data byte

2007-06-12 Thread Aaron Ardiri

add this to your c file at the top or in a header file you include.

typedef unsigned char byte;

On 6/12/07, mrc-dm [EMAIL PROTECTED] wrote:

How can I use type of data byte to create an application on language C using 
PalmOS Developer Suite. It does not recognize and it gives it error.


or, you can use Ben's suggestions and use the types defined (standand C)

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Palm Os Free Developement

2007-06-08 Thread Aaron Ardiri

On 6/8/07, Jagat Nibas Mahapatra [EMAIL PROTECTED] wrote:

Isn't there any prc-tools for windows ?


www.cygwin.org

if you cannot install this, you need to pay. simple fact. no freebies.

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Download Palm App and Run without Normal Launch by User

2007-06-04 Thread Aaron Ardiri

The user will always be prompted if they want to accept the application
(there is nothing you can do about this). However once thay have
accepted it your application should recieve the


actually, not true.

i could write a program to create a .prc manually and then when done
simply do a SysUIAppSwitch() to it. of course, the manual creation would
be by receiving information over TCP/IP.

the unfortunate thing is that it is hard to have an application delete or
update itself without some complex programming.

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Palm Foleo Developer Tools

2007-05-31 Thread Aaron Ardiri

On 5/31/07, Michal Seliga [EMAIL PROTECTED] wrote:

notebook which can survive longer trips by train is not bad idea...especially if
i could have there any software i need (midnight commander, prc tools, mplayer
:-) but its not what i expected from new palm device.


as long as you have a shell - you can recompile prc-tools on the device.
now, porting POSE to the new linux+GUI libraries will mean you can have
a full garnet development platform on this new device.

the limitation will be the size of the internal flash memory - can it fit them?

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Palm Foleo Developer Tools

2007-05-31 Thread Aaron Ardiri

On 5/31/07, Michal Seliga [EMAIL PROTECTED] wrote:

Aaron Ardiri wrote:
 the limitation will be the size of the internal flash memory - can it
 fit them?

if not then this is what sdcard slot is for... or usb


i am not sure if the expansion capabilities have been truely discussed yet.
my guess would be there would be an internal flash card for the main os
and built in applications.

one would hope for a SD card for expansion, if there is USB, it is not known
if it will be for data (USB drives + external HDD) or just for input devices
mouse/keyboard). should be simple to just mount under /mount tho, it is
linux :) i dont see any major problems.

we need to see more specs and full functionalities, time will tell.

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Cygwin/PRC-Tools Slow on Vista

2007-05-30 Thread Aaron Ardiri

On 5/30/07, Mike McCollister [EMAIL PROTECTED] wrote:

I just did a clean install of Windows vista and installed cygwin with
PRC-Tools. I have noticed that compiling a Palm OS program takes a very long
time compared to Windows XP. If I compile a native Windows program then it
is not slow. Has anyone else had this problem and been able to fix it?


um.. prc-tools and cygwin binaries are native?

the programs are written against the cygwin.h API set, and there is a
cygwin.dll which makes the whole program a valid win32 console application.
there is no emulation happening, other than the abstraction between unix
calls and the underlying win32 calls (which, all native programs do anyhow)

now, vista may not be compatible with the cygwin threading implementation,
which i suggest would cause slow downs. you are better running vmware
with a vmware image under your vista installation running windows xp.

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Simulator/Emulator Distribution

2007-05-19 Thread Aaron Ardiri

On 5/18/07, JamesSturdevant [EMAIL PROTECTED] wrote:

Someone with more knowledge will probably answer but this is my
understanding:

The emulator is free software but the ROM images are not. You would need
a license from Access (PalmSource) or Palm to distribute them.


i can confirm this. we used to ship POSE on a CD rom (saved session)
with the rom built in. we needed an agreement with palm to do this. we
don't do it anymore tho, because now we have a native binary for windows.

you might find it better just to wite a native version.

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Converting a filestream into pure binary file

2007-05-17 Thread Aaron Ardiri

On 5/17/07, Philip Sheard [EMAIL PROTECTED] wrote:

You mean a PDB file containing a filestream, right?

I do not know if there is a ready made solution, but it is fairly easy to roll 
your own. In a PDB file, the data will be contiguous. All you have to do is 
strip off the headers. Just get the offset of the first record, from the first 
record header, and away you go.

There may be some additional crap in the data, but that should not be too 
difficult to handle.


this has been discussed a million times. check archives.

http://www.mail-archive.com/palm-dev-forum@news.palmos.com/msg20575.html

as one example.. the par utility will in fact do the job as well.

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: 64k Size limit for resources

2007-05-13 Thread Aaron Ardiri

On 5/13/07, Alexander R. Pruss [EMAIL PROTECTED] wrote:

One small issue is that on some devices the VFS*Import/Export functions
don't work with 64k resources, I think.  This means that the re-assembled
databases may cause trouble with some file utilities or backup utilities.
This may not bother you.


what i do is this.

keep all my resources  64k. at runtime, build feature memory chunks and
re-construct my large resources. feature memory is on the storage heap and
is not something that gets backup during hotsync/backup.. just do a little
processing when you start your application and viola. all is done.

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: prc-tools and multisegment application and SysAppLaunch command

2007-05-11 Thread Aaron Ardiri

On 5/11/07, Michal Seliga [EMAIL PROTECTED] wrote:

main.prg: entry point 0xb79c too distant


move your main function towards the start of the code segment.

 0xb79c = 47004.

this value should be, at maximum 32767, the limit of the relative jump on 68k

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: 64k Size limit for resources

2007-05-11 Thread Aaron Ardiri

On 5/11/07, C. Gaberial Edwards [EMAIL PROTECTED] wrote:

Hi, I'm trying to figure out some way to get around the 64k file size limit for 
resources. Images and the like aren't bad, I can work around that, but when I'm 
trying to get WAV files in it's just impossible. The closest I can get is 68kb. 
I'm assuming that there's something I'm missing, so can some one tell me how to 
get resources greater than 64kb onto a palm? If not, can someone atleast point 
me into the right direction? :D


the hotsync manager is limited to 64k per resource.

you can have resources 64k on the device - as long as hotsync does
not try and back them up.
why not split them over two resources and re-create them on the device?

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Algorithm for string search with wilcards

2007-04-30 Thread Aaron Ardiri

On 4/30/07, Luc Le Blanc [EMAIL PROTECTED] wrote:

I know this is not PalmOS-specific, but where can I find an efficient algorithm 
for searching a string with * and ? wildcards.


tip: open-source, look up any code base with regular expression handling.

if you find anything quick and simple. be sure to post info :) i would
recommend
looking at unix command line sed sources as a start.

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: ALP SDK available.

2007-04-25 Thread Aaron Ardiri

On 4/24/07, David Beers [EMAIL PROTECTED] wrote:

Ah... it *is* there: http://dl.access-company.com/sdk/sdk.tgz

The period at the end of Ton's sentence was messing up the URL.
It's dated 21-Mar-2007


i would also like to add that the sdk isn't complete yet. there are ongoing
updates to the sdk which you download *seperately* from the url above.
it probably wasn't supposed to be made available to the public at this
point in time - bad web hosting.

its probably too late now, but there should be a .htaccess file installed.

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: What's up with AppForge the company?

2007-04-12 Thread Aaron Ardiri

On 4/12/07, John Wygonski [EMAIL PROTECTED] wrote:

Tried to get to the appforge web site and I get redirected to Oracle?
Is it true that they are out of business?


http://www.appforge.com/company/index.html

is working for me, sure you got redirected to oracle? their front page
gave me a 500 server error - so, i had to click around.

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Updating a form help resource ID

2007-03-27 Thread Aaron Ardiri

else if(romVersionsysMakeROMVersion(5,0,0,sysROMStageRelease,0)){ //pre-os6


you do mean:

 sysMakeROMVersion(6,

there right :)

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Detecting Popup List Cancel

2007-03-26 Thread Aaron Ardiri

On 3/26/07, P. Douglas Reeder [EMAIL PROTECTED] wrote:

 Why not just check the selected item - I believe if a user aborts
 it returns LstGetSelection(...)==noListSelection

I need to do something right when the user cancels the list selection,
so I need an event that happens at that point in time.


you should receive a penEvent or a keyEvent.

detect when the list is opened; then, store a reference to it
and assume it is open. when you receive a penEvent or keyEvent
and the list is not being selected (check pen bounds, etc); you
can detect that it is still open.

there is no generic event for cancelling a pop-up list. you need
to simulate it yourself.

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: region datares is full (Debug/FlexiQ section .bss)

2007-03-21 Thread Aaron Ardiri

On 3/21/07, V. Sriram [EMAIL PROTECTED] wrote:

hi all,
my code has grown very bulky and i'm having trouble adding global variables. i 
have a structure of size about 160 bytes. i have declared an array of this 
structure with 100 elements. the compiler throws the following error:
region datares is full (Debug/FlexiQ section .bss)

please help me out on this one.


thats 160*100 which is 16K

you can only have 32K in your data segment. what i suggest you do;
is instead of making them globals; allocate the memory in runtime
using MemPtrNew() that way; only 4 bytes of globals will be used.

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Consecutive Call to EvtAddEventToQueue

2007-03-18 Thread Aaron Ardiri

On 3/16/07, Khertan [EMAIL PROTECTED] wrote:

In one of my programm i've two consecutive call to EvtAddEventToQueue.
The first event is pulled in the queue ... But there are no trace of the
second event.
It's two different user event. The code is pascal (but it s very similar to c)

MemSet(Evt,sizeof(evt),0);
evt.etype:=UserEvent1;
event.user1.id:=theid;
EvtAddEventToQueue(@evt);

MemSet(Evt,sizeof(evt),0);
evt.etype:=UserEvent2;
event.user2.id:=theid;
EvtAddEventToQueue(@evt);


have you considered:


MemSet(@Evt,sizeof(evt),0);


like it should be? that is, MemSet does expect a pointer to the event,
much like EvtAddEventToQueue does?


I don't understand why this second event isn't in the queue. Any idea ?


if you are concerned about EvtAddEventToQueue() only storing a
pointer reference to your event - you would only see the second
event; not the first. and, if your over paranoid - why not use two
seperate event structures? :) (Evt1, Evt2) and see what happens?

is the above code real? or, have you substituted it with code which
we may understand better? if so, post the real code. your results
dont match the code regardless how you see it.

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Color icon for the program

2007-03-15 Thread Aaron Ardiri

On 3/15/07, Luca Bertoncello [EMAIL PROTECTED] wrote:


// The program's icon
ICON netTools.bmp


ICONCOLOR, or use the more up-to-date ICONFAMILY definition

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Black Square Box

2007-03-14 Thread Aaron Ardiri

On 3/14/07, Anoop [EMAIL PROTECTED] wrote:

Hi John,
Could you please explain how can i resolve this issue. Am new
to this platform and i dont think this is something related to the program
flow. Please guide us.
Thanks in advance,
Anoop


on your form, you can define where the GSI is to be located.
if you dont want to see it, or dont need it, simply move it out
side of the bounds of the form.

http://examples.oreilly.com/
 palmprog/CDROM/Linux/Pilrc/pilrc2.0/doc/pilrc.htm#Form

GRAFFITISTATEINDICATOR  AT (Left.p Top.p)

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: CW 9.3 and variable is not initialized before being used

2007-03-10 Thread Aaron Ardiri

On 3/10/07, Luc Le Blanc [EMAIL PROTECTED] wrote:

When the CW 9.3 compiler reports error Warning : variable 'x' is not
initialized before being used, the IDE points to the declaration line, not
the line where the unitialized variable is first used. Can this be changed?


almost all compilers do this.

the point is to identify the variable that has not been initialized.
going to its declaration is the right thing.


Or is there a trick to find out where, other than just reading th whole code?


search?

you may also try to keep your functions smaller in size so that you dont
have so much code to read through as well in this case, but it is a matter
of style i guess. in some cases, it may be like this:

int x;

if (condition) x = 0;

...

y = x;

as you can see, x isn't known if the condition is false. how would it help
to know where x is first used in this case? one should always assume
variables have a default value of some form, and set it.

its a matter of programming style.

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Neat way to handle a RGBColorType as a UInt32 ?

2007-03-01 Thread Aaron Ardiri

On 3/1/07, Luc Le Blanc [EMAIL PROTECTED] wrote:

why not use a macro to make
your code easier to understand at the same time :)

#define RGBColorTypeSet(a, val) (*((UInt32 *)(a)) = (val)
#define RGBColorTypeCompare(a, b) ( (*((UInt32 *)(a)) == *((UInt32 *)(b))) )


i would have done:

#define RGBColorTypeGet(a) *((UInt32 *)(a))


Alas, if you want to copy a RGB color into another one, like:

RGBColorTypeSet(a,b); doen't work


then do:

RGBColorTypeSet(a, RGBColorTypeGet(b));

you could also do:

RGBColorTypeSetValue(a, val)
RGBColorTypeSet(a, b)

they are definately NOT the same macro's :) you dont want to be
reading the address of 0xL :P

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: Non-word-aligned handle when opening a form

2007-02-26 Thread Aaron Ardiri

On 2/26/07, Luc Le Blanc [EMAIL PROTECTED] wrote:

I have 3 different versions of my app that only differ by a
language-specific Constructor file. Yet, in 2 out of 3, opening a
modal dialog pops up MemoryMgr.c. Line 4372. Non-word-aligned handle
What kind of resource (?) error can produce this? (only on device,
POSE seems immune to it)


are you using a single form; then, setting the labels from resources?
or, are you defining three sets of forms uniquely?

if you define three sets of forms; chances are everything will work out.
if you are using a common form; the issue you may run into is the
fact that you have a label with 10 chars; but, try to put 11 chars in it.

ie:

common:LABEL 'X'
english_1:   LABEL 'do it'
english_2:   LABEL 'show me'
english_3:   LABEL 'gimme'

in the above example; english_1 and english_3 will work; but, english_2
will override the next item within the resource when CltSetLabel is called.
if you corrupt the resource in memory - you can easily get word-align
issues because the string values dont turn nicely into pointers.

as for why it may work on POSE without issues? probably that your
overwriting data still creates a word-aligned address :) word align has
a 50% chance of working or failing remember :)

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: Non-word-aligned handle when opening a form

2007-02-26 Thread Aaron Ardiri

3 different sets of forms, no dynamic label.


:) ok. then the next step is to use a tool like prc2pilrc to convert
the final prc to a rcp file so you can check to make sure constructor
aint buggy :)

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: Neat way to handle a RGBColorType as a UInt32 ?

2007-02-26 Thread Aaron Ardiri

On 2/26/07, Luc Le Blanc [EMAIL PROTECTED] wrote:

I'm surprised the RGBColorType was not declared as a union of UInt32
and other elements. But to copy or compare RGBColorTypes quickly
without having to resort to MemMove or Compare, is there a
CPU-effective smart cast I can use (( UInt32 ) is refused by the
compiler)? Is this cost-free (CPU-wise):


you have a point, it should have been:

typedef struct RGBColorType
{
 union
 {
   struct
   {
 uint8 r;
 uint8 g
 uint8 b;
   } elements;

   uint32 rgb;
 } data;

} RGBColorType ;

but to your question. yes.


RGBColorType a, b;

*( UInt32 * ) a = 0xL;
*( UInt32 * ) b = 0x80800101L;


*((UInt32 *)a) = 0xL;

may help the compiler understand better - why not use a macro to make
your code easier to understand at the same time :)

#define RGBColorTypeSet(a, val) (*((UInt32 *)(a)) = (val)
#define RGBColorTypeCompare(a, b) ( (*((UInt32 *)(a)) == *((UInt32 *)(b))) )

then do:

RGBColorTypeSet(a, 0xL);
RGBColorTypeSet(b, 0x80800101L);
if (RGBColorTypeCompare(a, b))
{
 .. same
}
else
{
 .. different
}

C/C++ can be pretty nasty about how you code your pointer casts;
so, just put extra brackets in there to help. it all comes down to memory;
as long as the RGBColorType components are after each other; it'll work.

you can do a lot of cool tricks like color averaging etc with this too.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: zoom the bitmap

2007-02-26 Thread Aaron Ardiri

On 2/26/07, Jacken [EMAIL PROTECTED] wrote:

Wow!  Thanks for your reply ,Aaron...
But I am not really sure of what kind of question is the stupid question...


never said stupid :)

just suggestion people should look in the archives and google before
asking questions - you'd be surprised how many duplicates exist.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: zoom the bitmap

2007-02-26 Thread Aaron Ardiri

On 2/26/07, Regis St-Gelais wrote:

never said stupid :)


you actualy did:   // Aaron Ardiri sick of stupid questions (tm)


no-one reads signatures :)

On 2/26/07, Alexander R. Pruss wrote:

I have some bilinear resize code, both ARM and 68K, in the partial
myKbd source release at www.sf.net/projects/handypalmstuff .
It's under a BSD license.  Seems pretty fast.  You'll need to adapt
the wrappers to your own needs.


i recently ported a bresenham implementation - very nice results.

http://www.compuphase.com/graphic/scale1errata.htm

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: Call code in other code segments

2007-02-26 Thread Aaron Ardiri

I think part of my problem is that the pointer I have actually does NOT point
to the code I want to execute, and may, in some cases, be trying to
execute data.

I looked in my code resources that were generated and they have strings
I use for debugging showing up at the top of the code resource, and the
actual code doesn't show up until later.  I assume this means that my
.data is getting put before my .text


its actually your .rodata section :)


The most convenient solution would be to make the code always be at
offset 0, and the data be down below the code.


yes, that is the solution.


There must be some way to write a custom linker script that can put my
.data after my .text, but I don't really know how to accomplish this,
and my reading of how to write linker scripts just left me confused.


man ld

SECTIONS
{
 .text 0x : { *(.text) *(.rodata)  }
}

there are are bunch of sample scripts in the prc-tools sdk folders.
you may want to do:

 m68k-palmos-objdump -D file.o

so you can see the sections that are actually defined within your object file.


Any help would be appreciated.


you are using prc-tools right? forget this if your using codewarrior :)

--
// Aaron Ardiri

--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


Re: zoom the bitmap

2007-02-25 Thread Aaron Ardiri

On 2/26/07, Jacken [EMAIL PROTECTED] wrote:

Hey guys:
It's me again, :). my question is how to zoom a bitmap, can you give
me a simple expample about that?


http://www.google.com/search?q=bitmap+scaling+algorithm

how about doing a simple search before you post to the list? your
question is not palmos specific at this point, as you need to know
the basics of scaling bitmaps.

once you understand the basics, then you can come back and
ask us how to get direct access to the bitmap bits so you can
manipulate them.

and, lets not teach you about searching the archives, what do you know:

http://news.palmos.com/read/search/results?forum=palm-dev-forumwords=zoom+bitmap

Your search for 'zoom bitmap' found more than 100 results. Returning
the most relevant 100 results.

time for people to do a little research before posting; that search
result could have been less than 100 hits if people didn't constantly
keep re-asking the same questions.

--
// Aaron Ardiri sick of stupid questions (tm)

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: Call code in other code segments

2007-02-23 Thread Aaron Ardiri

Is it possible for me to call functions just using their locked pointer in
memory? Or do I need to do some kind of assembly magic?


yes.


So, can anyone tell me whether what I am trying is possible, and if so,
if there is anything I'm doing wrong in calling functions, and what I
should do differently?


you need to ensure that the pointer you have actually points to the
code you want to execute. for example; dont try to execute data.
i hope your using gcc, as you can have much more control over
your binary generation :)

one of my old registration systems stored code in a .pdb file which
was encrypted based on the hotsync username. this was written in
2000 - and, it still works today.

you just need to know what your doing. no assembly needed.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: How to launch MIDlet?

2007-02-23 Thread Aaron Ardiri

On 2/23/07, Horace Ho [EMAIL PROTECTED] wrote:

Installed the IBM Java VM with the Golf MIDlet sample, the following
code failed to launcher the MIDlet programmatically (returns a Launch Error):

UInt16 card_no = 0;
LocalID db_id = 0;
DmSearchStateType search_state;
Err err = DmGetNextDatabaseByTypeCreator(true, search_state, 'JMid', 'j9pa', true, 
card_no, db_id);
if (err == errNone) {
 SysUIAppSwitch(card_no, db_id, sysAppLaunchCmdNormalLaunch, NULL);
}

Any help?


you cannot send launch commands to non-palmos applications.

your database; 'JMid'/'j9pa' is obviously the java midlet - i would bet
this isn't a valid palmos application :) most applications are of type 'appl'.
what you need to do it find out what application launches the midlets.

then:

a) launch the midlet launcher
b) pass information telling it to launch your midlet

now; this may only be possible if the midlet launcher has the ability
to launch midlets programmatically. i would be betting that chances
are, there isn't support for it.

what would be nice; is if when you converted your midlet to a palm
pdb; it created a appl database; that had the code to launch the
midlet interpreter and startup. that way; your midlet would be an icon
by itself within the launcher.

i did this with our gameboy emulator (liberty) when it was ported to
the vtech helio - worked out quite well; but, we never did the same on
palmos; would have been nice.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: debugging palm apps in xcode

2007-02-23 Thread Aaron Ardiri

On 2/23/07, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:

patching file gdb-5.3/gdb/objfiles.c
Hunk #3 FAILED at 641.
1 out of 4 hunks FAILED -- saving rejects to file gdb-5.3/gdb/objfiles.c.rej

Have you seen this failure before?  I am not well-versed in patch, so do
you have an idea of what I need to do now?  Thanks for any help,


there may be a small change in objfiles.c that makes it fail. the good
thing about patch files; is that they are text files. have a look at the
patch file; normally it'll tell you what line the patch should take place;
it will normally also show the old and the new lines.

chances are, the line offsets are off.

this happens occassionaly - if someone modifies a file after the
patch file has been made; but, it isn't impossible to still apply the patch
manually :)

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: How to launch MIDlet?

2007-02-23 Thread Aaron Ardiri

On 2/23/07, Horace Ho [EMAIL PROTECTED] wrote:

The tricky part is the system launcher can launch the MIDlet properly.

In the Filez apps list, there is J9 Java Launcher (type:appl creator:j9pa
attr:hidden). Maybe the system launcher 'knows' how to pass the Golf
MIDlet to the J9 Java Launcher, or the J9 Java Launcher monitors
SysUIAppSwitch related notifications ...


there is your launcher :)

are you sure that application stubs are not created for each midlet?
try looking through a list of 'appl' databases - there might be in
fact a 'appl' database already created that does what you want. then
you just need to send the launch code to it.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: database

2007-02-21 Thread Aaron Ardiri

On 2/21/07, Rabbi [EMAIL PROTECTED] wrote:

u can use the below api for creating a database:


you have some logical error here:


Err err = 0;
LocalID dbID = DmFindDatabase(0,BugSquBugsDYTC);
gDB = NULL;

if (dbID  0) gDB = DmOpenDatabase(0, dbID, dmModeReadWrite);
if (!gDB)
{
err = DmCreateDatabase(0, BugSquBugsDYTC, 'DYTC', 'DATA', false);


just because you couldn't open the database readwrite; it doesn't
mean you should create it - the database may exist. have you
considered that if it fails; maybe you should delete it before creating
a new database?

DmFindDatabase()
if (localID != NULL) DmCreateDatabase()
DmFindDatabase()

...DmOpenDatabase()

is the standard way to do things; and then handle your opendatabase
errors accordingly (ie: unable to open etc etc)

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: Putting new event in queue

2007-02-15 Thread Aaron Ardiri

On 2/15/07, Rabbi [EMAIL PROTECTED] wrote:

   MemSet(event, sizeof(EventType), 0);


should be:


   MemSet(event, sizeof(EventType), 0);


your passing the address of a pointer - which you should NOT be passing.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: Crc16CalcBlock

2007-02-10 Thread Aaron Ardiri

On 2/10/07, Helmut A. Bender [EMAIL PROTECTED] wrote:

Thanks, but no... thats the CRC32 of the zlib... I need to know the polynomial
of the included Crc16CalcBlock API...


http://www.koders.com/c/fid8749525F1BD9303912F4DFBD3B01AE13A35604D5.aspx

there you go; same site - but, the sources to POSE (palmos emulator).
the routine is right there for you.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: MemPtrFree

2007-02-08 Thread Aaron Ardiri

char *head;
head = (char *) MemPtrNew(100);
head =  text-GetCharPtr(header);


you allocate 100 bytes; lets say it has a memory location 0x0100.
you then *replace* the value inside head with the value returned by the
GetCharPtr() API, lets say it is 0x0200.

when you do:


MemPtrFree(head);


you should be doing:


MemPtrFree(0x0100);


but, instead are doing:


MemPtrFree(0x0200);


and, 0x02000 is a pointer that wasn't allocated using MemPtrNew()
which is why its giving you an error message. my guess is you want to
allocate the memory, then copy it from the text object.


head = (char *) MemPtrNew(100);
StrCopy(head, text-GetCharPtr(header));


maybe?

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: Database deleted after soft reset on T|X

2007-02-08 Thread Aaron Ardiri

Details: I installed a .pdb file from PC to T|X Simulator. This database is
58KB, 7 records, most records are just a few hundred bytes.


what is the creator id and database type?

some database types are reserved for system use - one in particular
that gets removed on reset is the temporary database types. you can
find a list of these in the reference documentation.

you shuold stick to known database types like 'data' :)

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: New shared library' PRC won't overwrite old

2007-01-29 Thread Aaron Ardiri

On 1/29/07, John Jenusaitis [EMAIL PROTECTED] wrote:

I created a shared library PRC with the Palm OS Suite.  When I made some
updates and tried to install the new PRC to my Palm I got a hotsync
error telling me that the PRC was already installed and the new one was
not installed.  Also, I could not delete the library off my Palm.  I do
not have the 'Prevent Copy' flag checked in my settings, which I thought
may have been the issue.  Can anyone give some insight/solution to this?


change your version number - to something that is higher than the
existing version number (installed on device). hotsync will always
install a newer version.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: Some Suggestions from u all

2007-01-25 Thread Aaron Ardiri

On 1/25/07, Rabindra Nayak [EMAIL PROTECTED] wrote:

you  can learn J2ME because it is platform independent and future mobile
will be javadevice.


thats what they told us in 1995, about java.

so, i jumped on the bandwagon.. got certified in 1999, started teaching
classes and got into the mobile space. j2me.. mm. fun :) its just not
going to happen, there are so many other technologies that area really
going to take its place.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: How to use SDK 5.3?

2007-01-24 Thread Aaron Ardiri

On 1/24/07, Michal Seliga [EMAIL PROTECTED] wrote:

i reported this on pluggedinsite when 5.2 sdk was released, its 'nice' to see
how gladly they ignore problems developers have


you can download the unix friendly SDK headers.. just so you know.

the issue is that when John Marshall was laid off from palmsource,
there was no-one there who gave a damn about the alternative SDK
environments. its almost like metrowerks invested $$ into palmsouce.

:) that said, if you use prc-tools - you can write a few scripts to fix
the issues without any major problems, and for most of us, its a
blessing to fix the headers :) we, the sick ones.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: Dynamic scrollbar?

2007-01-23 Thread Aaron Ardiri

On 1/23/07, Waylander [EMAIL PROTECTED] wrote:

Thank you for your replies.
I guess I'll just do a simplistic line up/line down with push buttons.


you should create your form with a scroll bar, and when it isn't needed;
hide it. this is how almost every developer does this. you dont generate
it dynamically; you just show/hide it as you deem necessary.

in fact; having it defined but with parameters that dont make sense for
display automatically hides the scrollbar.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: Palm File's structure

2007-01-23 Thread Aaron Ardiri

On 1/23/07, Michal Seliga [EMAIL PROTECTED] wrote:

are you sure its palm format? palm uses .pdb and .prc sufixes


he is asking about the desktop side of things; namely the formats
of the conduit data files (for palm desktop). the answer to his question
is that on-device file formats are fully documented; but the desktop
side of things may not be.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: Dynamic scrollbar?

2007-01-23 Thread Aaron Ardiri

On 1/23/07, Waylander [EMAIL PROTECTED] wrote:

Hi Aaron,
My program centers around creating dynamic form controls, so I am unable to
predifine where I need the scrollbars. I will how ever use your suggestion
in my load page. Thanks


you can resize and reposition any object on a form at anytime.

palmos has a known problem with dynamically generated forms, so its
more stable to define objects that are not used and/or not visible than
to attempt to create them on the fly.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: Palm File's structure

2007-01-23 Thread Aaron Ardiri

On 1/23/07, wawa [EMAIL PROTECTED] wrote:

Excuse me, As said by Aarn Aadiri I forgot ...


for the record,

is it really hard to get my name spelt right? at least one of them?

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: mLearning Questionnaire

2007-01-21 Thread Aaron Ardiri

On 1/21/07, Mohammad Afshari [EMAIL PROTECTED] wrote:

I would be thankful if you can participate in the following survey by clicking
this link, to share your thoughts on this topic.

http://www.psut.edu.jo/sites/zoubi/questionnaires/mlearning.html

Thanking in advance for your time.


a few comments and suggestions.

4. Occupation

i would expand on the options for this, surely you can have more.

9,. Mobile Phone Model

LG?, Sony Ericsson (different from Ericsson) and many others. you might
want to try and identify the capabilities of their phones, not just the model.
for example, j2me support? brew? if your going to provide learning, how
will you deliver it?

10. Mobile phone use

has use to surf net option twice.

12. PDA model

first, you have a radio button - should be check boxes. some developers
and people have more than one pda. also, your range is limited.

palm
pocket pc
symbian
linux
other

might be better options, allowing you to select more than one. i have 120+
handhelds, running all of the above operating systems. surely, i dont use
them all at once, but i have a stash of 4-5 devices which i can choose based
on my mood,.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: PACE: FrmSetDIAPolicyAttr

2007-01-21 Thread Aaron Ardiri

On 1/21/07, Alexander R. Pruss [EMAIL PROTECTED] wrote:

How about just doing the dumb-and-easy thing: Make a 68K pass-through
wrapper for FrmSetDIAPolicyAttr() and making the callback go to the
wrapper?  It involves a touch more 68K code, and is slower (however
since this is called once per form, that's not a big deal), but seems
more elegant (no checking for particular devices, no direct fiddling
with structures).


too much work :) i avoid PACE because its slower - only use it when
absolutely necessary. doing some 68K work requires messing with
resources and stuff :)

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: Treo 680 noise

2007-01-21 Thread Aaron Ardiri

n 1/22/07, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:

What is the difference in buffer size? What should I do to fix this issue?


have you written your own callback to process the WAV file?

if so, make sure that you use the 'frameSize' variable to determine
how many frames need to be writtten to the buffer. it is common that
you may request 1024 frames, but actually must process 2048.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: PACE: FrmSetDIAPolicyAttr

2007-01-20 Thread Aaron Ardiri

On 1/20/07, Alexander R. Pruss [EMAIL PROTECTED] wrote:

Here's an interesting downside to calling the ARM APIs directly: I bet
it wouldn't work under StyleTap--if anybody cares.  (That said, I don't
know how good in general their support for ARM-native code is.  They
do claim to support PNOlets.)


i haven't tried to use styletap - so, unknown.

in regards to this bugfix, unless they report their device as being
a Tunsten T3 - the code should never be run. does anyone know
what stype tap returns for the device + oem features?

on a side note - 68k routines use the trap mechanism. ARM routines
use a r9 table with offset to call native functions via function pointers.
with the right coding; you could handle the ARM calls natively as well.

styletap provides a convenience for lazy developers

the reality is that windows mobile isn't that difficult to support
natively, and there are plenty of docs out there to read from. now,
i've spent the weekend homebrewing my PSP. i can tell you, its
been fun, but not something i would recommend to anyone :)

now my apps semi-run on the PSP :) just got a few things to tweak.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: How to cache images?

2007-01-19 Thread Aaron Ardiri

On 1/19/07, Horace Ho [EMAIL PROTECTED] wrote:

The problem is how can I store a bitmap efficiently? Any chance I can
FtrPtrNew some memory and store what is returned by BmpGetBits?
Or there is a better way?


did you try this? :) already solved it yourself before you hit the send button.

but to answer your question; yes. it will work. you can either use a feature
memory pointer, or create a large resource in a database on the storage
heap. FtrPtrNew() is cleaner - a database of type/creator 'a68k/a68k' will
be stored in the DbCache on NVFS devices - and will never be cached.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: Http connection

2007-01-19 Thread Aaron Ardiri

On 1/19/07, Borszczuk [EMAIL PROTECTED] wrote:

 Only negative is it can only handle a max of 64k. The developer has
 promised a fix for this but I have not heard from him in a couple of
 weeks.

If you can make them fix this by their own, then great. I've played with their
library a few days ago and asked if they dealt with 64K limit, but they said
that can be solved for $675.


do you get source code access?

fixing the 64K limit is really just a case of changing MemPtrNew with
MemHandleNew (+flags) and uint16's to uint32's. $675? would be the
cost
for a once-of modification. sounds abuot right.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: Fatal Alert when app commences on a real Dana, but not in POSE

2007-01-18 Thread Aaron Ardiri

On 1/18/07, Bruce Waters [EMAIL PROTECTED] wrote:

I then tried putting the app on the SD expansion card in the /Palm/Launcher/
folder, to speed up the process. Inserting the card in the Dana I was shown
the app icon in the Launcher window as expected, but as soon as I tapped it,
the same Fatal Alert came up, and was only dismissable by a hard reset.


what this sounds like is a compiler issue.

the entry point to the application is the __Startup__ routine; which,
codewarrior
normally links by default against your application. with gcc tools; this is the
crt0.c code - which, basically locks all your code segments down and
allocates your globals.

from that code; there is a call to PilotMain(), which is where your code starts.

i would check a few things:

- your code segment sizes

make sure that they are relatively decent sized; a good indicator is to keep
them around or below 32768 bytes in size; especially if you want to avoid
the problems of jumping  +/32K (limitation of 68k).

if your code segments are larger; make more code segments.

- your data segment size

this is typically your globals; shouldn't be  64K - compiler should barf.

- the location of PilotMain()

PilotMain() much be +/- 32K within reach of the __Startup__ routine; and,
most importantly - it must be in the code0001.bin segment if you want to
handle resets correctly.

you mention that when you reset it automatically gives another FATAL
on reset? this is because the palmos is broadcasting reset notifications.
you could have gotten around this with a cold reset. (reset + up)

what you should do is move your PilotMain() to a seperate C file.

make sure it gets linked as close as possible to the __Startup__ code
and that it exists ONLY within the code0001.bin segment.

- try your crashing app on POSE using the VFS emulation

you shouldn't need to physically use the device for testing VFS. there is
a hostfs.prc file you can install onto POSE which will allow you to test
your functions. i would recommend you use a palm m505 based POSE
environment, in my experience, thats probably the most stable VFS
capable 68k device running under POSE. install hostfs.prc, emulate
your memory card and try to run the program.

you should do this with BOTH debug and release roms.

- good luck :)

its compiler bugs like this that make me want to use gcc, as i can control
all of the items i mentioned above manually - something most people just
wish the compiler would sort out for them (except when its buggy) :P

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: How to use the keyword 'class' in PODS?

2007-01-18 Thread Aaron Ardiri

On 1/18/07, xin zinicl [EMAIL PROTECTED] wrote:

I want to use the C++ keyword 'class' in PODS, but the compiler told me
'parse error', why?
Did PODS not support C++ syntax?


you need to save your files as .cxx or .cpp i believe for it to consider your
code C++ instead of C. this is something PODS inherits from its dependency
on prc-tools, but i believe all compilers act the same way.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: A little C/C++ help: Keeping an object alive

2007-01-17 Thread Aaron Ardiri

On 1/17/07, Ron [EMAIL PROTECTED] wrote:

static TBStructure Fields[40];
..
   Fields[j].saveText(frmPtr, dbP);

For some reason certain TBStructure objects in Fields won't call the
saveText function. If anyone could help me I would be very grateful


structures normally dont define functions in C.

your thinking in Java still. an object in C++/Java is effectively a
data structure with a number of associated methods/functions. in
C, data and code tend to be seperate from each other.

data:
TBStructure field;

function:
void saveText(TBStructure, ...)
{
}

you call it via:
saveText(field, ...);

now; if your a C expert; you can define a function pointer within a structure
so that you can do something like this:

field - saveText()

but, thats way above your head right now. there is nothing wrong with learning
Java at university level - heck, its a great language to learn the
basic fundamentals
of programming. you know how constructs work, how do use arithmetic and
write basic inline C code with your java experience.

you need to understand how C manages data and code together - and, for
this i recommend you grab hold of a C programmers book. it will step you
through some of the basics - questions of course are out of scope for
this development forum.

you may even want to consider using C++ instead of C - as, its closer to Java.

a few websites for quick reference:

http://en.wikipedia.org/wiki/C_(programming_language)
http://en.wikipedia.org/wiki/C%2B%2B

thats a starting point for you.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: PACE: FrmSetDIAPolicyAttr

2007-01-14 Thread Aaron Ardiri

On 1/14/07, Lionscribe [EMAIL PROTECTED] wrote:

Aaron, what do you use to debug
the PACE native application?


i have a routine called _SysDebugMessage(char str, boolean dialog);
which i can call from my code which effectively either writes a message
to a debug file or shows a custom dialog with information in it.

kinda like using printf to debug a unix/windows command line program :)

i also have some coding practices that allow me to identify exactly where
a crash happens in the code - in addition to perform timing caculations.
i have debugged this way for years; so, you get used to it.

most debugging is done under visual studio in win32 when it comes to
application logic - but, device specific debugging (hardware type things)
is done using the above technique.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: PACE: FrmSetDIAPolicyAttr

2007-01-14 Thread Aaron Ardiri
 this (without the macros')

UInt8 params[] =
{
   (((UInt32)(formP)  24)  0xff),
   (((UInt32)(formP)  16)  0xff),
   (((UInt32)(formP)  8)  0xff),
   ( (UInt32)(formP)  0xff),

   (((UInt16)(diaPolicy)  8)  0xff),
   ( (UInt16)(diaPolicy)  0xff),
};

((EmulStateType *)g - PACE._emu) - regD[2] = 14;
result = (Err)((Call68KFuncType *)g - PACE._68k)
 ((void *)g - PACE._emu,
  (0xA470  (0x0FFF)), params, sizeof(params) | (0));

the FrmSetDIAPolicyAttr is a selector based callback - riding of the D2
register; many API's share the same trap number (0xA470).

dimitry; how does this differ from the manner in which you make the API
call? you mention PceGet68KTrapHandler, thats something that obviously
isn't officially public :)

i see an entry for:

extern Err PceGet68KTrapHandler(EmulStateRef emulState, UInt32 trapNumber,
Pseudo68KCallAddrProcPtr *procPP);

in the mobile-stream SDK headers; can you give an example of it being used?
of course; PceGet68KTrapHandler() is an ARM only routine; in addition to
its appropriate r9 table reference.

you seem to be bypassing the offical way to call 68K from ARM directly -
which is why it may work. the manner in which palmsource expects us to
call it (as above); may actually be broken for FrmSetDIAPolicyAttr on a T3

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: PACE: FrmSetDIAPolicyAttr

2007-01-14 Thread Aaron Ardiri

On 1/14/07, Dmitry Grinberg [EMAIL PROTECTED] wrote:

i do not know what mobilestream sdk says about it,
but this method works nicely on every OS5 device. same thing works for
all the other things you mentioned, furthermore this is not an r9 func
- it's a library func provided by pace


can you identify where this function is defined outside of the mobile-stream
sdk? the only known PACE function is PceNativeCall in the default SDK.

ideally; on the T3 - i would like to use the AIA functions directly - but, i'm
trying to keep some form of standards in place; and, using the PINS
manager is standard from 5.3+ - i just have to make it work with the
3rd party solutions that work on pre 5.3

the form modification direct on T3 does solve it - but, it doesn't explain
why the PACE callback crashes - which, to me is a PACE bug.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: PACE: FrmSetDIAPolicyAttr

2007-01-14 Thread Aaron Ardiri

On 1/14/07, Dmitry Grinberg [EMAIL PROTECTED] wrote:

it is identified in the DLLs that come with the debug simulator :-)
those dlls are quite useful to see how the os works


ok, going back to my original statement:


calling FrmSetDIAPolicyAttr() via PACE on a Tungsten|T3 with the DIA
compatibility prc's installed gives the unit a FATAL EXCEPTION


strange, works fine for me.


i was documenting in the forum that calling FrmSetDIAPolicyAttr via
the recommended PACE interface callback mechanism FAILS. you
mentioned it works for you; however, your not using the standard
mechanism - your using alternative methods (which, may be better)

point is; the method your using isn't documented :)

the following:

---
UInt8 params[] =
{
  (((UInt32)(formP)  24)  0xff),
  (((UInt32)(formP)  16)  0xff),
  (((UInt32)(formP)  8)  0xff),
  ( (UInt32)(formP)  0xff),

  (((UInt16)(diaPolicy)  8)  0xff),
  ( (UInt16)(diaPolicy)  0xff),
};

((EmulStateType *)g - PACE._emu) - regD[2] = 14;
result = (Err)((Call68KFuncType *)g - PACE._68k)
((void *)g - PACE._emu,
 (0xA470  (0x0FFF)), params, sizeof(params) | (0));
---

with:

---
  // we may need these if we have to use PACE for something
  g - PACE._68k = (void *)call68K;
  g - PACE._emu = (void *)emustate;
---

initialized from the PNO entry point

this is the recommended way to call the specific FrmSetDIAPolicyAttr
68k API from ARM (as per the PceNativeCall documentation). this
is broken on a T3 with the DIA compatibilty prc's installed

while you may have a working solution using another undocumented
API - my original email was to point out the recommended method
was busted (maybe a bug on T3 directly)

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: PACE: FrmSetDIAPolicyAttr

2007-01-14 Thread Aaron Ardiri

On 1/14/07, Lionscribe [EMAIL PROTECTED] wrote:

Aaron, you are a Master of White Papers. Maybe you write a short
white paper on the basics of PASCE native programming, like what
enviroment to use, what libraries, and so forth. I am sure it will be
greatly appreciated by many.


i've considered it.

in fact, i really only started this post to let people know that the
standard PACE callback mechanism was buggy on a T3 specifically
for the DIA compatibility prc's - the fact that i also posted a fix is
another thing, but it bugged me for a while.

a lot of good information is posted within the mobile-stream SDK

 http://news.palmos.com/read/messages?id=193247

however, it doesn't explain how it truely works - we knew most of
the information prior to the above SDK being shipped - and, in fact
the mobile stream guys gave us a few ideas of our own :)

writing your palmos application natively isn't difficult at all - you
just need to know your compiler and how to give it what you need.
for one thing; if you are intending on going native; you definately
DO NOT want to know or depend on the internal representation of
structures - the 68K and ARM counter parts can differ big time!

its difficult to write a white paper on something like this without
rewriting the complete SDK honestly. for what its worth; i dont really
have the time to do something like that.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


PACE: FrmSetDIAPolicyAttr

2007-01-13 Thread Aaron Ardiri

i dont know how many people may find this useful - but, i thought i would
post it here for archive purposes anyhow; i know i spent long enough on it.

if your the type like me who likes to move the whole application, including
the event loop to an PACE native object (ARM) and, you are expect to use
the dynamic input areas of the T3 (with DIA compatibility prc's installed),
you will need this code.

calling FrmSetDIAPolicyAttr() via PACE on a Tungsten|T3 with the DIA
compatibility prc's installed gives the unit a FATAL EXCEPTION, however
calling the API from 68k directly works fine.

Err
FrmSetDIAPolicyAttr_PACE(FormType *formP, UInt16 diaPolicy)
{
 Err result;

 // Tungsten|T3:: PACE callback fails (FATAL EXCEPTION)
 if ((g - ftr.comID == 'Palm')  (g - ftr.devID == 'Arz1'))
 {
   uint16 *p;

   // FormAttrType exists at 40 bytes inside the form type structure
   //
   // default: 0x0041 0x0230
   // custom:  0x0041 0x0211 -- flags changed

   p = (uint16 *)formP; p += 21;

   if (diaPolicy == frmDIAPolicyCustom)
 *p = 529;  // 0x211
   else
 *p = 560;  // 0x230

   result = errNone;
 }
 else
 {
   PACE_PARAMS_INIT()
   PACE_PARAMS_ADD32(formP)
   PACE_PARAMS_ADD16(diaPolicy)
   PACE_PARAMS_DONE()
   PACE_EXEC_SELECTOR(pinFrmSetDIAPolicyAttr)
   result = (Err)PACE_EXEC(sysTrapSysPinSelector, 0)
 }

 return result;
}

this is definately a hack-in-place for the Tungsten|T3 - but, it is the only
way someone will be able to call the FrmSetDIAPolicyAttr from within your
PACE native object on an ARM unit (may not work on x86 - offsets diff?)

if you dont call FrmSetDIAPolicyAttr - you can press the DIA up/down buttons
and it simply returns to the open position because the form doesn't have
these attributes set internally.

i wonder how many native-ARM secrets i could find to post here :)

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: Palm Certification ???

2007-01-08 Thread Aaron Ardiri

On 1/9/07, Shruti Wadhwa [EMAIL PROTECTED] wrote:

Hi All,
I don't know whether to post this here or not, but i really need your views.
I just want to know that how effective is Palm Certification ?
Should i go for it or not ?
I am in dilema , please send your views so that i can set my vision.


certification for any platform is always a good idea.

the palm certification exams are very pre-garnet specific; written
back before ARM devices were available on the market - the exams
focus on the basic platform architetcure; which, palmsource has
kept compatability support in ARM (via PACE); and through ALP
(via GHOST)

when ALP hits the market officially - one needs to know if the
manner in which palmos applications is written is going to change;
and, if so - how significantly.

there may be a need for:

- Palm OS Garnet Certification
- Palm OS ALP Certification

but, honestly - if you take a look at the number of developers who
are actually certified:

http://www.palmos.com/dev/certification/

its probably around 100 total - not everyone wants their name listed.
most of these developers are also self-made companies :) so, its not
like getting a palmos job requires you to have certification.

it may help some self-made companies as consultants however.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: FrmRemoveObject crashing on 4.x and 3.x OS

2006-12-20 Thread Aaron Ardiri

On 12/20/06, Ben Combee [EMAIL PROTECTED] wrote:

On 12/20/06, V. Sriram [EMAIL PROTECTED] wrote:
 hi everyone,
 i'm having trouble using FrmRemoveObject. i have dynamically created a
field and while closing the form, i remove the field using FrmRemoveObject.
this code works perfectly on Tungsten running 5.4 version. but same code
crashes in treo 180 and M150 running 3.5 and 4.1 versions respectively.
 here's my code snippet:

All of the dynamic form code was very buggy on Palm OS 3.5 and 4.x.  You can
only remove things in the reverse order of adding them, and even then it
sometimes fails.  If you're just doing this at form close, just don't remove
it at all -- it will be removed automatically by unloading the form.


i had a project that i managed to keep stable - but, ben is right. its
very flaky.
if you do things right, you wont run into any problems.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: FrmRemoveObject crashing on 4.x and 3.x OS

2006-12-20 Thread Aaron Ardiri

On 12/20/06, Dmitry Grinberg [EMAIL PROTECTED] wrote:

on pre-os5 code you can use the docs to write your own remove function that
works, if you really need it. but in general, why not just hide whatever you
need to remove?


this is pretty much what i did..

i dont hide what i dont need - because i simply dont know at compile time
what my user interface was going to contain. it was a 100% scripted application
that would build UI's based on script values.. super fun.

in these types of projects; dynamic UI is essential.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: What math functions are available in the palm api

2006-12-20 Thread Aaron Ardiri

On 12/20/06, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:

does it support square root, exponents, multiplication, division
What place of decimal accuracy is supported?


google + mathlib + palm

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: Playing Sound file .midi

2006-12-19 Thread Aaron Ardiri

On 12/19/06, Anoop [EMAIL PROTECTED] wrote:

Hii Seliga,,
   I have been developing on  palm application in Life Drive.
Does Life Drive support .midi files. Actually the resources am having is all
.midi files..


you need a 3rd party sound/audio library to support midi files. i know of
ONE available (ours) - midi files are a little cumbersome to deal with;
especially since the instruments need to be stored seperately.

http://www.mobilewizardry.com/palm/fidelity/index.php

some examples of projects that use fidelity:

http://www.mobilewizardry.com/press/20030901-outlook.php
http://www.mobilewizardry.com/press/20030930-xengames.php

if you want to try an alternative music format; you can try .mod files -
they'll package together cleaner - and, i would recommend the modula
library (from indus3) over aurora if your looking for performance.

http://modula.indus3.org/
http://www.astraware.com/technology/aurora/

these libraries can be expensive - especially if you think about what it
would take to write yourself. if your doing a commercial project; its easy
to budget that stuff in - if its a shareware/private project - you may want
to consider alternative audio :) or, write your own.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: Playing Sound file .midi

2006-12-19 Thread Aaron Ardiri

On 12/19/06, Hynek Sladky [EMAIL PROTECTED] wrote:

How is this on treo? HsAPI has some functions for playing MIDI...
Hynek Sladky


the midi playback on palmos by default is restricted.

the HsAPI implements some form of better playback - however, its
restricted to a predefined set of instruments. if you want to check it,
listen to a midi on the desktop (windows/mac); then, play it back as
a ring tone on the treo.

you'll hear two different things.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: App crash when other segment function called

2006-12-19 Thread Aaron Ardiri

On 12/19/06, Borszczuk [EMAIL PROTECTED] wrote:

Donald C. Kirker wrote:
 Might I recommend using multilink?

 I use it and it handles multi-segment stuff really well. Not sure about
 with being a plugin taking custom launch codes, but it should work the same.

According to the project website it shall work. But I need to find some time to
build multilink first (it does not complile out of the box here). Anyone got
multilink built for linux maybe?


download it - and, try to compile it.

last time i did that, i was using a solaris machine and i had to make a small
code change for it to compile and execute (gave segmentation fault); but, it
wasn't that hard to track down the bug.

the core is there - you should be able to get it working easily.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: Playing Sound file .midi

2006-12-19 Thread Aaron Ardiri

On 12/20/06, Aswathi [EMAIL PROTECTED] wrote:

hi all,,

Can we use the SndPlaySmfResource to play .mid file saved in the
resource ?


read what i mentioned below. if you want desktop quality midi playback;
you NEED a 3rd party library - thats just the way it is. there is no API.


Aaron Ardiri wrote:
On 12/19/06, Hynek Sladky [EMAIL PROTECTED] wrote:
How is this on treo? HsAPI has some functions for playing MIDI...
Hynek Sladky

the midi playback on palmos by default is restricted.


 - by default; midi playback is tone-deaf.


the HsAPI implements some form of better playback - however, its
restricted to a predefined set of instruments. if you want to check it,
listen to a midi on the desktop (windows/mac); then, play it back as
a ring tone on the treo.

you'll hear two different things.


the treo devices do a little bit better - but, still dont do it perfectly.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


Re: PalmResize release

2006-12-16 Thread Aaron Ardiri

On 12/15/06, roderick young [EMAIL PROTECTED] wrote:

Thanks for all your work on this very useful package!

I noticed in resize.c, there's a forward declaration for the function,

static UniqueUpdateForm(...)

which my compiler assumes is type int, and later generates a warning when the 
real function is of type void.  Is the forward declaration necessary?


just change it to:

static void UniqueUpdateForm(...)

its a common error to forget the return type on functions; and, by default
they are assumed to be int's under C/C++. making it void corrects the issue.

--
// Aaron Ardiri

--
For information on using the PalmSource Developer Forums, or to unsubscribe, 
please see http://www.palmos.com/dev/support/forums/


  1   2   3   4   5   6   7   8   9   10   >