• Version 0.20 (30.3.2003)(dc.e: 26512 lines, 844058 bytes):
      28.7.2002 alpha0 release:
    • v0.1 in the progress output changed to v0.2 ;)
    • fixed division/modulo in ppc with constants
    • removed two enforcer hits
    • fixed three bugs in lists under PowerPC
    • fixed another very lowlevel and very long time hidden bug in PowerPC
    • lib/modules/wbbase.lib renamed to workbenchbase.lib to make it working under PowerPC
    • SUB feature does now work better under PowerPC
    • fixed bug in return-values-from-functions-called-from-expressions under PowerPC
    • fixed multiple source string conflict under PowerPC (RealStr() does now work!)
    • bugs reported and fixes made by Michel Bagmeijer
      • updated 'powerpc/powerpc' module
      • the Tan() function does now work under ppc
      • added '\%' to insert a single '%' character to a string
      • added OPTion NOWARN to avoid warnings inside the source code
      • added some examples!
    • bugs reported by Miklos Nemeth
      • global DEF x[123]:obj was compiled wrong
      • fixed x[y][z] bug
    • bugs reported by Marco Antoniazzi
      • IF 1 & 2... didn't work
    • bugs reported by Vadik Akimoff
      • static addresses can now be used in 68k assembly
      • fixed an alignment bug in 68k
    • ideas reported by Vladimir Javorski
      • added 'PowerD Progress Port' for some higher-level UI, take a look at progress.d example


      18.8.2002 alpha1 release:
    • added support for static local variables (currently 68k only)
    • NEW/END keywords works under PowerPC
    • fixed problem with special occasion of string ('"' was at position of 40 on a line)
    • fix: when bad cpu entered, whole source code was shown in the shell
    • removed some of useless instructions in 68k code
    • fixed exception handling under PowerPC, it made some collisions with strings
    • fixed &x using under PowerPC
    • fixed calling of PPC library functions from PPC code
    • added support for "PPC0" function calling (warp3dppc.library)
    • fixed global DEF x:obj under PowerPC
    • fixed some output assembly errors (68k and ppc)
    • if NEW x fails, "NEW" exception is called (was "MEM")
    • fixed debug file output
    • reports by Vladimir Javorski
      • added russian catalog
    • bugs reported and so made by Michel Bagmeijer
      • NEW x[y] do now work
      • added new examples
      • several modules improved
      • updated aslbase module and ppc interface
      • x2d tool improved to support pragma files
      • fixed binary data in ppc code
      • added other powerpc modules
      • fixed strptr problem in ppc code
      • fixed global variable allocation
      • NEW fixed under ppc
      • small fix in h2m
      • ddbg should now work better
    • bugs reported by Karoly Balogh
      • enforcer hit removed (empty REPEAT loop)
      • 'adr:=label' do work again


      13.10.2002 alpha2 release:
    • today my Amiga celebrates it's 9th birthday :)
    • removed some enforcer hits
    • global fields like DEF a[3,3] are now well allocated
    • fixed global variable fields under PowerPC
    • it's now possible to call functions without arguments defined as LPROC
    • an error message is now generated if a.b is used, and b doesn't exist as an item, but as variable
    • fixed floating point constant equation reader under PowerPC
    • fixed a,b+=func() where a and b are floats under PowerPC
    • added new keyword SELECTED to SELECT statement (see select.html)
    • fixed value returning of SELECT statement
    • in the SELECT statement from now doesn't matter on odred of CASE/DEFAULT/SELECTED keywords
    • small fix of reqtools.m module
    • & didn't work for negative numbers
    • bugs reported and so made by Michel Bagmeijer
      • fixes in docs
      • 'Compiling' changed to 'Assembling'
      • x2d tool compiles now modules
      • dmod tool improved
      • fixed the FreeXMsg() in powerpc.m module
      • fixed graphics/gfxmacros.m, intuition/imageclass.m module
      • NewM() function does now exist
      • there can now be spaces/tabs between ':' and type
      • removed alignment problem, that was added in one of last releases
      • 'yyy.xxx' won't be chenged, if there is 'xxx' macro defined
      • updated resources modules
      • added scsi/commands.m module
      • added PowerPC functions: WriteF(), ReadEStr(), OpenW(), OpenS(), CloseW(), CloseS(), Plot(), Line(), Box(), Circle(), Ellipse(), SetStdRast(), Colour()
    • bugs reported by Karoly Balogh
      • dbcc instruction can now be used in internal ASM
      • global DEF a=[1,2,3]:type do now work properly
      • inlined assembly can contain expressions like: moveq #const/2,d0
      • added namespaces support (see with.html) (now supports multiple variables)
      • inside the inline assembly You can use arguments like: (obj.item,ax) as offset usage (see: asmcode.html)
      • fixed a<<=9 bug (where the number is higher, than 8)
    • bugs reported by Marco Antoniazzi
      • global: DEF var=[[1,2]:x,[3]] and so didn't work at all
      • fixed InStr() function
    • bugs reported by Vladimir Javorski
      • DEBUGSYM option do now enable the DEBUG define


      10.11.2002 alpha3 release:
    • fixed (u)word/(u)byte shifts/rotates under PowerPC
    • fixed an old bug in PowerPC support, that made executables about 5%-10% longer!
    • added support for functions pointers in variables: DEF a:() // define the variable as a function pointer (no args here) a:=&func // assign a function address to the variable a() // launch the function addressed in variable a
    • fixed static lists containing doubles under PowerPC
    • added some examples written by Philippe van Calsteren
    • basic OOP again started to work :) (see oop.html)
    • bugs reported/fixed by Marco Antoniazzi
      • shared library support is now working better and safer!


      4.1.2003 alpha4 release:
    • fixed graphics/modeid module
    • fixed address reading (&glob) under PowerPC
    • fixed DEF a:() feature under PowerPC
    • fixed float constant computing under 68k
    • added ACos() function under PowerPC
    • removed some enforcer hits
    • fixed register allocation in 68k
    • added dc_68k compiler for 68k executables only
      • this version has only removed all the PowerPC related code generator stuff, so it can produce -only- the 68k executables for 68k only machines
    • bugs reported/fixed by Marco Antoniazzi
      • a>=b fixed under 68k
      • a:=b>>c fixe under ppc
    • bugs reported and so made by Michel Bagmeijer
      • added support for bcc *+10 and so
      • new examples added
      • updated some examples
      • added DoMethod68kA() function to do the job of DoMethodA() under PowerPC
    • bugs reported by sPOOKy.LN
      • cnop replaced by align opcode in assembly output
    • bugs reported by Karoly Balogh
      • fixed WITH a.b
    • bugs reported by Miklos Nemeth
      • no more ExecBase definition needed for custom libraries
      • no more messages like: unused customOpenLib etc.


      24.3.2003 alpha5 release:
    • fixed TDEF in binary modules
    • improved ddbg
    • fixed a small bug in internal LIBRARY generator code
    • fixed heavy ppc bug related to floats
    • fixed &double under PowerPC
    • now You can count with addresses like &a-&b
    • bugs reported and so made by Michel Bagmeijer
      • PRIVATE/S switch added to the cli
      • docs fixes
      • added tdef.html documentation
      • INC/DEC works now also under ppc
      • compiled libraried returns -1 instead of 0 when executed
      • added information about LIST/LIST OF type (see types.html)
      • updated PC a bit
      • PowerD compiled shared libraries can now use all the usual system functions
      • fixed devices/hardblocks module
      • bad 68k instruction is now recognised
    • bugs reported by Marco Antoniazzi
      • a:=b&~(1) didn't work
      • preprocessor now strip leading spaces/tabulators in macros
      • added a new C-like FOR ability
      • added preprocessing for ascii modules, can cause a small slowdown
      • fixed OBJECT loader in binary modules
      • added new keyword STOPIF, that stops the parent loop
      • fixed some docs
      • fixed devices/inputevent.m module
    • bugs reported by Simone Monsignori
      • fixed ^x:=...


  • Version 0.19 (25.6.2002)(dc.e: 24944 lines, 798513 bytes):
      18.11.2001 alpha1:
    • finaly added the OPT LIBRARY to generate a library, currently very limited, but it's just a beginning :) Special thanks to Marco Antoniazzi, without his help, it wouldn't be that simple :)


      30.11.2001 alpha2:
    • INCBIN '*file' is now allowed. (* means the path of the source code)
    • added support for local OBJECTs
    • bugfixes reported by Marco Antoniazzi
      • fixed a bug related to alignment for OPT LIBRARY


      9.12.2001 alpha3:
    • announced support for OOP4A project (more: http://www.geocities.com/SiliconValley/Bridge/5737)
    • in some occasions (when no external references used), phxass produced executable directly without the intermediate object file, that PowerD requires
    • all the LIBRARY definition only modules did an error, fixed
    • bugfixes reported by Michel Bagmeijer
      • pr2m: some string fixed and at last translated from E to D :)
      • removed few enforcer hits


      12.1.2002 alpha4:
    • (partial) direct support of oop.library (oop4a project):
      • You can use: DEF obj('class') instead of: DEF obj=new('class')
      • deallocation of the class is done automaticaly on the procedure end, no need for: del(obj)
    • added german powerd.catalog by Olaf Groening (thanks!)
    • updated dmod tool to handle new binary module features
    • fixed struct and cunion saving in binary modules
    • fixed object loading from binary modules
    • number defined like a string ("xyz0") can now use also the "\j#" string extension
    • fixed global/local variable definition
    • SUB can now contain a variable/constant definition
    • IF x-- or WHILE x++ or similar do now work correctly
    • You can now use #else in conjunction with #ifdef/#ifndef and #endif
    • bugfixes reported by Michel Bagmeijer
      • no more 'OPT WB' is needed for the click-on-icon-launching, all the startup headers (except some selected) do now contain a wbmessage handler which makes it possible to launch a compiler proggy from workbench. Each header is from this reason 126 or 128 bytes longer.
      • fixed gadgets/layout.m module


      17.2.2002 alpha5:
    • inlined assembly (ASM/ENDASM) didn't work at all, fixed
    • PowerPC inlined assembly can now use constants (eg.: addi r3,r4,CONST)
    • added support for multi dimensional items in objects (upto 3d)
    • improved TDEF support
    • binary modules supports now OFFSET/RELOFS/ALIGN keywords in OBJECTs
    • You can now use a[][]:CHAR instead of a:PTR TO PTR TO CHAR in OBJECTs and variable DEFinitions
      • multiple pointers do now work correctly a[][]:CHAR can be accessed with c:=a[x][y] correctly
    • fixed a stack problem with functions as function arguments (68k and ppc)
    • fixed ieee Pow() function
    • added F2I() function (double to integer conversion with rounding)
    • added Rnd() and RndQ() functions for ppc
      • Rnd() doesn't produce exactly the same results as 68k function, reason: cpu differences 68k generates carry bit as unsigned operation, while ppc as signed
    • improved preprocessor, macros without arguments are now allowed: '#define macro() xyz'
    • bugfixes reported by Michel Bagmeijer
      • fixed createlib.html
      • removed some enforcer hits
      • h2m now supports structs with names defined at the end of the struct
      • modules are now OS3.9 compatible
      • updated ifunc.html
      • a small fix of fd2m
    • bugfixes reported by Miklos Nemeth
      • no more phxlnk needed, PowerD use now only the vlink
      • movea.b bug fixed
    • bugfixes reported by Kai Wolf
      • fixed a bug or newer modules message


      13.4.2002 alpha6:
    • You can replace (not only) powerd.lib functions just by defining them
    • fixed length arg in RealStr() function
    • fixed EStrCopy(), EStringF() functions
    • improved support of OOP4A project
      • You are allowed to use directly: var.func(args) instead of domethode(var,'func',args)
    • added ppc functions: EStringF(), RealStr(), RealEStr()
    • added/fixed all the quoted-expression functions: Eval(), MapList(), ForAll(), Exists(), SelectList()
      • 68k only!!!, ppc knows currently only Eval()
    • bugfixes reported by Marco Antoniazzi
      • IF (~x) compiled wrong
      • IF (a) AND ~(b) compiled wrong
      • NOR and NAND keywords do now work
      • added '#include' preprocessor keyword
      • fixed assembler error when EXCEPTDO without Raise() occured
    • bugfixes reported my Kai Wolf
      • fixed a bug of too many args...
    • bugfixes reported by Michel Bagmeijer
      • Rem() isn't supported anymore
      • DC can now compile also data only sources without any procedures
      • added syntax error when 'CASE something:' used. (if the colon is used)
    • bugfixes reported by Nemeth Miklos
      • added a warning when assigning a value to an array (not item of array)


      16.6.2002 alpha7:
    • added a ddbg tool to debug Your sources!!!!! :)
      • everything located in ddbg drawer
      • currently heavily unusable and buggy
      • read the ddbg.readme first to know how the things should go
    • fixed assembler error when EXCEPTDO without Raise() occured in ppc code generator
    • fixed eight enforcer hits
    • when compiling a library, the library is placed in source's directory
    • a bit fixed line statement in error reporting
    • prohibited JUMPing to another procedure
    • renumbered warnings, now starts with 900
      • a bit updated error.html
    • fixed IF for ppc
    • fixed UWord() for 68k
    • fixed some structure scanning, added new error messages
    • debug file do at last support (not yet finished) debugger :)
    • END do now check, if allocation (NEW) was successful
    • added error message, when SUB is called and not found
    • fixed [~CONST]:x (CONSTants with single operators in lists)
    • bugfixes reported by Marco Antoniazzi
      • fixed a problem with DEF a: TYPE (the space between ':' and 'TYPE' caused a problem)
      • preprocessor didn't process correctly x:=y+/**/b(z) where b is a macro
      • fixed alignment in library generation
      • added relative path support for #include '*file'
      • added preprocessing for #included file
      • added OPT GM equivalent of GM/S argument for creation of external module
    • bugfixes reported by Nemeth Miklos
      • fixed the Store to array warning
      • fixed types in module generated when compiling a library
      • oop do work again (very limited)
      • improved startup files to make working link libs, that use SysBase instead of ExecBase
      • Added C-like CStrCmp() function
    • bugfixes reported by Michel Bagmeijer
      • added a warning when using JUMP keyword to jump out of procedure
      • added devices/newstyle.m module
      • added dutch catalog
      • fixed IF ~(x) in 68k and ppc
      • fixed IF `(x) in ppc
      • added KickVersion() for ppc
      • h2m: some improvements
      • local labels can now be same in different procedures
      • NEW a[x] do now allocate x*SIZEOF_a correctly
      • fixed some docs


      25.6.2002 full 0.19:
    • fixed rexx/storage module
    • fixed one enforcer hit
    • fixed a lr storing problem with ppc, caused a crash
    • debug file do now support global variables
    • bugfixes reported by Michel Bagmeijer
      • '\xDf' changed to '\xDS' to get full name of day
    • bugfixes reported by Marco Antoniazzi
      • global labels didn't compile


  • Version 0.18 (5.11.2001)(dc.e: 23815 lines, 761307 bytes):
    • added new tool x2d
    • GM=GENMODULE/K argument has been changed to GM=GENMODULE/S, now You don't have to (and can't ;) enter the module name anymore
      • this switch now adds to the generated module also the object file name
    • AC=ASMCOMMENT/S argument now works correctly
    • &x... should now work correctly in all cases
    • line numbering should be exact also with #ifdef/#endif used
    • new types defined by TDEF keyword are now recognised also in OBJECTs
    • strings that contains '\0' characters are now processed correctly
    • labels works again
    • removed bug of 'unknown error' message in ppc compiling
    • RAISE doesn't produce twiced labels in powerpc asm output anymore
    • added local data in ppc code
    • exceptions should work much better in ppc code now
    • AllocVecPooledPPC/AllocVecPooled and FreeVecPooledPPC/FreeVecPooled are now different functions, because exec's and powerpc's pools aren't compatible
    • made wrong code, when ELSEWHILEs used without ALWAYS
    • small improvements in global binaries (LONG xxx etc)
    • APROC xxx() now exits correctly with ENDPROC
    • procedures can from now contain registers as arguments (eg.: PROC xxx(a IN d0))
    • multiple return values are (at last) implemented in powerpc generator
    • completely rewritten 68k ASM code reader/writer, higher flexibility
      • added most of 68k fpu instruction
      • the argument reader is still the old one, so it may not work very well, will be fixed later
      • use only the mnemonics supported by Your processor, D still doesn't recognize it, as above ;)
    • JUMP keyword now works in ppc code
    • ops, added two forgotten instructions (jmp and jsr)
    • fixed a modulo computation in PPC code (was negative)
    • fixed a bug in constant scanner, now is possible to make spaces between operators (CONST A=B + 1 + C)
    • fixed a freezing problem with module generator and improved default values for arguments of EPROCs
    • fixed another problem related to signed/unsigned conversions
    • fixed another bug in intuition.m module (SetAttrs() wasn't defined)
    • fixed uncompilable ppc sources, when local lists were used
    • fixed loading of negative (etc) values like: 'IF a<-b' in ppc code
    • fixed negations in most cases (I hope) in ppc code
    • fixed some register overloading in ppc code
    • fixed bug in object item finding
    • fixed problems with variables defined like array of object (var:obj)
    • fixed a bug in function-as-function's-argument
    • zero shifts/rotations (<<,<|,>>,>|) doesn't produce assembling error any more
    • local list alignment fixed in ppc code
    • doesn't produce that much useless ppc code ;)
    • new (68k and ppc) functions for memory (de)allocation: NewR(), NewM() and Dispose()
    • removed the Free() function and the New() function changed in order to the above
    • improved the dmodules:asl.m module (direct tag support was missing)
    • small changes in Flare.d example, small speedup (mainly when compiled for ppc)
    • some docs improvements
    • added a library example by Marco Antoniazzi
    • bug fixes reported by Marco Antoniazzi
      • DEF a='Hi' didn't work as a global variable
      • retyping of members now works (a:=obj.member::etc.etc)
      • a:=~ %01 or similar expressions with the space between the operator and the hex/oct/bin number type produced errors
      • '*module' is now relative from the source file directory, not from compilation directory
      • You can now use also "/*" or "*/" or "//" without problems
      • added Math functions Add(), Sub(), Mul(), Div(), Mod() for 68k and ppc
      • dc didn't leaved properly when too many errors (>=100) occured, fixed
      • LOOP/ENDLOOP made just one loop in 68k only (why? ;), fixed
      • to a function like BltBitMap(s,sx,sy,d,dx,dy,w,h,$C0,-1,0), weren't loaded arguments correctly
      • labels can now be normally used as addresses
      • a bug in the dmodules:intuition.m module fixed
      • You can now use also IF ~a THEN ... and similar
      • unused global variables aren't automaticaly removed anymore
      • 'ENDSELECT value' now works as it should
      • graphics/rastport.m module fixed
      • fixed a bug in comparation of signed and unsigned values
      • global data (LONG etc) handles labels correctly
      • a bit improved def.html document
      • fixed a error in IF THEN RETURN
      • added forgotten instructions in 68k asm: rts, rtd, rte, rtr
      • ASM keyword can now be used outside the procedures
      • retyping in equations fixed
      • fixed problem with zero constant loading to some ax register
      • IF ~(...) or IF -(...) weren't compiler correctly
    • bug fixes reported by Michel 'DMX' Bagmeijer
      • Min() and Max() functions swapped
      • added some error reportings when FOR is defined wrongly (eg.: FOR x:=0 TO 10 STEP -1)
      • flare.d and raytrace.d doesn't try to open a VGA only screen anymore
      • main.html has been renamed to index.html
      • swapped GetOPen() and GetOutlinePen() in gfxmacros.m
      • added 3 new options to string extension '\xd': '\x#d' where # is 0-3
      • brackets () are now better handled, You are allowed to use (w).RPort etc.
      • fixed the h2m version string
      • h2m now supports the #undef keyword
      • removed the '\x0d' string extension, use '\xd' instead
      • added '\x4d' and '\x5d' string extensions
      • fixed one unknown error when compiling for ppc
      • added the pmulti.html
      • PowerPC's Min() and Max() functions fixed
      • fixed a printing of 'Cleaning...' string
      • fixed a '\xF' and '\xf' on 060
      • no more AslBase vs ASLBase in ppc code
      • improved opt.html and setopt.html and few more
      • some docs improved/fixed
      • added the Exp() function for ppc and EToX() function in 68k changed also to Exp()
      • if You wish to compile a module, it's not needed to enter it with the .m extension
      • some enforcer hits removed
      • fixed a stupid buggy in the intuition/gadgetclass module ;)
      • fixed a crashing bug, when reading multiple-line strings (adom.d)
    • bugs/ideas reported by Miklós Németh
      • h2m.d some reading improvements, watch the source/h2m.d
      • 'stack size' required for the compiled executable is now shown if the I=INFO/S switch argument used. It's nothing exact and have sense only with larger projects with lots of local variables/lists and recursion. It computes the stack upto to depth of 16 (procedures in procedures).


  • Version 0.17 (8.5.2001)(dc.e: 22057 lines, 694035 bytes):
    • Added inlined PowerPC assembly (ASM/ENDASM)
      • all standard mnemonics supported
      • most of extended mnemonics supported
      • easy usage of local/global variables directly in the assembly code via special mnemonics (lw, sw, etc.)
    • new feature TDEF for definition of custom types (like C's typedef)
      • binary modules support it ofcourse too
    • finally added UNIONs to binary modules!!!
    • improved OBJECT support
      • You can now define internal objects with OBJECT and ENDOBJECT keywords
      • You can use [ and ]:name instead of OBJECT name and ENDOBJECT keywords inside the object
      • Added OFFSET and RELOFS keywords and a new feature to setup the item positions in the object
      • Added ALIGN keyword
      • Improved unions, each can be now followed with OF keyword like the OBJECT keyword itself
      • Added C alike unions
    • CASE can now handle equations (CASE a+1 TO b-1,10,11)
    • added support for empty arguments (like: func(,1,,3), or: [1,2,,3,,]:list)
    • now prints all unused procedures
    • improved AmigaE support:
      • AmigaE support is enabled by '.e' extension in source name
      • all variables/objects and it's items names are converted to lower case
      • all constants are converted to upper case
      • I can't recomend to write bigger E projects in D, but if You need it You can switch to original AmigaE or CreativE...
    • powerd.lib news
      • BitSize(0) now returns 0 instead of 1
      • WriteF() function added
      • StrCmpNC() (case free string compare) function added
      • lots of powerpc native assembly functions added
      • and some less important improvements
    • modules news
      • graphics/gfxbase.m should work
    • minor changes in handling 68k library functions in the ppc native code.
      • all the modules in the dmodules: directory (not in it's subdirectories) must now have it's own link library in d:lib/modules directory. Take a look at new LIBGEN=LG/K cli argument, which will generate for You all the 68k function launchers for the ppc.
    • removed NOPP argument
    • bug fixes
      • FOR a:=0 TO -1 made one loop, fixed
      • BitSize(0) now returns 0 instead of 1
      • removed infinite loop when object item wasn't found
      • OPT NOHEAD didn't produce executable file, only the object file
      • if expressions were build only from constants and all of them were integers, the result was computed also as an integer, also if the destination was float (DEFD a=1/2), fixed, thanks to Maciej Po³yga!
      • post and pre decrementation/incrementation can be now combined (++a--)
      • definition of local constants can contain also global constants
      • fixed a bug in static list definition
      • fixed bug in PowerPC optimizations (blr,blr)
      • fixed bug in FOR loop
      • fixed problem with stack in ppc code
      • fixed lots of another ppc related problems
      • UNTILN now works
      • compiler reports if two or more procedures with the same name appeared
      • division by zero when compiling a module fixed
      • sources can now end with a comment (/* */) without ending linefeed
      • x[]++:=y now works (but ++x[]:=y still doesn't, sorry)
      • no more error reporting, when JUMPing to a local label
      • items after UNIONs has now correct offset (very long standed bug)
      • binary modules containing objects was saved incorrectly (althought was working), such modules doesn't need to be recompiler, but I recomend it :)
      • GM=GENMODULE/K argument now does always correct return types
      • fixed some sign extensions in functions in powerd_ppc.m module
      • fixed external procedure definitions in binary modules, the binary modules containing external procedures definitions (all in dmodules:lib) are changed
      • fixed a bug in global data definition for PowerPC code
      • removed optimization which caused a bug if SUB was used
      • known enforcer hits removed
      • and several more or less important fixes


  • Version 0.16 (31.12.2000)(dc.e: really exactly 20000 lines :) , 622424 bytes):
    • added currently limited PowerPC support!!!
    • added quoted expressions
    • improved equation generator, now creates much better and safer code
      • multiple conditions are now also allowed (a
      • now work stuff like a,b,c+=test() correctly
      • completely changed stack usage
      • added NEXTIF keyword
      • new tool pc - PowerD Project Compiler v0.4, it simplifies multiple source compilation
      • improved Val() and RealVal() functions
      • all errors/warnings are now written also into file 't:powerd.err.log' file
      • added support for multiple names per object
      • highly improved static list writing routine, much more flexible
      • improved some parts of documentation to be more lucid
      • improved LIBRARY definition, now allows You to define also PPC functions in library
      • LONG <label> now works
      • new option WB added to allow to start Your proggies also from wb directly (via icon)
        • added wbstartup.o
        • added EXEICON option
      • new SUB feature added
      • added cli switch DF=DELFILES/S which enables deleting of #?.ass and #?.o files when executable file is succefuly generated
      • added hash table for macro finding what improves speed of preprocessing pass upto 20 times
      • added hash table for object finding what improves speed of working pass a lot
      • added large data model, now is possible to compile files that produces executables longer then 32 kilos
      • local constants works again
      • added some new warnings and error messages
      • improved multiple value returning, now doesn't require definition for longs, but warns!
      • improved preprocessor comment handling, line numbers on errors should be again exact
      • recursive comments works again
      • item names in object's definitions can now start also with numbers
      • comments in macros are now better handled/removed
      • added new functions to powerd.lib
        • new string functions: LoChar(), HiChar(), VStringF(), VEStringF()
        • new miscelaneous functions: Double(), Float(), PutDouble(), PutFloat(), ReByte(), ReWord(), ReUByte(), ReUWord()
        • new quoted expression functions: Even(), Exists(), ForAll(), MapList()
      • shortest functions from powerd.lib are rewritten to be inlined
      • added and improved some examples
      • added support for C-like constants (ie: 0x10 or 0b110011)
      • added rtgmaster.library and chunky.lib support
        • chunky.lib contains several functions to work with 8/24/32bit chunky graphics
        • added two examples of rtg and chunky usage
      • added module cache, extreme speedup of module loading
        • added dcache tool to show and/or flush the cache
      • object oriented programming is temporarily removed because of many improvements, sorry, hope it will work in 0.17
      • fixed several bugs
        • several bugs in inline assembly
        • preprocessor's keywords didn't work, except #define
        • binary module loading/saving, recursive module now works
        • very old and stupid bug in RealStr() and RealEStr() functions
        • BitSize() now returns correct bit field size also if it is one bit wide
        • Bounds() function fixed
        • ELSEIFN and ELSEWHILEN now works
        • modulo (a\b) now works correctly in all cases
        • lists in lists are now handled correctly
        • backslash ('\') in strings now works
        • CASE xxx TO yyy works again
        • multi-dimensional arrays (x[i,j,k]) now works
        • multi-level pointers (x[i][j][k]) now works
        • x[] is now correctly x[0]
        • and more... [and probably some new added :P]
      • added ALIGN keyword to allow better alignment of object items
      • REPROC feature changed and improved
      • improved local variables, now allows also local static variables (SDEF)
      • added ASMPPC/ENDASM for ppc routines in 68k code.
      • improved function reading, You are now allowed to use code like here:
        • x().a:=1, where x() is a function that returns a pointer to object, which contains an item called a.
        • x()[3]:=2, where x() is a function, that returns a pointer to a list.


    • Version 0.15 (8.5.2000)(dc.e: 14387 lines, 453366 bytes):
      • added localization support (currently very limited, czech only)
      • maximal length of single string expanded from 256 characters to 1024 characters
      • improved preprocessor (thanx to Miklos Nemeth for bug-reports)
        • added #include,#undefine, #* (where * is a number) keywords
        • added DEBUG macro when DEBUGSYM option active
        • preprocessor now removes comments => faster Reading pass
        • high speedup - much more eficient macro reading
        • removed many and many bugs and enforcer hits
      • improved object reading:
        • new member separator "/" for multiple members with same type
      • stack lists changed to static lists, like in AmigaE => faster (in some cases shorter)
        • also constant-only equations are now recognized => shorter code
      • inline assembler (ASM) now works much better
      • again added dmod - powerd binary module viewer
      • added New() and Free() functions
      • You are now able to use SELECT <const>;CASE func() etc.
      • removed bugs in:
        • string optimizations
        • function calling
        • inline lists
        • powerd.lib, some functions rewritten to be faster and/or shorter
        • global lists now works also with non objects
        • heavy bug in SELECT with arrays
        • and many other
      • as You can see, documentation in HTML :)
        • This is highly undone, I'm heavily working on it, but currently not all parts are rewritten. Thanks to Richard Korber for his great GuideML V1.5 converter.


    • Version 0.14 (2.4.2000)(dc.e: 13185 lines, 409393 bytes):
      • removed FPU OPTion/argument
        • improved CPU/MACHINE OPTion/argument
        • improved #?.o/#?.lib file recognition, no more fpu/ieee problems
      • in 0.13: macros couldn't be used
      • removed small bug in constants in binary modules
      • preprocessor is now completely global => new PreProcessong pass added
      • removed bug in constant conversion (eg: DEFD q=10 had to be used as DEFD q=10.0 before)
      • removed also other bugs and some enforcer hits


    • Version 0.13 (5.3.2000)(dc.e: 12688 lines, 395821 bytes):
      • added REPROC/DREPROC feature
      • added RAISE feature
        • Raise() moved to powerd.lib
      • improved retyping
      • removed many bugs
        • unsigned word and unsigned byte storing
      • Generating pass renamed to Reading pass :)
      • nearly all types changed, so old binary modules won't work, use new or ascii :(
        • improved multi-dimensional arrays and pointers
      • added generated assembler source description in this document. (highly undone)
      • swap (:=:) can be now used also for different types
      • whole asm-writer has been rewritten, now allows much faster and better optimizations
        • many new optimizations (currently are all optimizations always on)
        • about 100 kB of code rewritten
      • added some new functions to powerd.lib:
        • DupStr(), DupEStr(), NewStr(), RemStr(), DupStrPooled(), DupEStrPooled(), NewEStrPooled(), RemStrPooled(), RemEStrPooled(), NewStrPooled()
      • in many cases improved register handling
      • improved finding routines (it can now find what it couldn't find before :)
        • it should never more try to find on illegal addressed, now about 40% faster!
      • object oriented programming should now work better
      • if two or more same arguments/variables, an error appear
      • return values preset to zeros, so not su much dull messages :) (but still some)
      • changed string and list order, now it has same order as in dsource
      • renumbered errors
      • nonfpu floats are currently not completed, complete version will be released asap!
        • also powerd_ieee.lib not completed, sorry
      • about 40 kB shorter !!!
      • dmod not included, I had not enough time to complete it, sorry


    • Version 0.12 (4.2.2000)(dc.e: 12345 lines, 396396 bytes):
      • removed bug in optimizations
      • removed some bugs in docs :)
        • powerd.lib functions added into index of this document
        • some new things added into index
      • added few new functions (intuition, graphics, pools):
        • OpenW(), CloseW(), OpenS(), CloseS(), SetStdRast()
        • Plot(), Line(), Box(), Circle(), Ellipse(), Colour(), SetColour()
        • AllocVecPooled(), FreeVecPooled(), SizePooled()
      • removed some bugs in binary modules
        • saved binary modules has now slightly different format
        • added EDEFs and #defines
        • added dmod tool, to show binary modules
      • improved macros, now You can use #ifdef, #ifndef, #else and #endif
      • proprocessor can from now convert: xxx:=.yyy to xxx:=xxx.yyy
        • this slightly slowed down generate pass, because preprocessor is now called always
      • I rewrote many functions to don't use stack, but registers = shorter and faster from powerd.lib
      • Even() and Odd() flipped :)
      • local e-strings now works again
      • improved asm string writer, now You can use eg: '\0\0\0\0', to allocate 4 bytes long string of zeros
      • main code reader routine is rewritten to be faster
      • added Syntax Error (sorry :)
        • I finally added description of some errors in this document, very incomplete
        • this error currently quits powerd
      • added many new string extensions
      • removed some enforcer hits


    • Version 0.11 (17.1.2000)(dc.e: 11066 lines, 361271 bytes):
      • added ¸ (ascii 184) decimal number separator
      • improved LOOP x where x can be now constant/number
      • added binary module support (still very limited)
        • added MODULE OPTion
      • improved procedure/function finding routines, up to 28 times faster
      • added few new functions:
        • UByte(), UWord(), ULong(), HiBit(), LoHit(), BitCount(),BitSize()
      • improved startup files, arg variable now work
        • added startup_dosarg.m module and DOSARGONLY OPTion to allow arg variable with dos opening only
      • inlined IF now work better
      • added one new example
      • no more linker error like line too long or similar
      • removed some bugs in modules and added ExecBase variable
      • removed some other bugs


    Older history