PROSE is a cross-platform programming environment designed to simplify the development of small and large-scale networked applications.
Read more about PROSE at http://prose.sourceforge.net
This is a pre-alpha POC release, containing a fully functional assembler and disassembler for an evolving assembly language (PAL), which compiles into a platform-independent bytecode. A bytecode interpreter (the PROSE engine) is also included in this release.
It is known to work on the following platforms:
* Sun Solaris 8
* Sun Solaris 10
* DJGPP 2.03 (MS-Windows/DOS)
* Redhat Linux (FC3)
* FreeBSD 6.2
* MacOS 10.4.9
If you have it up-and-running on a different platform, please let me know.
The PAL assembly language is beginning to take significant shape now. The PROSE engine is up-and-running, and interpreting a number of bytecode instructions. These instructions are described in section 5 man pages which are distributed with this release, and HTML versions of these man pages can be viewed at http://sourceforge.net/docman/?group_id=50184
In short, this version of PROSE can handle the following PAL instructions:
noop
stack/push
stack/pull
stack/lock
stack/unlock
stack/flush
obj/dump
error/clr
error/def
error/jmp
error/now
func/def
func/call
func/bcall
func/rtn
local/jmp
local/jsr
local/rtn
reg/load
reg/jmpeq
reg/jmpneq
reg/jsreq
reg/jsrneq
reg/dump
walk/def
walk/next
walk/end
debug/source
You can define data segments within binaries using the following macros:
EQUS
EQUB
EQUW
EQUD
The functionality is very limited in this release. You cannot yet define and manipulate variables, and for this reason you cannot pass arguments to functions, or receive return values. You are also currently unable to manipulate objects, classes and attributes, or perform any useful tasks with the data segments you create using the EQUate macros.
However, you can walk around the nexus hierarchy dumping out object data, manipulate registers, the stack, and the program pointer; and you can define, trigger and trap errors.
Also sorely (and obviously) missing is any glimpse of the future PROSE scripting language. This will have to wait until the PAL bytecode provides enough of the required functionality.
- Mark R. Bannister
Email: cambridge@users.sourceforge.net