gbdk-releases/gbdk-support/ChangeLog
2015-01-10 16:25:09 +01:00

126 lines
5.1 KiB
Plaintext

gbdk3-2.96
* Many changes. Code generated is now much more reliable and
passes all of sdcc's regression suite. Added support for large
sets of local variables (>127 bytes). Added full 32 bit long
support. Still no floating pt support.
gbdk3-2.95-3
* Stopped lcc with sdcc from leaking .cdb files all across
/tmp.
* Optimised < and > for 16 bit varibles.
* Added a new lexer to sdcc. Compiling files with large
initalised arrays takes 31% of the time (well, at least
samptest.c does :)
gbdk3-2.95-2
* Added model switching support
--model-medium uses near (16 bit) pointers for data, and
banked calls for anything not declared as 'nonbanked'
--model-small uses near (16 bit) pointers for data and
calls. Nothing uses banked calls. 'nonbanked' functions
are still placed in HOME. Libraries are under lib/medium
and lib/small.
* Added the gbdk version to 'sdcc --version'
* Changed the ways globals are exported, reducing the amount
of extra junk linked in.
* Turned on the optimisations in flex. Large constant arrays
like tile data should compile a bit faster.
gbdk3-2.95
* Fixed 'a >> c' for c = [9..15]
* Fixed 'a << c' for c = [9..15]
* no$gmb doesn't support labels of > 32 chars. The linker now
trims all labels to 31 chars long.
* Fixed wait_vbl for the case where you miss a vbl
* Fixed + and - for any type where sizeof == 2 and one of the
terms was on the stack. This includes pointers and ints. Fixes
the text output bug in the examples. Should be faster now as
well. Note that + and - for longs is still broken.
* Fixed the missing */ in gb.h
* Added basic far function support. Currently only works for isas
and rgbasm. See examples/gb/far/*
* bc is now only pushed if the function uses it. i.e. something
like:
int silly(int i)
{
return i;
}
will not have the push bc; pop bc around it.
* Better rgbasm support. Basically:
o Use "sdcc -mgbz80 --asm=rgbds file.c" for each file.c
o Use "sdcc -mgbz80 --asm=rgbds crt0.o gbz80.lib gb.lib file1.o file2.o..."
to link everything together. The .lib files are generated using
astorgb.pl and sdcc to turn the gbdk libraries into something
rgbds compatible.
The libraries are _not_ fully tested. Trust nothing. But give it
a go :)
* Ran a spell checker across the README and ChangeLog
gbdk3-2.94
* Fixed
#define BLAH 7 // Unterminated ' error
in sdcpp
* Fixed
SCY_REG += 2, SCY_REG -= 5
(add and subtract in indirect space) as they were both quite broken.
* externs and static's now work as expected.
* You can now specify which bank code should be put into using a
#pragma e.g:
#pragma bank=HOME
Under rgbds and asxxxx putting code in the HOME bank will force
the code into bank 0 - useful for library functions. The most
recent #pragma bank= will be the one used for the whole file.
* Fixed an interesting bug in the caching of lit addresses
* Added support for accessing high registers directly using the
'sfr' directive. See libc/gb/sfr.s and gb/hardware.h for an
example. It should be possible with a bit of work to make high
ram directly usable by the compiler; at the moment it is
experimental. You can test sfr's by enabling USE_SFR_FOR_REG=1
* Added remove_VBL etc functions.
* Documented the libs - see the gbdk-doc tarball distributed
seperatly.
* Two dimensional arrays seem to be broken.
gbdk3-2.93
* Added multi-bank support into the compiler - The old -Wf-boxx
and -Wf-baxx options now work
* Has preliminary support for generating rgbds and ISAS compatible
assembler. Try -W--asm=rgbds or -W--asm=isas. The ISAS code is
untested as I dont have access to the real assembler.
* RSH is fixed
* AND is fixed
* The missing parts of 2.1.0's libs are there. Note: They are
untested.
* The dscan demo now fully works (with a hack :)
* There is a bug with cached computed values which are later used
as pointers. When the value is first used as a BYTE arg, then
later as a pointer the pointer fails as the high byte was never
computed and is now missing. A temporary fix is to declare
something appropriate as 'volatile' to stop the value being
cached. See dscan.c/bombs() for an example.
gbdk3-2.92-2:
* win32 only. Takes care of some of the install bugs, including:
- Now auto detects where it is installed.
This can be overridden using set GBDKDIR=...
- Problems with the installer (now uses WinZip)
- Problems with the temp directory
Now scans TMP, TEMP, TMPDIR and finally c:\tmp
- cygwin1.dll and 'make' are no longer required
gbdk is now built using mingw32 which is win32 native
make.bat is automagically generated from the Makefile
- I've reverted to using WORD for signed 16 bit etc.
GBDK_2_COMPAT is no longer required.
gbdk3-2.92:
* All the examples now work (with a little bit of patching :)
* Fixed problem with registers being cached instead of being
marked volatile.
* More register packing - should be a bit faster.
* You can now install somewhere except c:\gbdk | /usr/lib/gbdk
* Arrays initialised with constant addresses a'la galaxy.c now
work.
* Fixed minor bug with 104$: labels in as.
* Up to 167d/s...