hello, I am Patrick Dehlinger, and I work in France on PDA development. My compagny name is PALMWARE and my user ID is 100014.1025@compuserve.com Here is the third version of PILI (platform independant language interpreter) this is released under Freeware concept and also under limitations, by using this application you accept all the limitations. LIKE ANYTHING ELSE THAT'S FREE, PILI AND ITS ASSOCIATED UTILITIES ARE PROVIDED AS IS AND COME WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED. IN NO EVENT WILL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES RESULTING FROM THE USE OF THIS SOFTWARE. You can't reverse engeneer this SDK. You can't sell part or all of this SDK. This SDK is limited to personal use. You can not use this SDK to own money, especially, you can't use it for professional application, etc ... You can't use-it to develop Sharewares without a special licence agreement. This licence agreement is valid for one software at a time, you must have this licence agreement in order to sell your Shareware, and must indicate the given licence number on all your softwares. Also user must registers to Palmware, and you also must send us the user name and address, when he register to you. This licence is under limitations, you can sell only to end users (home business), but you can't sell to resellers, corporations, industries, governement , administrations etc ...(profesional business). Palmware is free to accept or refuse this licence agreement. The price and conditions for this licence will be communicate by private email. If you do not want to write Sharewares, all the applications written with this SDK are intended to be free, but you can ask for donations if you want, and I will also accept them. Sources of your applications will remain yours, and you are not obliged to release them to public domain. PILI op-code , documentations, executables and binaries are copyright Palmware S.A.R.L. France and Patrick Dehlinger and are under international law.If laws in your country don't permit such limitations, you can't use this software, E-MAIL me if this is the case. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! If you can't understand the meaning of this legal stuff, don't use this software, please e-mail me, I will try to explain more and make it clear. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! OK, So if you accept all this stuff, here we go. (sorry for my english, feel free to send me mail for unclear parts). FIRST: ALL PREVIOUS APPLICATION MUST BE RECOMPILE WITH THIS VERSION OF PILI AND USE THIS VERSION OF FNCALL.INC, if you don't, result is impredictable. some fncall definitions (labels) have changed, so use the new ones. please read the function.doc to see the changes, and because I have spend a lot of time to write-it. As I said, this version of pili is for public use, and so it will be great if you make your developments available to all of the Zaurus community. I understand that you could want some fees for your work, and so I have include into the licence agreement the ability to ask for donations, but you still can't release your software under Shareware without a Palmware licence agreement as this will become a commercial software (see previous text). This version is called 1.01b, All functions are there, but not all of them are tested (ie they could not work exactly they suppose to do ). I have join some demo soft. The binary file which is generate by the compiler needs to be installed as a PC-FILE. Pili will alowed you to select and download it to Pili run area, the previous one will be deleted. If you want to save the previous software you can upload-it by pressing the 'SEND' key ('GET' will load a new application into Pili memory). You can also download a PC-FILE document/file to Pili internal Vdisk by pressing the 'NEW-ENTRY' key (CAUTION, you are limited to the total amount of 55Kb). You can upload a file from internal vdisk to PC-FILE by pressing the 'MENU' key and entering the vdisk file name (this is usefull for spreadsheet and document application). You can also have a full list of all the files contained into the Vdisk by entering 'alldir.txt' filename after pressing 'MENU' key, it will be upload to PC-FILE directly. (you have then to import this file from PC-FILE into document). You also have 3 more keys: 'F' will ask for formating the Pili Vdisk. '2nd'+'shift'+'u' will suppress all the pili data's from memory this can be done to either remove pili from memory or to restart an installation (move the vmem files from main to card for example) '2nd'+'shift'+'D' will display an dump/editor (press 'h' within to get more help), CAUTION if you modify Zaurus internal memory without knowing what you are doing (or want to do) you can (AND WILL) destroy your data's. The processor design is based on a virtual 32 bit CISC CPU with floating point support. It will be interpreted on the target platform with a special runtime. take a look to the file INTER.PRO wich contain all the instructions descriptions (caution, don't change this file, it is use by vasm.exe). This VCPU will allowed you to write powerfull applications for the Zaurus, but for the moment, only the assembler is available (I hope someone will port the small-c to handle this cpu, you can find the source in the ddj forum). Even with this assembler, and just with a few opcodes, you are able to write applications. I have enhanced this with some libaries functions (ie native coded functions) wich can be called thrue the FNCALL family instructions. Mainly this functions can handle input/output, events and communications. Description of coding: the assembler supports some additions such as the 'DL' pseudo wich allow to directly enter longs (4bytes, 32bits) integers. And the 'DF' wich allow to directly enter floats (4bytes, 32bits) floating points numbers. You need to start your code with the header. ; ; ALL APPLI NEAD TO START WITH THIS AND TO END WITH THE BOTTOM'S LABEL'S ; pili_header: JR start ; jump to start of prog dl pili_bottom-pili_header ; /* size of binary image */ db "PILI BINARY MAIN " ; header for main application db 0 ; null terminate dl $+0 ; Initialise $ counter ; include file for library definitions and virtual registers assignement include fncall.inc and then you can include some files after that you have your code, starting with the 'start' label ;----------------------------------------------------------------------------- ; ; ; ; YOU PROGRAMM START ; start: FNCALL08 clearscreen,0 ; clear the screen ........ and ending with ;------------------------------------------------------------------------- ; ; ; *********************** END OF PROGRAMM ********************* ; ; pili_bottom: ; NEED TO BE THERE FOR HEADER end You NEED to folow this rules. All the labels are 8 characters, so Label_01 is the same as Label_0100, but you can use the -C switch wich will make the compiler label case sensitive, so Label_xx will be different from label_XX. include files can be either Source code (include statement) or binary (binclude statement) You can enter data's by using DS xxxxx ; it will reserve xxxxx bytes of memory DB xx,yy,zz ; it will store xx,yy,zz DB "Hello" ; NOTE: to use library display you need to add a 0 at the end DB 0 ; of the text, you can't do it on the same line. DL xx,yy ; Enter longs integers (32 bits, 4 bytes) DW xx,yy ; Enter integers (16 bits, 2 bytes) You also have some specific directives such as $ (compiler address counter) $DATE_TIME (date and time when you compile the source, null terminate) $LINE (line actualy compile) $MODULE (source name, null terminate) You do not have to deal with Zaurus memory, but your code WILL be changed when running, exactly as memory, if you start after compile with a 0 somewhere in code, and then write at this label something, it will be definitively changed. You also have 2 utilities, one to convert b/w 320*240 pcx images to PILI internal format: PCX2BIN.EXE Syntax is PCX2BIN 'image.pcx' 'image.bin' You can add the C switch to compress your image (up to 50% compression) The other utility is to convert binary data's (such as image) to assembler format, wich can be included or copied to your source. You also have vasm.exe, witch is the compiler, it can produce list by using the -L option. Syntaxe is VASM -L 'source code', run vasm with no parameters to get a help text. In list, Address are listed from 0 to FFFF, so address 2000h while be listed exactly as would be 12000h address. after compiling, you have to download to Zaurus in the PC-FILE area. PILI100.ZPM file is the runtime and is a normal Zaurus application. You HAVE to install this runtime and an applications to main memory. You HAVE TO POWER OFF the unit after ANY PC-LINK use, and BEFORE USING the Pili runtime. if you don't, Zaurus will crash and you will need to press reset to get control back (you should not loose data's). KEEP IN MIND that this is language, so runtime should not crash your Zaurus but an application could. In any case it is a good idea to have BACKUPS before using the sdk or download a new application. And also, if you backup to a memory card, DON'T leave the card into the Zaurus when using it. I didn't crash my Z1 and Z2 for a long time now, so it should not destroy your data's. Fell free to send comments and question into the pili thread on compuserve. Enjoy Patrick.