|
29/6/2008
- Data tables can now be stored in data EEPROM. Define the
tables using Store Data directive - for example, "Table TableName Store
Data". The data is stored starting at location 0, and filling towards
the end of the EEPROM.
- Support for 18F4331 added to a-d.h
- Fixed bugs in a-d.h which caused trouble in chips without a CHS2 bit
- Fixed bug in alias handling which was causing aliases to non-existant variables to be created.
15/4/2008
- Implemented overloading for subroutines
- Print subroutine now handles Byte and Word variables
- LCDInt and LCDWord are now deprecated. They will continue to work but Print should be used instead for new programs.
- Fixed bug when 2 string constants are passed as parameters in the same line
- Fixed internal bug in WholeINSTR.
11/2/2008
- Fixed bug when using the same array twice on a line
- Arrays and strings now partially supported on AVRs
- Fixed bug in GCASM which caused incorrect configuration values on 12C5x/12F5x/16C5x/16F5x PICs
- The T0CKI pin now defaults to standard I/O mode on 12C5x/12F5x/16C5x/16F5x PICs
7/1/2008
- Altered GCBASIC to read settings from a config file
- Will read settings from a file called gcbasic.ini in the same directory as gcbasic.exe if present
- Can read from another file if specified with the /S: parameter
- See sample file included in update for more detail
- compile.bat editing utility will be altered, but has not yet been.
- With a gcbasic.ini file, there is no need for compile.bat. Files can be dropped onto gcbasic.exe.
- Fixed bug with HPWM
- Fixed bug when same function is called twice or more on the same line
- Fixed bug with Dir command on 12-bit core chips with more than 8 pins
4/12/2007
- Added utility to edit compile.bat
- Updated GCBASIC to compile with FreeBASIC 0.18 (natively, not in -lang deprecated or -lang qb)
- Successfully compiled and ran on Ubuntu Linux.
- Altered 4 and 8 bit LCD routines to work without R/W pin when #define LCD_NO_RW is used
- Strings now default to different sizes depending on chip RAM
- Added "In" and "Out" to subroutine parameters - for
example, "Sub MySub (In Param1, Out Param2 As Word, Param3). In will
stop GCBASIC copying the value back from the sub (as with #NR but for
each parameter), Out prevents a value being copied in. These are
optional.
- Updated EEPROM subroutines to use In and Out.
- Fixed bank selection issues related to call mnemonic
- banksel now only produces code for RP1 if needed
- bankisel now produces no code on chips with 256 or less data addresses
- Dir command now checks that pin/port is valid
- Removed /D: and /NC command line options
- Improved detection of install directory
- GCBASIC does not clear the screen any more when running in a command prompt
- Documented /K:A and /K:C command line options in command
line information screen (GCBASIC /?). /K:A will save all original
source code as comments in the .asm, /K:C will save all comments from
the original source in the .asm.
- There are now two versions of update.zip - update.zip which has all of the updated files since the last release, and update-nochipdata.zip which has all new files except for the chip data files.
16/10/2007
- Fixed a bug with aliases for user variables which caused assembler errors
- Allowed use of single character strings as integer constants
- Minor adjustments to improve bootloader support
- EEPROM routines updated with new interrupt enable/disable commands
- Fixed a bug in program memory write routines
- Fixed array bug introduced in a previous update
7/10/2007
- Added "#option bootloader" - adds an instruction to clear
PCLATH at the start of the assembly program, and relocates "call
INITSYS" to after the interrupt vector.
- Added "On Interrupt" for handling interrupts. Please refer
to the Interrupts article in the updated included help file for more
information (Interrupts is under Syntax).
- Changed handling of type casts in calculations - instead of
being placed on the end, "[word]" must now be placed before the
variable or value that is to be cast. "[byte]" is also
now allowed. Note that some programs may need to be altered as a result of this change.
- Changed asm directive - anything following "asm" will now
be passed through to assembly even if it is not a valid assembly
mnemonic.
- Fixed LCALL when using asm ORG inside the program.
- Tidied GCBASIC source code, removed several thousand
variable suffixes ($ and %). While some still remain, this is a
significant step towards being able to compile GCBASIC with the newest
version of FreeBASIC. Many variable names are also now more descriptive
than "DS$" or "T%".
21/9/2007
- Added initial AVR EEPROM and ADC routines. These are untested at present.
- Altered code at reset vector - the InitSys routine is now
called from the same location as other initialisation routines. This
will allow GCBASIC programs to be used with more bootloaders.
- Fixed issue with calculation - multiply/divide were sometimes returning incorrect type, or overwriting a required value.
- Added #IFNDEF directive
- Minor improvements made to assembly optimisation
- Initial AVR support added to built-in assembler. Intel hex
files produced match those generated by avrasm2, but the code has not
been tested on an actual AVR.
- Rewrote function handling code, now runs significantly faster.
- Improved pseudo-random number generator
- Tidied up some older GCBASIC source code
- Arrays of more than 255 bytes are now permitted on 18Fs.
6/8/2007
- Fixed a bug in the constant folding code for conditions, which caused an error message if the result was true.
- Added Alias clause to Dim. This enables several
smaller variables (typically SFRs) to be combined and treated as one
large variable. For example, "Dim EEAddress As Word Alias EEADRH,
EEADR" joins EEADRH:EEADR into one word variable named EEAddress.
- Fixed a bug which caused some word variables to become byte variables.
3/8/2007
- Fixed a bug in timer.h which caused some required code to be deleted
- Fixed bug in string copy routines when copying empty strings
- Altered Dim to accept a list of variables, such as "Dim SomeVar, AnotherVar, ThirdVar As String".
29/7/2007
- Partial AVR support added
- Chip data files
- Set, Dir, Rotate, Wait, If, Goto
- Do ... Loop, For ... Next
- Subs and Functions, including Exit Sub
- All 8-bit var operations
- 16-bit equal, not equal, value copy, add, subtract, and/or/etc
- Generates .asm files compatible with avrasm2
- Interrupt context saving/restoring
- Exit Do/Exit For now supported
- Hardware multiplier code compiled inline - SysMultSub only used for software multiply
- More error checking
30/6/2007
- Fixed several A/D converter issues on 10F220
- Fixed bug which may have caused GCBASIC to lock up while sorting the error list
- Fixed option lcall
25/6/2007
- Fixed a bug which caused confusion between comments and the b' ' notation for binary numbers
- Major internal changes to the section of code which sets variables, with more to come
- Alteration to the way that system subroutines
(SysCompEqual, SysDivSub, SysCopyString, etc) are added/removed as
necessary. GCBASIC now treats subroutines differently when their name
starts with "sys".
- LCDCreateChar (position, sourcearray()) sub added, copies data from an array into the CGRAM of the LCD module
- Multiple array elements can be set in one line, ie. ArrayName() = 1, 3, 4, 2
17/6/2007
- Fixed bug involving variable type detection
- Altered ms and us delays to accepts 16-bit delay lengths
8/5/2007
- Fixed several bugs with comments
- Fixed LFSR command in built-in assembler
- Fixed issues with hex numbers in assembler.
|
|