- 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
- 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
- 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
- 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
- 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
- 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)
- 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