126 lines
5.1 KiB
Plaintext
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...
|