This page is likely to be of interest to those who are programming for the Psion 5 using the EPOC32 C++ SDK. It provides a number of little tools I have developed for use with the EPOC32 C++ SDK. Most of them are quite trivial, but may still prove useful.
If you have any suggested improvements to the perl scripts, then you can either email me or my brother via the feedback page.
NOTE:
We have found that if you are developing under Windows 95 and
are using Visual Studio with all Service packs applied, then
sometimes the perl scripts we supply do not operate correctly.
This is because one of the Service Packs makes a change that
causes the perl 'glob' operator to fail.
We have not found a fix for this.
This problem does not seem to occur if you are running under
Windows NT.
This perl script was developed to help generate the files necessary for an EPOC32 C++ application. It was inspired by the Visual C++ EikonWizard that was developed by John McAleely .
It will generate the C++ sources files, project files, help files and packaging files necessary for the building of an application. It has options to conditionally control the generation of code for:
The script can be invoked as follows:
perl makeapp.pl --project
Project
where Project is the name of the application that you
wish to create.
Other options available will be show if makeapp is invoked with
an unknown option, e.g. --help
.
NOTE: This program is currently under active development and is liable to change. Any suggestions for improvements would be welcome and can be supplied via the feedback page.
This perl script was developed to help one locate items in the C++ SDK.
It will create a series of files that produce lists of the entries in the EPOC32 SDK categorised by type. The types currently supported are classes, enums, typedefs, structures, resource structures and macros. The relevant files are created in the epoc32/doc/index directory and the file idlist.html acts as an index to the remaining lists.
This perl script was developed to help find out what was is included in the C STDLIB library, and what was defined in the header files but not currently implemented.
It will produce a file epoc32/doc/stdlib/slfunc.html that contains a table of the functions that are in the header files provide with the C library recently provided by Psion. The table lists the functions (in alphabetical order) giving its prototype, the header file defining it and whether it is currently implemented.
This perl script will process the EPOC32 include files in order to generate HTML files that allow easy viewing of the information for each class in the C++ SDK. It generates an HTML file for each class giving a full cross-reference of its member functions, data structures, etc. It will produce about 6.5Mb of HTML output split across about 1500 files.
Recently enhanced to tell you what libraries need to be linked in for any particular class.
We would welcome any suggestions on how the output could be improved to be more useful.
This perl script was developed to help with locating global static data (which is not allowed in EPOC32 DLLs).
You use it when the petran
tool reports that the
DLL has initialised/uninitialised data. For example during my
libcurses development I need to track down which modules it is
complaining about .... so I invoke it as:
FindData.pl libcurses
It produces the following sort of output:
RIPOFFLN.C: uninitialised data (0x28 bytes)
TPARM.C: uninitialised data (0x568 bytes)
RIPOFFLN.C: initialised data (0x4 bytes)
If the variables in question had been externally visible rather than statics it would have reported their names as well. This is much easier than trying to process the .MAP file manually.
I have used PC Lint from Gimpel Software to check EPOC C++ programs by including a special PC Lint EPOC32 policy file. The policy file should be installed into the PC Lint directory.
The command lint to use the file is something like:
LINT -u std.lnt env-vc5.lnt epoc32.lnt
files ...
to check files in isolation, or
LINT std.lnt env-vc5.lnt epoc32.lnt
files ...
to check files as a single entity.
We have not quite finished this port yet, but are posting this information here so that others know this activity is going on.
This is a port of our CURSES library to the Psion 5. The port arose out of the work we are doing to port the VIM editor to the Psion 5.
If you are writing new software that is to fully exploit the Psion 5, then you need to use the EPOC32 C++ screen handling classes. However there is quite a lot of software that originates on Unix that it might be nice to have running on the Psion 5, and that uses Curses for its screen handling. Hopefully this library will make such ports easier.
I am making the current curses library sources available to enable other developers to improve the facilities in the library. The routines specific to the EPOC32 operating system can be found in a subdirectory called epoc32. The library is working in a very basic mode under bother WINS and MARM environments. Currently the library is capable of doing screen output to a simple VT52 emulation and to read characters from the keyboard. Further development is required to the keyboard input in order to provide support for routines like cbreak(). Also it would be nice to improve the screen emulation to support attributes like bold, dim, reverse video.